From 08fe3b21ed4011a64878e442df267c9570f33373 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 12 Aug 2019 11:43:31 +0200 Subject: [PATCH 01/29] Fix modern Fixes freeze on entering Pokemon Storage System --- src/pokemon_storage_system.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 59ec8f4f15..4cd1a47727 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -464,9 +464,6 @@ EWRAM_DATA static u8 sMovingMonOrigBoxPos = 0; EWRAM_DATA static bool8 sCanOnlyMove = 0; // This file's functions. -#if !defined(NONMATCHING) && MODERN -#define static -#endif static void CreatePCMenu(u8 whichMenu, s16 *windowIdPtr); static void Cb2_EnterPSS(u8 boxOption); static u8 GetCurrentBoxOption(void); From 3c2576d3a3b1fd315042b6529822b0c925f1f9a8 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Fri, 16 Aug 2019 13:48:45 -0400 Subject: [PATCH 02/29] trainer rematch macro --- src/battle_setup.c | 163 +++++++++++++++++++++++---------------------- 1 file changed, 85 insertions(+), 78 deletions(-) diff --git a/src/battle_setup.c b/src/battle_setup.c index 288fdb3e9e..c2d7cb6c6a 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -231,86 +231,93 @@ static const struct TrainerBattleParameter sTrainerBContinueScriptBattleParams[] {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, }; +#define REMATCH(trainer1, trainer2, trainer3, trainer4, trainer5, map) \ +{ \ + .trainerIds = {trainer1, trainer2, trainer3, trainer4, trainer5}, \ + .mapGroup = MAP_GROUP(map), \ + .mapNum = MAP_NUM(map), \ +} + const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] = { - [REMATCH_ROSE] = {{TRAINER_ROSE_1, TRAINER_ROSE_2, TRAINER_ROSE_3, TRAINER_ROSE_4, TRAINER_ROSE_5}, 0x0, 0x21}, - [REMATCH_ANDRES] = {{TRAINER_ANDRES_1, TRAINER_ANDRES_2, TRAINER_ANDRES_3, TRAINER_ANDRES_4, TRAINER_ANDRES_5}, 0x0, 0x14}, - [REMATCH_DUSTY] = {{TRAINER_DUSTY_1, TRAINER_DUSTY_2, TRAINER_DUSTY_3, TRAINER_DUSTY_4, TRAINER_DUSTY_5}, 0x0, 0x1a}, - [REMATCH_LOLA] = {{TRAINER_LOLA_1, TRAINER_LOLA_2, TRAINER_LOLA_3, TRAINER_LOLA_4, TRAINER_LOLA_5}, 0x0, 0x18}, - [REMATCH_RICKY] = {{TRAINER_RICKY_1, TRAINER_RICKY_2, TRAINER_RICKY_3, TRAINER_RICKY_4, TRAINER_RICKY_5}, 0x0, 0x18}, - [REMATCH_LILA_AND_ROY] = {{TRAINER_LILA_AND_ROY_1, TRAINER_LILA_AND_ROY_2, TRAINER_LILA_AND_ROY_3, TRAINER_LILA_AND_ROY_4, TRAINER_LILA_AND_ROY_5}, 0x0, 0x27}, - [REMATCH_CRISTIN] = {{TRAINER_CRISTIN_1, TRAINER_CRISTIN_2, TRAINER_CRISTIN_3, TRAINER_CRISTIN_4, TRAINER_CRISTIN_5}, 0x0, 0x24}, - [REMATCH_BROOKE] = {{TRAINER_BROOKE_1, TRAINER_BROOKE_2, TRAINER_BROOKE_3, TRAINER_BROOKE_4, TRAINER_BROOKE_5}, 0x0, 0x1a}, - [REMATCH_WILTON] = {{TRAINER_WILTON_1, TRAINER_WILTON_2, TRAINER_WILTON_3, TRAINER_WILTON_4, TRAINER_WILTON_5}, 0x0, 0x1a}, - [REMATCH_VALERIE] = {{TRAINER_VALERIE_1, TRAINER_VALERIE_2, TRAINER_VALERIE_3, TRAINER_VALERIE_4, TRAINER_VALERIE_5}, 0x18, 0x14}, - [REMATCH_CINDY] = {{TRAINER_CINDY_1, TRAINER_CINDY_3, TRAINER_CINDY_4, TRAINER_CINDY_5, TRAINER_CINDY_6}, 0x0, 0x13}, - [REMATCH_THALIA] = {{TRAINER_THALIA_1, TRAINER_THALIA_2, TRAINER_THALIA_3, TRAINER_THALIA_4, TRAINER_THALIA_5}, 0x18, 0x38}, - [REMATCH_JESSICA] = {{TRAINER_JESSICA_1, TRAINER_JESSICA_2, TRAINER_JESSICA_3, TRAINER_JESSICA_4, TRAINER_JESSICA_5}, 0x0, 0x24}, - [REMATCH_WINSTON] = {{TRAINER_WINSTON_1, TRAINER_WINSTON_2, TRAINER_WINSTON_3, TRAINER_WINSTON_4, TRAINER_WINSTON_5}, 0x0, 0x13}, - [REMATCH_STEVE] = {{TRAINER_STEVE_1, TRAINER_STEVE_2, TRAINER_STEVE_3, TRAINER_STEVE_4, TRAINER_STEVE_5}, 0x0, 0x1d}, - [REMATCH_TONY] = {{TRAINER_TONY_1, TRAINER_TONY_2, TRAINER_TONY_3, TRAINER_TONY_4, TRAINER_TONY_5}, 0x0, 0x16}, - [REMATCH_NOB] = {{TRAINER_NOB_1, TRAINER_NOB_2, TRAINER_NOB_3, TRAINER_NOB_4, TRAINER_NOB_5}, 0x0, 0x1e}, - [REMATCH_KOJI] = {{TRAINER_KOJI_1, TRAINER_KOJI_2, TRAINER_KOJI_3, TRAINER_KOJI_4, TRAINER_KOJI_5}, 0x0, 0x2a}, - [REMATCH_FERNANDO] = {{TRAINER_FERNANDO_1, TRAINER_FERNANDO_2, TRAINER_FERNANDO_3, TRAINER_FERNANDO_4, TRAINER_FERNANDO_5}, 0x0, 0x26}, - [REMATCH_DALTON] = {{TRAINER_DALTON_1, TRAINER_DALTON_2, TRAINER_DALTON_3, TRAINER_DALTON_4, TRAINER_DALTON_5}, 0x0, 0x21}, - [REMATCH_BERNIE] = {{TRAINER_BERNIE_1, TRAINER_BERNIE_2, TRAINER_BERNIE_3, TRAINER_BERNIE_4, TRAINER_BERNIE_5}, 0x0, 0x1d}, - [REMATCH_ETHAN] = {{TRAINER_ETHAN_1, TRAINER_ETHAN_2, TRAINER_ETHAN_3, TRAINER_ETHAN_4, TRAINER_ETHAN_5}, 0x18, 0xd}, - [REMATCH_JOHN_AND_JAY] = {{TRAINER_JOHN_AND_JAY_1, TRAINER_JOHN_AND_JAY_2, TRAINER_JOHN_AND_JAY_3, TRAINER_JOHN_AND_JAY_4, TRAINER_JOHN_AND_JAY_5}, 0x18, 0x1}, - [REMATCH_JEFFREY] = {{TRAINER_JEFFREY_1, TRAINER_JEFFREY_2, TRAINER_JEFFREY_3, TRAINER_JEFFREY_4, TRAINER_JEFFREY_5}, 0x0, 0x23}, - [REMATCH_CAMERON] = {{TRAINER_CAMERON_1, TRAINER_CAMERON_2, TRAINER_CAMERON_3, TRAINER_CAMERON_4, TRAINER_CAMERON_5}, 0x0, 0x26}, - [REMATCH_JACKI] = {{TRAINER_JACKI_1, TRAINER_JACKI_2, TRAINER_JACKI_3, TRAINER_JACKI_4, TRAINER_JACKI_5}, 0x0, 0x26}, - [REMATCH_WALTER] = {{TRAINER_WALTER_1, TRAINER_WALTER_2, TRAINER_WALTER_3, TRAINER_WALTER_4, TRAINER_WALTER_5}, 0x0, 0x24}, - [REMATCH_KAREN] = {{TRAINER_KAREN_1, TRAINER_KAREN_2, TRAINER_KAREN_3, TRAINER_KAREN_4, TRAINER_KAREN_5}, 0x0, 0x1f}, - [REMATCH_JERRY] = {{TRAINER_JERRY_1, TRAINER_JERRY_2, TRAINER_JERRY_3, TRAINER_JERRY_4, TRAINER_JERRY_5}, 0x0, 0x1f}, - [REMATCH_ANNA_AND_MEG] = {{TRAINER_ANNA_AND_MEG_1, TRAINER_ANNA_AND_MEG_2, TRAINER_ANNA_AND_MEG_3, TRAINER_ANNA_AND_MEG_4, TRAINER_ANNA_AND_MEG_5}, 0x0, 0x20}, - [REMATCH_ISABEL] = {{TRAINER_ISABEL_1, TRAINER_ISABEL_2, TRAINER_ISABEL_3, TRAINER_ISABEL_4, TRAINER_ISABEL_5}, 0x0, 0x19}, - [REMATCH_MIGUEL] = {{TRAINER_MIGUEL_1, TRAINER_MIGUEL_2, TRAINER_MIGUEL_3, TRAINER_MIGUEL_4, TRAINER_MIGUEL_5}, 0x0, 0x12}, - [REMATCH_TIMOTHY] = {{TRAINER_TIMOTHY_1, TRAINER_TIMOTHY_2, TRAINER_TIMOTHY_3, TRAINER_TIMOTHY_4, TRAINER_TIMOTHY_5}, 0x0, 0x1e}, - [REMATCH_SHELBY] = {{TRAINER_SHELBY_1, TRAINER_SHELBY_2, TRAINER_SHELBY_3, TRAINER_SHELBY_4, TRAINER_SHELBY_5}, 0x18, 0xc}, - [REMATCH_CALVIN] = {{TRAINER_CALVIN_1, TRAINER_CALVIN_2, TRAINER_CALVIN_3, TRAINER_CALVIN_4, TRAINER_CALVIN_5}, 0x0, 0x11}, - [REMATCH_ELLIOT] = {{TRAINER_ELLIOT_1, TRAINER_ELLIOT_2, TRAINER_ELLIOT_3, TRAINER_ELLIOT_4, TRAINER_ELLIOT_5}, 0x0, 0x15}, - [REMATCH_ISAIAH] = {{TRAINER_ISAIAH_1, TRAINER_ISAIAH_2, TRAINER_ISAIAH_3, TRAINER_ISAIAH_4, TRAINER_ISAIAH_5}, 0x0, 0x2b}, - [REMATCH_MARIA] = {{TRAINER_MARIA_1, TRAINER_MARIA_2, TRAINER_MARIA_3, TRAINER_MARIA_4, TRAINER_MARIA_5}, 0x0, 0x20}, - [REMATCH_ABIGAIL] = {{TRAINER_ABIGAIL_1, TRAINER_ABIGAIL_2, TRAINER_ABIGAIL_3, TRAINER_ABIGAIL_4, TRAINER_ABIGAIL_5}, 0x0, 0x19}, - [REMATCH_DYLAN] = {{TRAINER_DYLAN_1, TRAINER_DYLAN_2, TRAINER_DYLAN_3, TRAINER_DYLAN_4, TRAINER_DYLAN_5}, 0x0, 0x20}, - [REMATCH_KATELYN] = {{TRAINER_KATELYN_1, TRAINER_KATELYN_2, TRAINER_KATELYN_3, TRAINER_KATELYN_4, TRAINER_KATELYN_5}, 0x0, 0x2b}, - [REMATCH_BENJAMIN] = {{TRAINER_BENJAMIN_1, TRAINER_BENJAMIN_2, TRAINER_BENJAMIN_3, TRAINER_BENJAMIN_4, TRAINER_BENJAMIN_5}, 0x0, 0x19}, - [REMATCH_PABLO] = {{TRAINER_PABLO_1, TRAINER_PABLO_2, TRAINER_PABLO_3, TRAINER_PABLO_4, TRAINER_PABLO_5}, 0x0, 0x29}, - [REMATCH_NICOLAS] = {{TRAINER_NICOLAS_1, TRAINER_NICOLAS_2, TRAINER_NICOLAS_3, TRAINER_NICOLAS_4, TRAINER_NICOLAS_5}, 0x18, 0x1}, - [REMATCH_ROBERT] = {{TRAINER_ROBERT_1, TRAINER_ROBERT_2, TRAINER_ROBERT_3, TRAINER_ROBERT_4, TRAINER_ROBERT_5}, 0x0, 0x23}, - [REMATCH_LAO] = {{TRAINER_LAO_1, TRAINER_LAO_2, TRAINER_LAO_3, TRAINER_LAO_4, TRAINER_LAO_5}, 0x0, 0x1c}, - [REMATCH_CYNDY] = {{TRAINER_CYNDY_1, TRAINER_CYNDY_2, TRAINER_CYNDY_3, TRAINER_CYNDY_4, TRAINER_CYNDY_5}, 0x0, 0x1e}, - [REMATCH_MADELINE] = {{TRAINER_MADELINE_1, TRAINER_MADELINE_2, TRAINER_MADELINE_3, TRAINER_MADELINE_4, TRAINER_MADELINE_5}, 0x0, 0x1c}, - [REMATCH_JENNY] = {{TRAINER_JENNY_1, TRAINER_JENNY_2, TRAINER_JENNY_3, TRAINER_JENNY_4, TRAINER_JENNY_5}, 0x0, 0x27}, - [REMATCH_DIANA] = {{TRAINER_DIANA_1, TRAINER_DIANA_2, TRAINER_DIANA_3, TRAINER_DIANA_4, TRAINER_DIANA_5}, 0x18, 0xd}, - [REMATCH_AMY_AND_LIV] = {{TRAINER_AMY_AND_LIV_1, TRAINER_AMY_AND_LIV_2, TRAINER_AMY_AND_LIV_4, TRAINER_AMY_AND_LIV_5, TRAINER_AMY_AND_LIV_6}, 0x0, 0x12}, - [REMATCH_ERNEST] = {{TRAINER_ERNEST_1, TRAINER_ERNEST_2, TRAINER_ERNEST_3, TRAINER_ERNEST_4, TRAINER_ERNEST_5}, 0x0, 0x28}, - [REMATCH_CORY] = {{TRAINER_CORY_1, TRAINER_CORY_2, TRAINER_CORY_3, TRAINER_CORY_4, TRAINER_CORY_5}, 0x0, 0x17}, - [REMATCH_EDWIN] = {{TRAINER_EDWIN_1, TRAINER_EDWIN_2, TRAINER_EDWIN_3, TRAINER_EDWIN_4, TRAINER_EDWIN_5}, 0x0, 0x19}, - [REMATCH_LYDIA] = {{TRAINER_LYDIA_1, TRAINER_LYDIA_2, TRAINER_LYDIA_3, TRAINER_LYDIA_4, TRAINER_LYDIA_5}, 0x0, 0x20}, - [REMATCH_ISAAC] = {{TRAINER_ISAAC_1, TRAINER_ISAAC_2, TRAINER_ISAAC_3, TRAINER_ISAAC_4, TRAINER_ISAAC_5}, 0x0, 0x20}, - [REMATCH_GABRIELLE] = {{TRAINER_GABRIELLE_1, TRAINER_GABRIELLE_2, TRAINER_GABRIELLE_3, TRAINER_GABRIELLE_4, TRAINER_GABRIELLE_5}, 0x18, 0x11}, - [REMATCH_CATHERINE] = {{TRAINER_CATHERINE_1, TRAINER_CATHERINE_2, TRAINER_CATHERINE_3, TRAINER_CATHERINE_4, TRAINER_CATHERINE_5}, 0x0, 0x22}, - [REMATCH_JACKSON] = {{TRAINER_JACKSON_1, TRAINER_JACKSON_2, TRAINER_JACKSON_3, TRAINER_JACKSON_4, TRAINER_JACKSON_5}, 0x0, 0x22}, - [REMATCH_HALEY] = {{TRAINER_HALEY_1, TRAINER_HALEY_2, TRAINER_HALEY_3, TRAINER_HALEY_4, TRAINER_HALEY_5}, 0x0, 0x13}, - [REMATCH_JAMES] = {{TRAINER_JAMES_1, TRAINER_JAMES_2, TRAINER_JAMES_3, TRAINER_JAMES_4, TRAINER_JAMES_5}, 0x18, 0xb}, - [REMATCH_TRENT] = {{TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5}, 0x0, 0x1b}, - [REMATCH_SAWYER] = {{TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5}, 0x18, 0xc}, - [REMATCH_KIRA_AND_DAN] = {{TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5}, 0x18, 0x3e}, - [REMATCH_WALLY_3] = {{TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6}, 0x18, 0x2b}, - [REMATCH_ROXANNE] = {{TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5}, 0x0, 0x3}, - [REMATCH_BRAWLY] = {{TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5}, 0x0, 0xb}, - [REMATCH_WATTSON] = {{TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5}, 0x0, 0x2}, - [REMATCH_FLANNERY] = {{TRAINER_FLANNERY_1, TRAINER_FLANNERY_2, TRAINER_FLANNERY_3, TRAINER_FLANNERY_4, TRAINER_FLANNERY_5}, 0x0, 0xc}, - [REMATCH_NORMAN] = {{TRAINER_NORMAN_1, TRAINER_NORMAN_2, TRAINER_NORMAN_3, TRAINER_NORMAN_4, TRAINER_NORMAN_5}, 0x0, 0x0}, - [REMATCH_WINONA] = {{TRAINER_WINONA_1, TRAINER_WINONA_2, TRAINER_WINONA_3, TRAINER_WINONA_4, TRAINER_WINONA_5}, 0x0, 0x4}, - [REMATCH_TATE_AND_LIZA] = {{TRAINER_TATE_AND_LIZA_1, TRAINER_TATE_AND_LIZA_2, TRAINER_TATE_AND_LIZA_3, TRAINER_TATE_AND_LIZA_4, TRAINER_TATE_AND_LIZA_5}, 0x0, 0x6}, - [REMATCH_JUAN] = {{TRAINER_JUAN_1, TRAINER_JUAN_2, TRAINER_JUAN_3, TRAINER_JUAN_4, TRAINER_JUAN_5}, 0x0, 0x7}, - [REMATCH_SIDNEY] = {{TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY}, 0x0, 0x8}, - [REMATCH_PHOEBE] = {{TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE}, 0x0, 0x8}, - [REMATCH_GLACIA] = {{TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA}, 0x0, 0x8}, - [REMATCH_DRAKE] = {{TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE}, 0x0, 0x8}, - [REMATCH_WALLACE] = {{TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE}, 0x0, 0x8}, + [REMATCH_ROSE] = REMATCH(TRAINER_ROSE_1, TRAINER_ROSE_2, TRAINER_ROSE_3, TRAINER_ROSE_4, TRAINER_ROSE_5, ROUTE118), + [REMATCH_ANDRES] = REMATCH(TRAINER_ANDRES_1, TRAINER_ANDRES_2, TRAINER_ANDRES_3, TRAINER_ANDRES_4, TRAINER_ANDRES_5, ROUTE105), + [REMATCH_DUSTY] = REMATCH(TRAINER_DUSTY_1, TRAINER_DUSTY_2, TRAINER_DUSTY_3, TRAINER_DUSTY_4, TRAINER_DUSTY_5, ROUTE111), + [REMATCH_LOLA] = REMATCH(TRAINER_LOLA_1, TRAINER_LOLA_2, TRAINER_LOLA_3, TRAINER_LOLA_4, TRAINER_LOLA_5, ROUTE109), + [REMATCH_RICKY] = REMATCH(TRAINER_RICKY_1, TRAINER_RICKY_2, TRAINER_RICKY_3, TRAINER_RICKY_4, TRAINER_RICKY_5, ROUTE109), + [REMATCH_LILA_AND_ROY] = REMATCH(TRAINER_LILA_AND_ROY_1, TRAINER_LILA_AND_ROY_2, TRAINER_LILA_AND_ROY_3, TRAINER_LILA_AND_ROY_4, TRAINER_LILA_AND_ROY_5, ROUTE124), + [REMATCH_CRISTIN] = REMATCH(TRAINER_CRISTIN_1, TRAINER_CRISTIN_2, TRAINER_CRISTIN_3, TRAINER_CRISTIN_4, TRAINER_CRISTIN_5, ROUTE121), + [REMATCH_BROOKE] = REMATCH(TRAINER_BROOKE_1, TRAINER_BROOKE_2, TRAINER_BROOKE_3, TRAINER_BROOKE_4, TRAINER_BROOKE_5, ROUTE111), + [REMATCH_WILTON] = REMATCH(TRAINER_WILTON_1, TRAINER_WILTON_2, TRAINER_WILTON_3, TRAINER_WILTON_4, TRAINER_WILTON_5, ROUTE111), + [REMATCH_VALERIE] = REMATCH(TRAINER_VALERIE_1, TRAINER_VALERIE_2, TRAINER_VALERIE_3, TRAINER_VALERIE_4, TRAINER_VALERIE_5, MT_PYRE_6F), + [REMATCH_CINDY] = REMATCH(TRAINER_CINDY_1, TRAINER_CINDY_3, TRAINER_CINDY_4, TRAINER_CINDY_5, TRAINER_CINDY_6, ROUTE104), + [REMATCH_THALIA] = REMATCH(TRAINER_THALIA_1, TRAINER_THALIA_2, TRAINER_THALIA_3, TRAINER_THALIA_4, TRAINER_THALIA_5, ABANDONED_SHIP_ROOMS_1F), + [REMATCH_JESSICA] = REMATCH(TRAINER_JESSICA_1, TRAINER_JESSICA_2, TRAINER_JESSICA_3, TRAINER_JESSICA_4, TRAINER_JESSICA_5, ROUTE121), + [REMATCH_WINSTON] = REMATCH(TRAINER_WINSTON_1, TRAINER_WINSTON_2, TRAINER_WINSTON_3, TRAINER_WINSTON_4, TRAINER_WINSTON_5, ROUTE104), + [REMATCH_STEVE] = REMATCH(TRAINER_STEVE_1, TRAINER_STEVE_2, TRAINER_STEVE_3, TRAINER_STEVE_4, TRAINER_STEVE_5, ROUTE114), + [REMATCH_TONY] = REMATCH(TRAINER_TONY_1, TRAINER_TONY_2, TRAINER_TONY_3, TRAINER_TONY_4, TRAINER_TONY_5, ROUTE107), + [REMATCH_NOB] = REMATCH(TRAINER_NOB_1, TRAINER_NOB_2, TRAINER_NOB_3, TRAINER_NOB_4, TRAINER_NOB_5, ROUTE115), + [REMATCH_KOJI] = REMATCH(TRAINER_KOJI_1, TRAINER_KOJI_2, TRAINER_KOJI_3, TRAINER_KOJI_4, TRAINER_KOJI_5, ROUTE127), + [REMATCH_FERNANDO] = REMATCH(TRAINER_FERNANDO_1, TRAINER_FERNANDO_2, TRAINER_FERNANDO_3, TRAINER_FERNANDO_4, TRAINER_FERNANDO_5, ROUTE123), + [REMATCH_DALTON] = REMATCH(TRAINER_DALTON_1, TRAINER_DALTON_2, TRAINER_DALTON_3, TRAINER_DALTON_4, TRAINER_DALTON_5, ROUTE118), + [REMATCH_BERNIE] = REMATCH(TRAINER_BERNIE_1, TRAINER_BERNIE_2, TRAINER_BERNIE_3, TRAINER_BERNIE_4, TRAINER_BERNIE_5, ROUTE114), + [REMATCH_ETHAN] = REMATCH(TRAINER_ETHAN_1, TRAINER_ETHAN_2, TRAINER_ETHAN_3, TRAINER_ETHAN_4, TRAINER_ETHAN_5, JAGGED_PASS), + [REMATCH_JOHN_AND_JAY] = REMATCH(TRAINER_JOHN_AND_JAY_1, TRAINER_JOHN_AND_JAY_2, TRAINER_JOHN_AND_JAY_3, TRAINER_JOHN_AND_JAY_4, TRAINER_JOHN_AND_JAY_5, METEOR_FALLS_1F_2R), + [REMATCH_JEFFREY] = REMATCH(TRAINER_JEFFREY_1, TRAINER_JEFFREY_2, TRAINER_JEFFREY_3, TRAINER_JEFFREY_4, TRAINER_JEFFREY_5, ROUTE120), + [REMATCH_CAMERON] = REMATCH(TRAINER_CAMERON_1, TRAINER_CAMERON_2, TRAINER_CAMERON_3, TRAINER_CAMERON_4, TRAINER_CAMERON_5, ROUTE123), + [REMATCH_JACKI] = REMATCH(TRAINER_JACKI_1, TRAINER_JACKI_2, TRAINER_JACKI_3, TRAINER_JACKI_4, TRAINER_JACKI_5, ROUTE123), + [REMATCH_WALTER] = REMATCH(TRAINER_WALTER_1, TRAINER_WALTER_2, TRAINER_WALTER_3, TRAINER_WALTER_4, TRAINER_WALTER_5, ROUTE121), + [REMATCH_KAREN] = REMATCH(TRAINER_KAREN_1, TRAINER_KAREN_2, TRAINER_KAREN_3, TRAINER_KAREN_4, TRAINER_KAREN_5, ROUTE116), + [REMATCH_JERRY] = REMATCH(TRAINER_JERRY_1, TRAINER_JERRY_2, TRAINER_JERRY_3, TRAINER_JERRY_4, TRAINER_JERRY_5, ROUTE116), + [REMATCH_ANNA_AND_MEG] = REMATCH(TRAINER_ANNA_AND_MEG_1, TRAINER_ANNA_AND_MEG_2, TRAINER_ANNA_AND_MEG_3, TRAINER_ANNA_AND_MEG_4, TRAINER_ANNA_AND_MEG_5, ROUTE117), + [REMATCH_ISABEL] = REMATCH(TRAINER_ISABEL_1, TRAINER_ISABEL_2, TRAINER_ISABEL_3, TRAINER_ISABEL_4, TRAINER_ISABEL_5, ROUTE110), + [REMATCH_MIGUEL] = REMATCH(TRAINER_MIGUEL_1, TRAINER_MIGUEL_2, TRAINER_MIGUEL_3, TRAINER_MIGUEL_4, TRAINER_MIGUEL_5, ROUTE103), + [REMATCH_TIMOTHY] = REMATCH(TRAINER_TIMOTHY_1, TRAINER_TIMOTHY_2, TRAINER_TIMOTHY_3, TRAINER_TIMOTHY_4, TRAINER_TIMOTHY_5, ROUTE115), + [REMATCH_SHELBY] = REMATCH(TRAINER_SHELBY_1, TRAINER_SHELBY_2, TRAINER_SHELBY_3, TRAINER_SHELBY_4, TRAINER_SHELBY_5, MT_CHIMNEY), + [REMATCH_CALVIN] = REMATCH(TRAINER_CALVIN_1, TRAINER_CALVIN_2, TRAINER_CALVIN_3, TRAINER_CALVIN_4, TRAINER_CALVIN_5, ROUTE102), + [REMATCH_ELLIOT] = REMATCH(TRAINER_ELLIOT_1, TRAINER_ELLIOT_2, TRAINER_ELLIOT_3, TRAINER_ELLIOT_4, TRAINER_ELLIOT_5, ROUTE106), + [REMATCH_ISAIAH] = REMATCH(TRAINER_ISAIAH_1, TRAINER_ISAIAH_2, TRAINER_ISAIAH_3, TRAINER_ISAIAH_4, TRAINER_ISAIAH_5, ROUTE128), + [REMATCH_MARIA] = REMATCH(TRAINER_MARIA_1, TRAINER_MARIA_2, TRAINER_MARIA_3, TRAINER_MARIA_4, TRAINER_MARIA_5, ROUTE117), + [REMATCH_ABIGAIL] = REMATCH(TRAINER_ABIGAIL_1, TRAINER_ABIGAIL_2, TRAINER_ABIGAIL_3, TRAINER_ABIGAIL_4, TRAINER_ABIGAIL_5, ROUTE110), + [REMATCH_DYLAN] = REMATCH(TRAINER_DYLAN_1, TRAINER_DYLAN_2, TRAINER_DYLAN_3, TRAINER_DYLAN_4, TRAINER_DYLAN_5, ROUTE117), + [REMATCH_KATELYN] = REMATCH(TRAINER_KATELYN_1, TRAINER_KATELYN_2, TRAINER_KATELYN_3, TRAINER_KATELYN_4, TRAINER_KATELYN_5, ROUTE128), + [REMATCH_BENJAMIN] = REMATCH(TRAINER_BENJAMIN_1, TRAINER_BENJAMIN_2, TRAINER_BENJAMIN_3, TRAINER_BENJAMIN_4, TRAINER_BENJAMIN_5, ROUTE110), + [REMATCH_PABLO] = REMATCH(TRAINER_PABLO_1, TRAINER_PABLO_2, TRAINER_PABLO_3, TRAINER_PABLO_4, TRAINER_PABLO_5, ROUTE126), + [REMATCH_NICOLAS] = REMATCH(TRAINER_NICOLAS_1, TRAINER_NICOLAS_2, TRAINER_NICOLAS_3, TRAINER_NICOLAS_4, TRAINER_NICOLAS_5, METEOR_FALLS_1F_2R), + [REMATCH_ROBERT] = REMATCH(TRAINER_ROBERT_1, TRAINER_ROBERT_2, TRAINER_ROBERT_3, TRAINER_ROBERT_4, TRAINER_ROBERT_5, ROUTE120), + [REMATCH_LAO] = REMATCH(TRAINER_LAO_1, TRAINER_LAO_2, TRAINER_LAO_3, TRAINER_LAO_4, TRAINER_LAO_5, ROUTE113), + [REMATCH_CYNDY] = REMATCH(TRAINER_CYNDY_1, TRAINER_CYNDY_2, TRAINER_CYNDY_3, TRAINER_CYNDY_4, TRAINER_CYNDY_5, ROUTE115), + [REMATCH_MADELINE] = REMATCH(TRAINER_MADELINE_1, TRAINER_MADELINE_2, TRAINER_MADELINE_3, TRAINER_MADELINE_4, TRAINER_MADELINE_5, ROUTE113), + [REMATCH_JENNY] = REMATCH(TRAINER_JENNY_1, TRAINER_JENNY_2, TRAINER_JENNY_3, TRAINER_JENNY_4, TRAINER_JENNY_5, ROUTE124), + [REMATCH_DIANA] = REMATCH(TRAINER_DIANA_1, TRAINER_DIANA_2, TRAINER_DIANA_3, TRAINER_DIANA_4, TRAINER_DIANA_5, JAGGED_PASS), + [REMATCH_AMY_AND_LIV] = REMATCH(TRAINER_AMY_AND_LIV_1, TRAINER_AMY_AND_LIV_2, TRAINER_AMY_AND_LIV_4, TRAINER_AMY_AND_LIV_5, TRAINER_AMY_AND_LIV_6, ROUTE103), + [REMATCH_ERNEST] = REMATCH(TRAINER_ERNEST_1, TRAINER_ERNEST_2, TRAINER_ERNEST_3, TRAINER_ERNEST_4, TRAINER_ERNEST_5, ROUTE125), + [REMATCH_CORY] = REMATCH(TRAINER_CORY_1, TRAINER_CORY_2, TRAINER_CORY_3, TRAINER_CORY_4, TRAINER_CORY_5, ROUTE108), + [REMATCH_EDWIN] = REMATCH(TRAINER_EDWIN_1, TRAINER_EDWIN_2, TRAINER_EDWIN_3, TRAINER_EDWIN_4, TRAINER_EDWIN_5, ROUTE110), + [REMATCH_LYDIA] = REMATCH(TRAINER_LYDIA_1, TRAINER_LYDIA_2, TRAINER_LYDIA_3, TRAINER_LYDIA_4, TRAINER_LYDIA_5, ROUTE117), + [REMATCH_ISAAC] = REMATCH(TRAINER_ISAAC_1, TRAINER_ISAAC_2, TRAINER_ISAAC_3, TRAINER_ISAAC_4, TRAINER_ISAAC_5, ROUTE117), + [REMATCH_GABRIELLE] = REMATCH(TRAINER_GABRIELLE_1, TRAINER_GABRIELLE_2, TRAINER_GABRIELLE_3, TRAINER_GABRIELLE_4, TRAINER_GABRIELLE_5, MT_PYRE_3F), + [REMATCH_CATHERINE] = REMATCH(TRAINER_CATHERINE_1, TRAINER_CATHERINE_2, TRAINER_CATHERINE_3, TRAINER_CATHERINE_4, TRAINER_CATHERINE_5, ROUTE119), + [REMATCH_JACKSON] = REMATCH(TRAINER_JACKSON_1, TRAINER_JACKSON_2, TRAINER_JACKSON_3, TRAINER_JACKSON_4, TRAINER_JACKSON_5, ROUTE119), + [REMATCH_HALEY] = REMATCH(TRAINER_HALEY_1, TRAINER_HALEY_2, TRAINER_HALEY_3, TRAINER_HALEY_4, TRAINER_HALEY_5, ROUTE104), + [REMATCH_JAMES] = REMATCH(TRAINER_JAMES_1, TRAINER_JAMES_2, TRAINER_JAMES_3, TRAINER_JAMES_4, TRAINER_JAMES_5, PETALBURG_WOODS), + [REMATCH_TRENT] = REMATCH(TRAINER_TRENT_1, TRAINER_TRENT_2, TRAINER_TRENT_3, TRAINER_TRENT_4, TRAINER_TRENT_5, ROUTE112), + [REMATCH_SAWYER] = REMATCH(TRAINER_SAWYER_1, TRAINER_SAWYER_2, TRAINER_SAWYER_3, TRAINER_SAWYER_4, TRAINER_SAWYER_5, MT_CHIMNEY), + [REMATCH_KIRA_AND_DAN] = REMATCH(TRAINER_KIRA_AND_DAN_1, TRAINER_KIRA_AND_DAN_2, TRAINER_KIRA_AND_DAN_3, TRAINER_KIRA_AND_DAN_4, TRAINER_KIRA_AND_DAN_5, ABANDONED_SHIP_ROOMS2_1F), + [REMATCH_WALLY_3] = REMATCH(TRAINER_WALLY_3, TRAINER_WALLY_4, TRAINER_WALLY_5, TRAINER_WALLY_6, TRAINER_WALLY_6, VICTORY_ROAD_1F), + [REMATCH_ROXANNE] = REMATCH(TRAINER_ROXANNE_1, TRAINER_ROXANNE_2, TRAINER_ROXANNE_3, TRAINER_ROXANNE_4, TRAINER_ROXANNE_5, RUSTBORO_CITY), + [REMATCH_BRAWLY] = REMATCH(TRAINER_BRAWLY_1, TRAINER_BRAWLY_2, TRAINER_BRAWLY_3, TRAINER_BRAWLY_4, TRAINER_BRAWLY_5, DEWFORD_TOWN), + [REMATCH_WATTSON] = REMATCH(TRAINER_WATTSON_1, TRAINER_WATTSON_2, TRAINER_WATTSON_3, TRAINER_WATTSON_4, TRAINER_WATTSON_5, MAUVILLE_CITY), + [REMATCH_FLANNERY] = REMATCH(TRAINER_FLANNERY_1, TRAINER_FLANNERY_2, TRAINER_FLANNERY_3, TRAINER_FLANNERY_4, TRAINER_FLANNERY_5, LAVARIDGE_TOWN), + [REMATCH_NORMAN] = REMATCH(TRAINER_NORMAN_1, TRAINER_NORMAN_2, TRAINER_NORMAN_3, TRAINER_NORMAN_4, TRAINER_NORMAN_5, PETALBURG_CITY), + [REMATCH_WINONA] = REMATCH(TRAINER_WINONA_1, TRAINER_WINONA_2, TRAINER_WINONA_3, TRAINER_WINONA_4, TRAINER_WINONA_5, FORTREE_CITY), + [REMATCH_TATE_AND_LIZA] = REMATCH(TRAINER_TATE_AND_LIZA_1, TRAINER_TATE_AND_LIZA_2, TRAINER_TATE_AND_LIZA_3, TRAINER_TATE_AND_LIZA_4, TRAINER_TATE_AND_LIZA_5, MOSSDEEP_CITY), + [REMATCH_JUAN] = REMATCH(TRAINER_JUAN_1, TRAINER_JUAN_2, TRAINER_JUAN_3, TRAINER_JUAN_4, TRAINER_JUAN_5, SOOTOPOLIS_CITY), + [REMATCH_SIDNEY] = REMATCH(TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, TRAINER_SIDNEY, EVER_GRANDE_CITY), + [REMATCH_PHOEBE] = REMATCH(TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, TRAINER_PHOEBE, EVER_GRANDE_CITY), + [REMATCH_GLACIA] = REMATCH(TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, TRAINER_GLACIA, EVER_GRANDE_CITY), + [REMATCH_DRAKE] = REMATCH(TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, TRAINER_DRAKE, EVER_GRANDE_CITY), + [REMATCH_WALLACE] = REMATCH(TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, TRAINER_WALLACE, EVER_GRANDE_CITY), }; static const u16 sBadgeFlags[8] = From ea724278b7c9cf44a64ed7969298d4568c11c245 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 10:32:37 -0400 Subject: [PATCH 03/29] Juan text buffer overflow note --- data/maps/SootopolisCity_Gym_1F/scripts.inc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/data/maps/SootopolisCity_Gym_1F/scripts.inc b/data/maps/SootopolisCity_Gym_1F/scripts.inc index 99b9fb2baf..8db708e9c7 100644 --- a/data/maps/SootopolisCity_Gym_1F/scripts.inc +++ b/data/maps/SootopolisCity_Gym_1F/scripts.inc @@ -222,6 +222,10 @@ SootopolisCity_Gym_1F_Text_225268: @ 8225268 .string "A grand illusion of water sculpted\n" .string "by POKéMON and myself!$" +@ NOTE: This defeat text actually causes a buffer overflow. It's about 50 bytes too long for +@ the gDisplayedStringBattle buffer that it's put into, and it stomps all over the gBattleTextBuffs +@ after, as well as the otherwise unused array after that. One wonders if that's the reason for +@ the existence of that unused array of ints. SootopolisCity_Gym_1F_Text_225432: @ 8225432 .string "Ahahaha, excellent!\n" .string "Very well, you are the winner.\p" From 6508469259cc7eb37c37814f16b2f3a29e9d9555 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 10:38:02 -0400 Subject: [PATCH 04/29] Rename movobjectoffscreen to copyobjectxytoperm Renaming the command to something that makes more sense as to what the command actually does. The command copies the current xy of the instantiated object back to its template, so that the object remains in the same place if the player walks away and despawns the object, and then comes back. "moveobjectoffscreen" implies that it might be taking the object and moving it physically to an off-screen location somehow. --- asm/macros/event.inc | 3 ++- .../BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc | 2 +- data/maps/DewfordTown/scripts.inc | 2 +- data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc | 4 ++-- data/maps/FarawayIsland_Interior/scripts.inc | 2 +- data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc | 2 +- data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc | 6 +++--- data/maps/Route104/scripts.inc | 6 +++--- data/maps/Route109/scripts.inc | 2 +- data/maps/Route119_WeatherInstitute_2F/scripts.inc | 2 +- data/maps/RustboroCity/scripts.inc | 2 +- data/maps/RusturfTunnel/scripts.inc | 4 ++-- data/maps/SeafloorCavern_Entrance/scripts.inc | 2 +- data/maps/SlateportCity_Harbor/scripts.inc | 2 +- data/maps/SootopolisCity/scripts.inc | 4 ++-- data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc | 2 +- data/maps/VictoryRoad_1F/scripts.inc | 2 +- data/script_cmd_table.inc | 2 +- src/scrcmd.c | 2 +- 19 files changed, 27 insertions(+), 26 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index e00bdb6005..15889b1c6e 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -765,7 +765,8 @@ .2byte \y .endm - .macro moveobjectoffscreen index:req + @ Copies a live event object's xy position to its template, so that if the sprite goes off screen, it'll still be there when it comes back on screen. + .macro copyobjectxytoperm index:req .byte 0x64 .2byte \index .endm diff --git a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc index 0bc74b1bd9..f09166f5ae 100644 --- a/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleTowerMultiBattleRoom/scripts.inc @@ -63,7 +63,7 @@ BattleFrontier_BattleTowerMultiBattleRoom_EventScript_243E41:: @ 8243E41 waitmovement 0 applymovement 1, BattleFrontier_BattleTowerMultiBattleRoom_Movement_243E77 waitmovement 0 - moveobjectoffscreen 1 + copyobjectxytoperm 1 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceUp waitmovement 0 msgbox BattleFrontier_BattleTowerMultiBattleRoom_Text_244056, MSGBOX_DEFAULT diff --git a/data/maps/DewfordTown/scripts.inc b/data/maps/DewfordTown/scripts.inc index f564111040..fa29f4099c 100644 --- a/data/maps/DewfordTown/scripts.inc +++ b/data/maps/DewfordTown/scripts.inc @@ -180,7 +180,7 @@ DewfordTown_EventScript_1E96E7:: @ 81E96E7 copyvar VAR_BRINEY_LOCATION, VAR_0x8008 resetobjectpriority EVENT_OBJ_ID_PLAYER, MAP_DEWFORD_TOWN resetobjectpriority 2, MAP_ROUTE109 - moveobjectoffscreen 2 + copyobjectxytoperm 2 release end diff --git a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc index 959153d8ae..f688918eaf 100644 --- a/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc +++ b/data/maps/EverGrandeCity_PokemonLeague_1F/scripts.inc @@ -67,8 +67,8 @@ EverGrandeCity_PokemonLeague_1F_EventScript_229636:: @ 8229636 waitmessage waitfanfare closemessage - moveobjectoffscreen 3 - moveobjectoffscreen 4 + copyobjectxytoperm 3 + copyobjectxytoperm 4 setflag FLAG_ENTERED_ELITE_FOUR releaseall end diff --git a/data/maps/FarawayIsland_Interior/scripts.inc b/data/maps/FarawayIsland_Interior/scripts.inc index b6a278b033..de6545ec32 100644 --- a/data/maps/FarawayIsland_Interior/scripts.inc +++ b/data/maps/FarawayIsland_Interior/scripts.inc @@ -62,7 +62,7 @@ FarawayIsland_Interior_EventScript_267DA2:: @ 8267DA2 waitmovement 0 applymovement 1, FarawayIsland_Interior_Movement_267DCE waitmovement 0 - moveobjectoffscreen 1 + copyobjectxytoperm 1 setvar VAR_TEMP_1, 1 releaseall end diff --git a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc index b129e137eb..144113d724 100644 --- a/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_1F/scripts.inc @@ -236,7 +236,7 @@ MossdeepCity_SpaceCenter_1F_EventScript_22321F:: @ 822321F msgbox MossdeepCity_SpaceCenter_1F_Text_223B90, MSGBOX_DEFAULT trainerbattle_no_intro TRAINER_GRUNT_23, MossdeepCity_SpaceCenter_1F_Text_223BC2 setflag FLAG_DEFEATED_GRUNT_SPACE_CENTER_1F - moveobjectoffscreen 9 + copyobjectxytoperm 9 switch VAR_FACING case 3, MossdeepCity_SpaceCenter_1F_EventScript_223278 case 3, MossdeepCity_SpaceCenter_1F_EventScript_223289 diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc index 11abafa0cf..8dcc74116d 100644 --- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc +++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc @@ -70,9 +70,9 @@ MossdeepCity_SpaceCenter_2F_EventScript_223E09:: @ 8223E09 applymovement 7, MossdeepCity_SpaceCenter_2F_Movement_223E89 waitmovement 0 setvar VAR_MOSSDEEP_SPACE_CENTER_STATE_2, 2 - moveobjectoffscreen 5 - moveobjectoffscreen 7 - moveobjectoffscreen 6 + copyobjectxytoperm 5 + copyobjectxytoperm 7 + copyobjectxytoperm 6 releaseall end diff --git a/data/maps/Route104/scripts.inc b/data/maps/Route104/scripts.inc index 1a677001d1..fd195b973f 100644 --- a/data/maps/Route104/scripts.inc +++ b/data/maps/Route104/scripts.inc @@ -114,7 +114,7 @@ Route104_EventScript_1ECD4B:: @ 81ECD4B waitmovement 0 applymovement 34, Route104_Movement_1ECDCA waitmovement 0 - moveobjectoffscreen 34 + copyobjectxytoperm 34 msgbox Route104_Text_1EDCED, MSGBOX_YESNO compare VAR_RESULT, 1 goto_if_eq Route104_EventScript_1ECDED @@ -203,7 +203,7 @@ Route104_EventScript_1ECE6F:: @ 81ECE6F waitmovement 0 applymovement 34, Route104_Movement_1ECDCA waitmovement 0 - moveobjectoffscreen 34 + copyobjectxytoperm 34 msgbox Route104_Text_1EE009, MSGBOX_YESNO compare VAR_RESULT, 1 goto_if_eq Route104_EventScript_1ECF09 @@ -416,7 +416,7 @@ Route104_EventScript_1ED139:: @ 81ED139 copyvar VAR_BRINEY_LOCATION, VAR_0x8008 resetobjectpriority EVENT_OBJ_ID_PLAYER, MAP_ROUTE104 resetobjectpriority 2, MAP_DEWFORD_TOWN - moveobjectoffscreen 2 + copyobjectxytoperm 2 setvar VAR_BOARD_BRINEY_BOAT_STATE, 0 goto_if_unset FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_1ED1B4 goto_if_set FLAG_DELIVERED_STEVEN_LETTER, Route104_EventScript_1ED1BE diff --git a/data/maps/Route109/scripts.inc b/data/maps/Route109/scripts.inc index a036296e34..6447b49c53 100644 --- a/data/maps/Route109/scripts.inc +++ b/data/maps/Route109/scripts.inc @@ -58,7 +58,7 @@ Route109_EventScript_1EE7D5:: @ 81EE7D5 copyvar VAR_BRINEY_LOCATION, VAR_0x8008 resetobjectpriority EVENT_OBJ_ID_PLAYER, MAP_ROUTE109 resetobjectpriority 2, MAP_DEWFORD_TOWN - moveobjectoffscreen 2 + copyobjectxytoperm 2 release end diff --git a/data/maps/Route119_WeatherInstitute_2F/scripts.inc b/data/maps/Route119_WeatherInstitute_2F/scripts.inc index d5a2de5ce1..9257b3a644 100644 --- a/data/maps/Route119_WeatherInstitute_2F/scripts.inc +++ b/data/maps/Route119_WeatherInstitute_2F/scripts.inc @@ -77,7 +77,7 @@ Route119_WeatherInstitute_2F_EventScript_26FFC8:: @ 826FFC8 fadescreen 0 applymovement 5, Route119_WeatherInstitute_2F_Movement_270187 waitmovement 0 - moveobjectoffscreen 5 + copyobjectxytoperm 5 goto Route119_WeatherInstitute_2F_EventScript_27004D end diff --git a/data/maps/RustboroCity/scripts.inc b/data/maps/RustboroCity/scripts.inc index cd5f4c84dd..22177c783d 100644 --- a/data/maps/RustboroCity/scripts.inc +++ b/data/maps/RustboroCity/scripts.inc @@ -494,7 +494,7 @@ RustboroCity_EventScript_1E0B2E:: @ 81E0B2E call_if_eq RustboroCity_EventScript_1E0BF3 setflag FLAG_INTERACTED_WITH_DEVON_EMPLOYEE_GOODS_STOLEN setvar VAR_RUSTBORO_CITY_STATE, 3 - moveobjectoffscreen 9 + copyobjectxytoperm 9 msgbox RustboroCity_Text_1E183E, MSGBOX_DEFAULT releaseall end diff --git a/data/maps/RusturfTunnel/scripts.inc b/data/maps/RusturfTunnel/scripts.inc index 8d2a4be80e..8cb20e3729 100644 --- a/data/maps/RusturfTunnel/scripts.inc +++ b/data/maps/RusturfTunnel/scripts.inc @@ -285,8 +285,8 @@ RusturfTunnel_EventScript_22D083:: @ 822D083 applymovement 6, RusturfTunnel_Movement_22D0AB applymovement 7, RusturfTunnel_Movement_22D0AB waitmovement 0 - moveobjectoffscreen 6 - moveobjectoffscreen 7 + copyobjectxytoperm 6 + copyobjectxytoperm 7 setvar VAR_RUSTURF_TUNNEL_STATE, 3 releaseall end diff --git a/data/maps/SeafloorCavern_Entrance/scripts.inc b/data/maps/SeafloorCavern_Entrance/scripts.inc index 1bf5705495..bc4f04b7f9 100644 --- a/data/maps/SeafloorCavern_Entrance/scripts.inc +++ b/data/maps/SeafloorCavern_Entrance/scripts.inc @@ -26,7 +26,7 @@ SeafloorCavern_Entrance_EventScript_234485:: @ 8234485 call_if_eq SeafloorCavern_Entrance_EventScript_234539 delay 30 setvar VAR_HAS_TALKED_TO_SEAFLOOR_CAVERN_ENTRANCE_GRUNT, 1 - moveobjectoffscreen 1 + copyobjectxytoperm 1 msgbox SeafloorCavern_Entrance_Text_234544, MSGBOX_DEFAULT closemessage applymovement 1, Common_Movement_WalkInPlaceUp diff --git a/data/maps/SlateportCity_Harbor/scripts.inc b/data/maps/SlateportCity_Harbor/scripts.inc index 32fa9fa5dc..c46923bb07 100644 --- a/data/maps/SlateportCity_Harbor/scripts.inc +++ b/data/maps/SlateportCity_Harbor/scripts.inc @@ -77,7 +77,7 @@ SlateportCity_Harbor_EventScript_20C9F5:: @ 820C9F5 closemessage setflag FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_1_BLOCKING_ENTRANCE setflag FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_2_BLOCKING_ENTRANCE - moveobjectoffscreen 4 + copyobjectxytoperm 4 setobjectmovementtype 4, MOVEMENT_TYPE_FACE_RIGHT releaseall end diff --git a/data/maps/SootopolisCity/scripts.inc b/data/maps/SootopolisCity/scripts.inc index 7d2143346a..2f3ef04343 100644 --- a/data/maps/SootopolisCity/scripts.inc +++ b/data/maps/SootopolisCity/scripts.inc @@ -1366,14 +1366,14 @@ SootopolisCity_EventScript_1E646F:: @ 81E646F SootopolisCity_EventScript_1E64B2:: @ 81E64B2 applymovement 18, SootopolisCity_Movement_1E64EC waitmovement 0 - moveobjectoffscreen 18 + copyobjectxytoperm 18 setvar VAR_SOOTOPOLIS_WALLACE_STATE, 1 return SootopolisCity_EventScript_1E64C5:: @ 81E64C5 applymovement 18, SootopolisCity_Movement_1E64EF waitmovement 0 - moveobjectoffscreen 18 + copyobjectxytoperm 18 setvar VAR_SOOTOPOLIS_WALLACE_STATE, 2 return diff --git a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc index 5f2352645f..78938b7d84 100644 --- a/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc +++ b/data/maps/SootopolisCity_MysteryEventsHouse_1F/scripts.inc @@ -36,7 +36,7 @@ SootopolisCity_MysteryEventsHouse_1F_EventScript_2279B7:: @ 82279B7 waitmovement 0 applymovement 1, SootopolisCity_MysteryEventsHouse_1F_Movement_227A21 waitmovement 0 - moveobjectoffscreen 1 + copyobjectxytoperm 1 applymovement EVENT_OBJ_ID_PLAYER, Common_Movement_WalkInPlaceUp waitmovement 0 compare VAR_SOOTOPOLIS_MYSTERY_EVENTS_STATE, 1 diff --git a/data/maps/VictoryRoad_1F/scripts.inc b/data/maps/VictoryRoad_1F/scripts.inc index 5214edc44f..b6983eac0f 100644 --- a/data/maps/VictoryRoad_1F/scripts.inc +++ b/data/maps/VictoryRoad_1F/scripts.inc @@ -44,7 +44,7 @@ VictoryRoad_1F_EventScript_235DE1:: @ 8235DE1 trainerbattle_no_intro TRAINER_WALLY_1, VictoryRoad_1F_Text_235FFC msgbox VictoryRoad_1F_Text_236020, MSGBOX_DEFAULT clearflag FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY - moveobjectoffscreen 4 + copyobjectxytoperm 4 setflag FLAG_DEFEATED_WALLY_VICTORY_ROAD copyvar VAR_VICTORY_ROAD_1F_STATE, VAR_0x8008 releaseall diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index e9a14437a7..910227a921 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -100,7 +100,7 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_settrainerflag .4byte ScrCmd_cleartrainerflag .4byte ScrCmd_setobjectxyperm - .4byte ScrCmd_moveobjectoffscreen + .4byte ScrCmd_copyobjectxytoperm .4byte ScrCmd_setobjectmovementtype .4byte ScrCmd_waitmessage .4byte ScrCmd_message diff --git a/src/scrcmd.c b/src/scrcmd.c index 57cd3edbed..8746e0cfb9 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1102,7 +1102,7 @@ bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx) +bool8 ScrCmd_copyobjectxytoperm(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); From 9bcd39d86c06882c1c17909ee72ebc2b2819254b Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 10:38:48 -0400 Subject: [PATCH 05/29] Document the braille window id. --- src/scrcmd.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/scrcmd.c b/src/scrcmd.c index 8746e0cfb9..aa03181e6b 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -62,7 +62,7 @@ static EWRAM_DATA u16 sMovingNpcMapBank = 0; static EWRAM_DATA u16 sMovingNpcMapId = 0; static EWRAM_DATA u16 sFieldEffectScriptId = 0; -static u8 gUnknown_03000F30; +static u8 gBrailleWindowId; extern const SpecialFunc gSpecials[]; extern const u8 *gStdScripts[]; @@ -1515,13 +1515,13 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) yText = (yText - yWindow - 1) * 8; winTemplate = CreateWindowTemplate(0, xWindow, yWindow + 1, width, height, 0xF, 0x1); - gUnknown_03000F30 = AddWindow(&winTemplate); - LoadUserWindowBorderGfx(gUnknown_03000F30, 0x214, 0xE0); - DrawStdWindowFrame(gUnknown_03000F30, 0); - PutWindowTilemap(gUnknown_03000F30); - FillWindowPixelBuffer(gUnknown_03000F30, PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0); - CopyWindowToVram(gUnknown_03000F30, 3); + gBrailleWindowId = AddWindow(&winTemplate); + LoadUserWindowBorderGfx(gBrailleWindowId, 0x214, 0xE0); + DrawStdWindowFrame(gBrailleWindowId, 0); + PutWindowTilemap(gBrailleWindowId); + FillWindowPixelBuffer(gBrailleWindowId, PIXEL_FILL(1)); + AddTextPrinterParameterized(gBrailleWindowId, 6, gStringVar4, xText, yText, 0xFF, 0x0); + CopyWindowToVram(gBrailleWindowId, 3); return FALSE; } @@ -2254,8 +2254,8 @@ bool8 ScrCmd_setmonmetlocation(struct ScriptContext *ctx) void sub_809BDB4(void) { - ClearStdWindowAndFrame(gUnknown_03000F30, 1); - RemoveWindow(gUnknown_03000F30); + ClearStdWindowAndFrame(gBrailleWindowId, 1); + RemoveWindow(gBrailleWindowId); } bool8 ScrCmd_buffertrainerclassname(struct ScriptContext *ctx) From f4d4424618b8b357af23978ef543fd033dece7e9 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 13:25:36 -0400 Subject: [PATCH 06/29] Folded nops into hidemoneybox and updatemoneybox The nops are essential to the hidemoneybox and updatemoneybox commands when using vanilla versions of those commands. Even though they're not actually used parameters in the command implementation, they are still consumed, which means if someone were to get rid of the nops (as I did in TriHard) it causes the commands to consume bytecode that are not theirs, resulting in undefined behavior usually leading to softlocks. Folding the extra bytes into the macros means there's no chance of the extra bytes getting losts in scripts. --- asm/macros/event.inc | 3 +++ .../scripts.inc | 5 +---- data/maps/MauvilleCity_GameCorner/scripts.inc | 16 ++-------------- data/maps/MtChimney/scripts.inc | 11 +---------- data/maps/Route109_SeashoreHouse/scripts.inc | 11 +---------- .../maps/Route121_SafariZoneEntrance/scripts.inc | 7 +------ .../SlateportCity_OceanicMuseum_1F/scripts.inc | 11 +---------- 7 files changed, 10 insertions(+), 54 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 15889b1c6e..14051999f2 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1083,6 +1083,8 @@ @ Hides the secondary box spawned by showmoney. .macro hidemoneybox .byte 0x94 + .byte 0 @ leftovers from ruby/sapphire. x, y params not used + .byte 0 .endm @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments. @@ -1090,6 +1092,7 @@ .byte 0x95 .byte \x .byte \y + .byte 0 @ 1 = don't perform this command. Always 0 in vanilla. Why this is a thing is beyond me. .endm @ Gets the price reduction for the index given. In FireRed, this command is a nop. diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc index 42ced50b94..4bd4dc01c4 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc @@ -143,8 +143,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_22032F:: @ 822032F call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220321 compare VAR_TEMP_1, 2 call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220328 - updatemoneybox 0, 0 - nop + updatemoneybox 0,0 bufferitemname 0, VAR_TEMP_0 playse SE_JIHANKI msgbox LilycoveCity_DepartmentStoreRooftop_Text_2205A1, MSGBOX_DEFAULT @@ -197,8 +196,6 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_220450:: @ 8220450 LilycoveCity_DepartmentStoreRooftop_EventScript_22045E:: @ 822045E hidemoneybox - nop - nop releaseall end diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 88b1ded163..2574793720 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -39,14 +39,11 @@ MauvilleCity_GameCorner_EventScript_20FC33:: @ 820FC33 goto_if_eq MauvilleCity_GameCorner_EventScript_20FCC1 givecoins 50 takemoney 0x3e8, 0 - updatemoneybox 0, 0 - nop + updatemoneybox 0,0 updatecoinsbox 1, 6 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_210529, MSGBOX_DEFAULT hidemoneybox - nop - nop hidecoinsbox 0, 5 release end @@ -60,14 +57,11 @@ MauvilleCity_GameCorner_EventScript_20FC75:: @ 820FC75 goto_if_eq MauvilleCity_GameCorner_EventScript_20FCC1 givecoins 500 takemoney 0x2710, 0 - updatemoneybox 0, 0 - nop + updatemoneybox 0,0 updatecoinsbox 1, 6 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_210529, MSGBOX_DEFAULT hidemoneybox - nop - nop hidecoinsbox 0, 5 release end @@ -80,8 +74,6 @@ MauvilleCity_GameCorner_EventScript_20FCB7:: @ 820FCB7 MauvilleCity_GameCorner_EventScript_20FCC1:: @ 820FCC1 msgbox MauvilleCity_GameCorner_Text_210553, MSGBOX_DEFAULT hidemoneybox - nop - nop hidecoinsbox 0, 5 release end @@ -89,8 +81,6 @@ MauvilleCity_GameCorner_EventScript_20FCC1:: @ 820FCC1 MauvilleCity_GameCorner_EventScript_20FCD1:: @ 820FCD1 msgbox MauvilleCity_GameCorner_Text_21059A, MSGBOX_DEFAULT hidemoneybox - nop - nop hidecoinsbox 0, 5 release end @@ -98,8 +88,6 @@ MauvilleCity_GameCorner_EventScript_20FCD1:: @ 820FCD1 MauvilleCity_GameCorner_EventScript_20FCE1:: @ 820FCE1 msgbox MauvilleCity_GameCorner_Text_21057E, MSGBOX_DEFAULT hidemoneybox - nop - nop hidecoinsbox 0, 5 release end diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index d770f095c7..e89a8b4373 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -115,38 +115,29 @@ MtChimney_EventScript_22EEF3:: @ 822EEF3 compare VAR_RESULT, 0 goto_if_eq MtChimney_EventScript_22EF51 hidemoneybox - nop - nop release end MtChimney_EventScript_22EF51:: @ 822EF51 msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT hidemoneybox - nop - nop release end MtChimney_EventScript_22EF5E:: @ 822EF5E takemoney 0xc8, 0 - updatemoneybox 0, 0 - nop + updatemoneybox 0,0 return MtChimney_EventScript_22EF69:: @ 822EF69 msgbox MtChimney_Text_22FE9B, MSGBOX_DEFAULT hidemoneybox - nop - nop release end MtChimney_EventScript_22EF76:: @ 822EF76 msgbox MtChimney_Text_22FE5E, MSGBOX_DEFAULT hidemoneybox - nop - nop release end diff --git a/data/maps/Route109_SeashoreHouse/scripts.inc b/data/maps/Route109_SeashoreHouse/scripts.inc index e52ab08f9f..594b17f849 100644 --- a/data/maps/Route109_SeashoreHouse/scripts.inc +++ b/data/maps/Route109_SeashoreHouse/scripts.inc @@ -43,8 +43,6 @@ Route109_SeashoreHouse_EventScript_269460:: @ 8269460 goto_if_eq Route109_SeashoreHouse_EventScript_269484 msgbox Route109_SeashoreHouse_Text_2697EF, MSGBOX_DEFAULT hidemoneybox - nop - nop release end @@ -57,28 +55,21 @@ Route109_SeashoreHouse_EventScript_269484:: @ 8269484 goto_if_eq Route109_SeashoreHouse_EventScript_2694D5 msgbox Route109_SeashoreHouse_Text_2697C8, MSGBOX_DEFAULT takemoney 0x12c, 0 - updatemoneybox 0, 0 - nop + updatemoneybox 0,0 giveitem_std ITEM_SODA_POP hidemoneybox - nop - nop release end Route109_SeashoreHouse_EventScript_2694C8:: @ 82694C8 msgbox Route109_SeashoreHouse_Text_2697D5, MSGBOX_DEFAULT hidemoneybox - nop - nop release end Route109_SeashoreHouse_EventScript_2694D5:: @ 82694D5 msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT hidemoneybox - nop - nop release end diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc index 69f5ea80d3..001f80b153 100644 --- a/data/maps/Route121_SafariZoneEntrance/scripts.inc +++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc @@ -67,8 +67,7 @@ Route121_SafariZoneEntrance_EventScript_22BC48:: @ 822BC48 playse SE_REGI msgbox Route121_SafariZoneEntrance_Text_2A501B, MSGBOX_DEFAULT takemoney 0x1f4, 0 - updatemoneybox 0, 0 - nop + updatemoneybox 0,0 msgbox Route121_SafariZoneEntrance_Text_2A5036, MSGBOX_DEFAULT playfanfare MUS_FANFA4 message Route121_SafariZoneEntrance_Text_2A5052 @@ -76,8 +75,6 @@ Route121_SafariZoneEntrance_EventScript_22BC48:: @ 822BC48 msgbox Route121_SafariZoneEntrance_Text_2A506F, MSGBOX_DEFAULT closemessage hidemoneybox - nop - nop applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_22BD18 waitmovement 0 special EnterSafariMode @@ -114,8 +111,6 @@ Route121_SafariZoneEntrance_EventScript_22BCF8:: @ 822BCF8 Route121_SafariZoneEntrance_EventScript_22BD06:: @ 822BD06 closemessage hidemoneybox - nop - nop applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_22BD16 waitmovement 0 releaseall diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc index 5a4947c8aa..6dc4f22429 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc @@ -26,8 +26,6 @@ SlateportCity_OceanicMuseum_1F_EventScript_20ADC1:: @ 820ADC1 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_20ADE8 closemessage hidemoneybox - nop - nop applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AE4B waitmovement 0 releaseall @@ -39,13 +37,10 @@ SlateportCity_OceanicMuseum_1F_EventScript_20ADE8:: @ 820ADE8 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_20AE18 playse SE_REGI takemoney 0x32, 0 - updatemoneybox 0, 0 - nop + updatemoneybox 0,0 msgbox SlateportCity_OceanicMuseum_1F_Text_20B026, MSGBOX_DEFAULT setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 1 hidemoneybox - nop - nop releaseall end @@ -54,8 +49,6 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AE18:: @ 820AE18 msgbox SlateportCity_OceanicMuseum_1F_Text_20B03D, MSGBOX_DEFAULT closemessage hidemoneybox - nop - nop applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AE4B waitmovement 0 releaseall @@ -65,8 +58,6 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AE39:: @ 820AE39 msgbox SlateportCity_OceanicMuseum_1F_Text_20B075, MSGBOX_DEFAULT setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 1 hidemoneybox - nop - nop releaseall end From bac8974ce375bc464c6374cfeb4d74e4dc98a20a Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 11:16:54 -0400 Subject: [PATCH 07/29] Added note about addvar The contest scripts actually use addvar to add a -1 to a variable instead of using subvar to subtract a positive number. This is fine in vanilla, where addvar script command does NOT support adding the value of a variable to another variable (like subvar supports), but should anyone want to change it, contests will be inexplicably broken. --- src/scrcmd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/scrcmd.c b/src/scrcmd.c index aa03181e6b..e31be848a3 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -466,6 +466,9 @@ bool8 ScrCmd_addvar(struct ScriptContext *ctx) { u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); *ptr += ScriptReadHalfword(ctx); + // Note: addvar doesn't support adding from a variable in vanilla. If you were to + // add a VarGet() to the above, make sure you change the `addvar VAR_0x8006, 65535` + // in the contest scripts to `subvar VAR_0x8006, 1`, else contests will break. return FALSE; } From d12a8c10ee045baead789f947160fea78913e7e0 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 12:01:38 -0400 Subject: [PATCH 08/29] Documenting credits a bit --- include/credits.h | 2 +- src/credits.c | 475 +++++++++++++++++++++++---------------------- src/hall_of_fame.c | 2 +- 3 files changed, 241 insertions(+), 238 deletions(-) diff --git a/include/credits.h b/include/credits.h index e7e58415b2..f7dfa99970 100644 --- a/include/credits.h +++ b/include/credits.h @@ -7,6 +7,6 @@ extern EWRAM_DATA bool8 gHasHallOfFameRecords; // Exported ROM declarations -void sub_8175620(void); +void CB2_StartCreditsSequence(void); #endif // GUARD_CREDITS_H diff --git a/src/credits.c b/src/credits.c index 1e96514b17..99c89dc8fc 100644 --- a/src/credits.c +++ b/src/credits.c @@ -143,7 +143,7 @@ struct Unk201C000 struct CreditsEntry { u8 var_0; - u8 var_1; + u8 isTitle; const u8 *text; }; @@ -165,7 +165,7 @@ static const u32 gCreditsCopyrightEnd_Gfx[] = INCBIN_U32("graphics/credits/the_e static void sub_81772B8(struct Sprite *sprite); -static const u8 gUnknown_085E5BAC[] = +static const u8 sTheEnd_LetterTMap[] = { 0, 1, 0, 0xFF, 1, 0xFF, @@ -174,7 +174,7 @@ static const u8 gUnknown_085E5BAC[] = 0xFF, 1, 0xFF, }; -static const u8 gUnknown_085E5BBB[] = +static const u8 sTheEnd_LetterHMap[] = { 1, 0xFF, 1, 1, 0xFF, 1, @@ -183,7 +183,7 @@ static const u8 gUnknown_085E5BBB[] = 1, 0xFF, 1, }; -static const u8 gUnknown_085E5BCA[] = +static const u8 sTheEnd_LetterEMap[] = { 1, 0, 0, 1, 0xFF, 0xFF, @@ -192,7 +192,7 @@ static const u8 gUnknown_085E5BCA[] = 1, 0x80, 0x80, }; -static const u8 gUnknown_085E5BD9[] = +static const u8 sTheEnd_LetterNMap[] = { 1, 3, 1, 1, 4, 1, @@ -201,7 +201,7 @@ static const u8 gUnknown_085E5BD9[] = 1, 0xC3, 1, }; -static const u8 gUnknown_085E5BE8[] = +static const u8 sTheEnd_LetterDMap[] = { 1, 6, 7, 1, 8, 9, @@ -369,165 +369,165 @@ static const u8 gCreditsText_MotoyasuTojima[] = _("Motoyasu Tojima"); static const u8 gCreditsText_NicolaPrattBarlow[] = _("Nicola Pratt-Barlow"); static const u8 gCreditsText_ShellieDow[] = _("Shellie Dow"); static const u8 gCreditsText_ErikJohnson[] = _("Erik Johnson"); -static const struct CreditsEntry gCreditsEntry_EmptyString[] = {0, 0, gCreditsText_EmptyString}; -static const struct CreditsEntry gCreditsEntry_PkmnEmeraldVersion[] = {7, 1, gCreditsText_PkmnEmeraldVersion}; -static const struct CreditsEntry gCreditsEntry_Credits[] = {11, 1, gCreditsText_Credits}; -static const struct CreditsEntry gCreditsEntry_ExecutiveDirector[] = {8, 1, gCreditsText_ExecutiveDirector}; -static const struct CreditsEntry gCreditsEntry_Director[] = {12, 1, gCreditsText_Director}; -static const struct CreditsEntry gCreditsEntry_ArtDirector[] = {10, 1, gCreditsText_ArtDirector}; -static const struct CreditsEntry gCreditsEntry_BattleDirector[] = {10, 1, gCreditsText_BattleDirector}; -static const struct CreditsEntry gCreditsEntry_MainProgrammer[] = {10, 1, gCreditsText_MainProgrammer}; -static const struct CreditsEntry gCreditsEntry_BattleSystemPgrms[] = {8, 1, gCreditsText_BattleSystemPgrms}; -static const struct CreditsEntry gCreditsEntry_FieldSystemPgrms[] = {7, 1, gCreditsText_FieldSystemPgrms}; -static const struct CreditsEntry gCreditsEntry_Programmers[] = {12, 1, gCreditsText_Programmers}; -static const struct CreditsEntry gCreditsEntry_MainGraphicDesigner[] = {7, 1, gCreditsText_MainGraphicDesigner}; -static const struct CreditsEntry gCreditsEntry_GraphicDesigners[] = {9, 1, gCreditsText_GraphicDesigners}; -static const struct CreditsEntry gCreditsEntry_PkmnDesigners[] = {10, 1, gCreditsText_PkmnDesigners}; -static const struct CreditsEntry gCreditsEntry_MusicComposition[] = {13, 1, gCreditsText_MusicComposition}; -static const struct CreditsEntry gCreditsEntry_SoundEffectsAndPkmnVoices[] = {4, 1, gCreditsText_SoundEffectsAndPkmnVoices}; -static const struct CreditsEntry gCreditsEntry_GameDesigners[] = {11, 1, gCreditsText_GameDesigners}; -static const struct CreditsEntry gCreditsEntry_ScenarioPlot[] = {11, 1, gCreditsText_ScenarioPlot}; -static const struct CreditsEntry gCreditsEntry_Scenario[] = {13, 1, gCreditsText_Scenario}; -static const struct CreditsEntry gCreditsEntry_ScriptDesigners[] = {10, 1, gCreditsText_ScriptDesigners}; -static const struct CreditsEntry gCreditsEntry_MapDesigners[] = {11, 1, gCreditsText_MapDesigners}; -static const struct CreditsEntry gCreditsEntry_MapDataDesigners[] = {9, 1, gCreditsText_MapDataDesigners}; -static const struct CreditsEntry gCreditsEntry_ParametricDesigners[] = {9, 1, gCreditsText_ParametricDesigners}; -static const struct CreditsEntry gCreditsEntry_PokedexText[] = {11, 1, gCreditsText_PokedexText}; -static const struct CreditsEntry gCreditsEntry_EnvAndToolPgrms[] = {6, 1, gCreditsText_EnvAndToolPgrms}; -static const struct CreditsEntry gCreditsEntry_NCLProductTesting[] = {11, 1, gCreditsText_NCLProductTesting}; -static const struct CreditsEntry gCreditsEntry_SpecialThanks[] = {10, 1, gCreditsText_SpecialThanks}; -static const struct CreditsEntry gCreditsEntry_Coordinators[] = {11, 1, gCreditsText_Coordinators}; -static const struct CreditsEntry gCreditsEntry_Producers[] = {11, 1, gCreditsText_Producers}; -static const struct CreditsEntry gCreditsEntry_ExecProducers[] = {7, 1, gCreditsText_ExecProducers}; -static const struct CreditsEntry gCreditsEntry_InfoSupervisors[] = {10, 1, gCreditsText_InfoSupervisors}; -static const struct CreditsEntry gCreditsEntry_TaskManagers[] = {8, 1, gCreditsText_TaskManagers}; -static const struct CreditsEntry gCreditsEntry_BrailleCodeCheck[] = {10, 1, gCreditsText_BrailleCodeCheck}; -static const struct CreditsEntry gCreditsEntry_WorldDirector[] = {10, 1, gCreditsText_WorldDirector}; -static const struct CreditsEntry gCreditsEntry_BattleFrontierData[] = {8, 1, gCreditsText_BattleFrontierData}; -static const struct CreditsEntry gCreditsEntry_SupportProgrammers[] = {10, 1, gCreditsText_SupportProgrammers}; -static const struct CreditsEntry gCreditsEntry_Artwork[] = {12, 1, gCreditsText_Artwork}; -static const struct CreditsEntry gCreditsEntry_LeadProgrammer[] = {10, 1, gCreditsText_LeadProgrammer}; -static const struct CreditsEntry gCreditsEntry_LeadGraphicArtist[] = {9, 1, gCreditsText_LeadGraphicArtist}; -static const struct CreditsEntry gCreditsEntry_SatoshiTajiri[] = {11, 0, gCreditsText_SatoshiTajiri}; -static const struct CreditsEntry gCreditsEntry_JunichiMasuda[] = {11, 0, gCreditsText_JunichiMasuda}; -static const struct CreditsEntry gCreditsEntry_KenSugimori[] = {11, 0, gCreditsText_KenSugimori}; -static const struct CreditsEntry gCreditsEntry_ShigekiMorimoto[] = {11, 0, gCreditsText_ShigekiMorimoto}; -static const struct CreditsEntry gCreditsEntry_TetsuyaWatanabe[] = {11, 0, gCreditsText_TetsuyaWatanabe}; -static const struct CreditsEntry gCreditsEntry_HisashiSogabe[] = {11, 0, gCreditsText_HisashiSogabe}; -static const struct CreditsEntry gCreditsEntry_SosukeTamada[] = {11, 0, gCreditsText_SosukeTamada}; -static const struct CreditsEntry gCreditsEntry_AkitoMori[] = {11, 0, gCreditsText_AkitoMori}; -static const struct CreditsEntry gCreditsEntry_KeitaKagaya[] = {11, 0, gCreditsText_KeitaKagaya}; -static const struct CreditsEntry gCreditsEntry_YoshinoriMatsuda[] = {11, 0, gCreditsText_YoshinoriMatsuda}; -static const struct CreditsEntry gCreditsEntry_HiroyukiNakamura[] = {11, 0, gCreditsText_HiroyukiNakamura}; -static const struct CreditsEntry gCreditsEntry_MasaoTaya[] = {11, 0, gCreditsText_MasaoTaya}; -static const struct CreditsEntry gCreditsEntry_SatoshiNohara[] = {11, 0, gCreditsText_SatoshiNohara}; -static const struct CreditsEntry gCreditsEntry_TomomichiOhta[] = {11, 0, gCreditsText_TomomichiOhta}; -static const struct CreditsEntry gCreditsEntry_MiyukiIwasawa[] = {11, 0, gCreditsText_MiyukiIwasawa}; -static const struct CreditsEntry gCreditsEntry_TakenoriOhta[] = {11, 0, gCreditsText_TakenoriOhta}; -static const struct CreditsEntry gCreditsEntry_HironobuYoshida[] = {11, 0, gCreditsText_HironobuYoshida}; -static const struct CreditsEntry gCreditsEntry_MotofumiFujiwara[] = {11, 0, gCreditsText_MotofumiFujiwara}; -static const struct CreditsEntry gCreditsEntry_SatoshiOhta[] = {11, 0, gCreditsText_SatoshiOhta}; -static const struct CreditsEntry gCreditsEntry_AsukaIwashita[] = {11, 0, gCreditsText_AsukaIwashita}; -static const struct CreditsEntry gCreditsEntry_AimiTomita[] = {11, 0, gCreditsText_AimiTomita}; -static const struct CreditsEntry gCreditsEntry_TakaoUnno[] = {11, 0, gCreditsText_TakaoUnno}; -static const struct CreditsEntry gCreditsEntry_KanakoEo[] = {11, 0, gCreditsText_KanakoEo}; -static const struct CreditsEntry gCreditsEntry_JunOkutani[] = {11, 0, gCreditsText_JunOkutani}; -static const struct CreditsEntry gCreditsEntry_AtsukoNishida[] = {11, 0, gCreditsText_AtsukoNishida}; -static const struct CreditsEntry gCreditsEntry_MuneoSaito[] = {11, 0, gCreditsText_MuneoSaito}; -static const struct CreditsEntry gCreditsEntry_RenaYoshikawa[] = {11, 0, gCreditsText_RenaYoshikawa}; -static const struct CreditsEntry gCreditsEntry_GoIchinose[] = {11, 0, gCreditsText_GoIchinose}; -static const struct CreditsEntry gCreditsEntry_MorikazuAoki[] = {11, 0, gCreditsText_MorikazuAoki}; -static const struct CreditsEntry gCreditsEntry_KojiNishino[] = {11, 0, gCreditsText_KojiNishino}; -static const struct CreditsEntry gCreditsEntry_KenjiMatsushima[] = {11, 0, gCreditsText_KenjiMatsushima}; -static const struct CreditsEntry gCreditsEntry_TetsujiOhta[] = {11, 0, gCreditsText_TetsujiOhta}; -static const struct CreditsEntry gCreditsEntry_HitomiSato[] = {11, 0, gCreditsText_HitomiSato}; -static const struct CreditsEntry gCreditsEntry_TakeshiKawachimaru[] = {11, 0, gCreditsText_TakeshiKawachimaru}; -static const struct CreditsEntry gCreditsEntry_TeruyukiShimoyamada[] = {11, 0, gCreditsText_TeruyukiShimoyamada}; -static const struct CreditsEntry gCreditsEntry_ShigeruOhmori[] = {11, 0, gCreditsText_ShigeruOhmori}; -static const struct CreditsEntry gCreditsEntry_TadashiTakahashi[] = {11, 0, gCreditsText_TadashiTakahashi}; -static const struct CreditsEntry gCreditsEntry_ToshinobuMatsumiya[] = {11, 0, gCreditsText_ToshinobuMatsumiya}; -static const struct CreditsEntry gCreditsEntry_AkihitoTomisawa[] = {11, 0, gCreditsText_AkihitoTomisawa}; -static const struct CreditsEntry gCreditsEntry_HirokiEnomoto[] = {11, 0, gCreditsText_HirokiEnomoto}; -static const struct CreditsEntry gCreditsEntry_KazuyukiTerada[] = {11, 0, gCreditsText_KazuyukiTerada}; -static const struct CreditsEntry gCreditsEntry_YuriSakurai[] = {11, 0, gCreditsText_YuriSakurai}; -static const struct CreditsEntry gCreditsEntry_HiromiSagawa[] = {11, 0, gCreditsText_HiromiSagawa}; -static const struct CreditsEntry gCreditsEntry_KenjiTominaga[] = {11, 0, gCreditsText_KenjiTominaga}; -static const struct CreditsEntry gCreditsEntry_YoshioTajiri[] = {11, 0, gCreditsText_YoshioTajiri}; -static const struct CreditsEntry gCreditsEntry_TeikoSasaki[] = {11, 0, gCreditsText_TeikoSasaki}; -static const struct CreditsEntry gCreditsEntry_SachikoHamano[] = {11, 0, gCreditsText_SachikoHamano}; -static const struct CreditsEntry gCreditsEntry_ChieMatsumiya[] = {11, 0, gCreditsText_ChieMatsumiya}; -static const struct CreditsEntry gCreditsEntry_AkikoShinozaki[] = {11, 0, gCreditsText_AkikoShinozaki}; -static const struct CreditsEntry gCreditsEntry_AstukoFujii[] = {11, 0, gCreditsText_AstukoFujii}; -static const struct CreditsEntry gCreditsEntry_NozomuSaito[] = {11, 0, gCreditsText_NozomuSaito}; -static const struct CreditsEntry gCreditsEntry_KenkichiToyama[] = {11, 0, gCreditsText_KenkichiToyama}; -static const struct CreditsEntry gCreditsEntry_SuguruNakatsui[] = {11, 0, gCreditsText_SuguruNakatsui}; -static const struct CreditsEntry gCreditsEntry_YumiFunasaka[] = {11, 0, gCreditsText_YumiFunasaka}; -static const struct CreditsEntry gCreditsEntry_NaokoYanase[] = {11, 0, gCreditsText_NaokoYanase}; -static const struct CreditsEntry gCreditsEntry_NCLSuperMarioClub[] = {11, 0, gCreditsText_NCLSuperMarioClub}; -static const struct CreditsEntry gCreditsEntry_AtsushiTada[] = {11, 0, gCreditsText_AtsushiTada}; -static const struct CreditsEntry gCreditsEntry_TakahiroOhnishi[] = {11, 0, gCreditsText_TakahiroOhnishi}; -static const struct CreditsEntry gCreditsEntry_NorihideOkamura[] = {11, 0, gCreditsText_NorihideOkamura}; -static const struct CreditsEntry gCreditsEntry_HiroNakamura[] = {11, 0, gCreditsText_HiroNakamura}; -static const struct CreditsEntry gCreditsEntry_HiroyukiUesugi[] = {11, 0, gCreditsText_HiroyukiUesugi}; -static const struct CreditsEntry gCreditsEntry_TerukiMurakawa[] = {11, 0, gCreditsText_TerukiMurakawa}; -static const struct CreditsEntry gCreditsEntry_AkiraKinashi[] = {11, 0, gCreditsText_AkiraKinashi}; -static const struct CreditsEntry gCreditsEntry_MichikoTakizawa[] = {11, 0, gCreditsText_MichikoTakizawa}; -static const struct CreditsEntry gCreditsEntry_MakikoTakada[] = {11, 0, gCreditsText_MakikoTakada}; -static const struct CreditsEntry gCreditsEntry_TakanaoKondo[] = {11, 0, gCreditsText_TakanaoKondo}; -static const struct CreditsEntry gCreditsEntry_AiMashima[] = {11, 0, gCreditsText_AiMashima}; -static const struct CreditsEntry gCreditsEntry_GakujiNomoto[] = {11, 0, gCreditsText_GakujiNomoto}; -static const struct CreditsEntry gCreditsEntry_TakehiroIzushi[] = {11, 0, gCreditsText_TakehiroIzushi}; -static const struct CreditsEntry gCreditsEntry_HitoshiYamagami[] = {11, 0, gCreditsText_HitoshiYamagami}; -static const struct CreditsEntry gCreditsEntry_KyokoWatanabe[] = {11, 0, gCreditsText_KyokoWatanabe}; -static const struct CreditsEntry gCreditsEntry_TakaoNakano[] = {11, 0, gCreditsText_TakaoNakano}; -static const struct CreditsEntry gCreditsEntry_HiroyukiJinnai[] = {11, 0, gCreditsText_HiroyukiJinnai}; -static const struct CreditsEntry gCreditsEntry_HiroakiTsuru[] = {11, 0, gCreditsText_HiroakiTsuru}; -static const struct CreditsEntry gCreditsEntry_TsunekazIshihara[] = {11, 0, gCreditsText_TsunekazIshihara}; -static const struct CreditsEntry gCreditsEntry_SatoruIwata[] = {11, 0, gCreditsText_SatoruIwata}; -static const struct CreditsEntry gCreditsEntry_KazuyaSuyama[] = {11, 0, gCreditsText_KazuyaSuyama}; -static const struct CreditsEntry gCreditsEntry_SatoshiMitsuhara[] = {11, 0, gCreditsText_SatoshiMitsuhara}; -static const struct CreditsEntry gCreditsEntry_JapanBrailleLibrary[] = {9, 0, gCreditsText_JapanBrailleLibrary}; -static const struct CreditsEntry gCreditsEntry_TomotakaKomura[] = {11, 0, gCreditsText_TomotakaKomura}; -static const struct CreditsEntry gCreditsEntry_MikikoOhhashi[] = {11, 0, gCreditsText_MikikoOhhashi}; -static const struct CreditsEntry gCreditsEntry_DaisukeHoshino[] = {11, 0, gCreditsText_DaisukeHoshino}; -static const struct CreditsEntry gCreditsEntry_KenjiroIto[] = {11, 0, gCreditsText_KenjiroIto}; -static const struct CreditsEntry gCreditsEntry_RuiKawaguchi[] = {11, 0, gCreditsText_RuiKawaguchi}; -static const struct CreditsEntry gCreditsEntry_ShunsukeKohori[] = {11, 0, gCreditsText_ShunsukeKohori}; -static const struct CreditsEntry gCreditsEntry_SachikoNakamichi[] = {11, 0, gCreditsText_SachikoNakamichi}; -static const struct CreditsEntry gCreditsEntry_FujikoNomura[] = {11, 0, gCreditsText_FujikoNomura}; -static const struct CreditsEntry gCreditsEntry_KazukiYoshihara[] = {11, 0, gCreditsText_KazukiYoshihara}; -static const struct CreditsEntry gCreditsEntry_RetsujiNomoto[] = {11, 0, gCreditsText_RetsujiNomoto}; -static const struct CreditsEntry gCreditsEntry_AzusaTajima[] = {11, 0, gCreditsText_AzusaTajima}; -static const struct CreditsEntry gCreditsEntry_ShusakuEgami[] = {11, 0, gCreditsText_ShusakuEgami}; -static const struct CreditsEntry gCreditsEntry_PackageAndManual[] = {0, 1, gCreditsText_PackageAndManual}; -static const struct CreditsEntry gCreditsEntry_EnglishVersion[] = {0, 1, gCreditsText_EnglishVersion}; -static const struct CreditsEntry gCreditsEntry_Translator[] = {0, 1, gCreditsText_Translator}; -static const struct CreditsEntry gCreditsEntry_TextEditor[] = {0, 1, gCreditsText_TextEditor}; -static const struct CreditsEntry gCreditsEntry_NCLCoordinator[] = {0, 1, gCreditsText_NCLCoordinator}; -static const struct CreditsEntry gCreditsEntry_GraphicDesigner[] = {0, 1, gCreditsText_GraphicDesigner}; -static const struct CreditsEntry gCreditsEntry_NOAProductTesting[] = {0, 1, gCreditsText_NOAProductTesting}; -static const struct CreditsEntry gCreditsEntry_HideyukiNakajima[] = {0, 0, gCreditsText_HideyukiNakajima}; -static const struct CreditsEntry gCreditsEntry_HidenoriSaeki[] = {0, 0, gCreditsText_HidenoriSaeki}; -static const struct CreditsEntry gCreditsEntry_YokoWatanabe[] = {0, 0, gCreditsText_YokoWatanabe}; -static const struct CreditsEntry gCreditsEntry_SakaeKimura[] = {0, 0, gCreditsText_SakaeKimura}; -static const struct CreditsEntry gCreditsEntry_ChiakiShinkai[] = {0, 0, gCreditsText_ChiakiShinkai}; -static const struct CreditsEntry gCreditsEntry_SethMcMahill[] = {0, 0, gCreditsText_SethMcMahill}; -static const struct CreditsEntry gCreditsEntry_NobOgasawara[] = {0, 0, gCreditsText_NobOgasawara}; -static const struct CreditsEntry gCreditsEntry_TeresaLillygren[] = {0, 0, gCreditsText_TeresaLillygren}; -static const struct CreditsEntry gCreditsEntry_KimikoNakamichi[] = {0, 0, gCreditsText_KimikoNakamichi}; -static const struct CreditsEntry gCreditsEntry_SouichiYamamoto[] = {0, 0, gCreditsText_SouichiYamamoto}; -static const struct CreditsEntry gCreditsEntry_YuichiroIto[] = {0, 0, gCreditsText_YuichiroIto}; -static const struct CreditsEntry gCreditsEntry_ThomasHertzog[] = {0, 0, gCreditsText_ThomasHertzog}; -static const struct CreditsEntry gCreditsEntry_MikaKurosawa[] = {0, 0, gCreditsText_MikaKurosawa}; -static const struct CreditsEntry gCreditsEntry_NationalFederationBlind[] = {0, 0, gCreditsText_NationalFederationBlind}; -static const struct CreditsEntry gCreditsEntry_PatriciaAMaurer[] = {0, 0, gCreditsText_PatriciaAMaurer}; -static const struct CreditsEntry gCreditsEntry_EuropeanBlindUnion[] = {0, 0, gCreditsText_EuropeanBlindUnion}; -static const struct CreditsEntry gCreditsEntry_AustralianBrailleAuthority[] = {0, 0, gCreditsText_AustralianBrailleAuthority}; -static const struct CreditsEntry gCreditsEntry_RoyalNewZealandFederationBlind[] = {0, 0, gCreditsText_RoyalNewZealandFederationBlind}; -static const struct CreditsEntry gCreditsEntry_MotoyasuTojima[] = {0, 0, gCreditsText_MotoyasuTojima}; -static const struct CreditsEntry gCreditsEntry_NicolaPrattBarlow[] = {0, 0, gCreditsText_NicolaPrattBarlow}; -static const struct CreditsEntry gCreditsEntry_ShellieDow[] = {0, 0, gCreditsText_ShellieDow}; -static const struct CreditsEntry gCreditsEntry_ErikJohnson[] = {0, 0, gCreditsText_ErikJohnson}; +static const struct CreditsEntry gCreditsEntry_EmptyString[] = {0, FALSE, gCreditsText_EmptyString}; +static const struct CreditsEntry gCreditsEntry_PkmnEmeraldVersion[] = {7, TRUE, gCreditsText_PkmnEmeraldVersion}; +static const struct CreditsEntry gCreditsEntry_Credits[] = {11, TRUE, gCreditsText_Credits}; +static const struct CreditsEntry gCreditsEntry_ExecutiveDirector[] = {8, TRUE, gCreditsText_ExecutiveDirector}; +static const struct CreditsEntry gCreditsEntry_Director[] = {12, TRUE, gCreditsText_Director}; +static const struct CreditsEntry gCreditsEntry_ArtDirector[] = {10, TRUE, gCreditsText_ArtDirector}; +static const struct CreditsEntry gCreditsEntry_BattleDirector[] = {10, TRUE, gCreditsText_BattleDirector}; +static const struct CreditsEntry gCreditsEntry_MainProgrammer[] = {10, TRUE, gCreditsText_MainProgrammer}; +static const struct CreditsEntry gCreditsEntry_BattleSystemPgrms[] = {8, TRUE, gCreditsText_BattleSystemPgrms}; +static const struct CreditsEntry gCreditsEntry_FieldSystemPgrms[] = {7, TRUE, gCreditsText_FieldSystemPgrms}; +static const struct CreditsEntry gCreditsEntry_Programmers[] = {12, TRUE, gCreditsText_Programmers}; +static const struct CreditsEntry gCreditsEntry_MainGraphicDesigner[] = {7, TRUE, gCreditsText_MainGraphicDesigner}; +static const struct CreditsEntry gCreditsEntry_GraphicDesigners[] = {9, TRUE, gCreditsText_GraphicDesigners}; +static const struct CreditsEntry gCreditsEntry_PkmnDesigners[] = {10, TRUE, gCreditsText_PkmnDesigners}; +static const struct CreditsEntry gCreditsEntry_MusicComposition[] = {13, TRUE, gCreditsText_MusicComposition}; +static const struct CreditsEntry gCreditsEntry_SoundEffectsAndPkmnVoices[] = {4, TRUE, gCreditsText_SoundEffectsAndPkmnVoices}; +static const struct CreditsEntry gCreditsEntry_GameDesigners[] = {11, TRUE, gCreditsText_GameDesigners}; +static const struct CreditsEntry gCreditsEntry_ScenarioPlot[] = {11, TRUE, gCreditsText_ScenarioPlot}; +static const struct CreditsEntry gCreditsEntry_Scenario[] = {13, TRUE, gCreditsText_Scenario}; +static const struct CreditsEntry gCreditsEntry_ScriptDesigners[] = {10, TRUE, gCreditsText_ScriptDesigners}; +static const struct CreditsEntry gCreditsEntry_MapDesigners[] = {11, TRUE, gCreditsText_MapDesigners}; +static const struct CreditsEntry gCreditsEntry_MapDataDesigners[] = {9, TRUE, gCreditsText_MapDataDesigners}; +static const struct CreditsEntry gCreditsEntry_ParametricDesigners[] = {9, TRUE, gCreditsText_ParametricDesigners}; +static const struct CreditsEntry gCreditsEntry_PokedexText[] = {11, TRUE, gCreditsText_PokedexText}; +static const struct CreditsEntry gCreditsEntry_EnvAndToolPgrms[] = {6, TRUE, gCreditsText_EnvAndToolPgrms}; +static const struct CreditsEntry gCreditsEntry_NCLProductTesting[] = {11, TRUE, gCreditsText_NCLProductTesting}; +static const struct CreditsEntry gCreditsEntry_SpecialThanks[] = {10, TRUE, gCreditsText_SpecialThanks}; +static const struct CreditsEntry gCreditsEntry_Coordinators[] = {11, TRUE, gCreditsText_Coordinators}; +static const struct CreditsEntry gCreditsEntry_Producers[] = {11, TRUE, gCreditsText_Producers}; +static const struct CreditsEntry gCreditsEntry_ExecProducers[] = {7, TRUE, gCreditsText_ExecProducers}; +static const struct CreditsEntry gCreditsEntry_InfoSupervisors[] = {10, TRUE, gCreditsText_InfoSupervisors}; +static const struct CreditsEntry gCreditsEntry_TaskManagers[] = {8, TRUE, gCreditsText_TaskManagers}; +static const struct CreditsEntry gCreditsEntry_BrailleCodeCheck[] = {10, TRUE, gCreditsText_BrailleCodeCheck}; +static const struct CreditsEntry gCreditsEntry_WorldDirector[] = {10, TRUE, gCreditsText_WorldDirector}; +static const struct CreditsEntry gCreditsEntry_BattleFrontierData[] = {8, TRUE, gCreditsText_BattleFrontierData}; +static const struct CreditsEntry gCreditsEntry_SupportProgrammers[] = {10, TRUE, gCreditsText_SupportProgrammers}; +static const struct CreditsEntry gCreditsEntry_Artwork[] = {12, TRUE, gCreditsText_Artwork}; +static const struct CreditsEntry gCreditsEntry_LeadProgrammer[] = {10, TRUE, gCreditsText_LeadProgrammer}; +static const struct CreditsEntry gCreditsEntry_LeadGraphicArtist[] = {9, TRUE, gCreditsText_LeadGraphicArtist}; +static const struct CreditsEntry gCreditsEntry_SatoshiTajiri[] = {11, FALSE, gCreditsText_SatoshiTajiri}; +static const struct CreditsEntry gCreditsEntry_JunichiMasuda[] = {11, FALSE, gCreditsText_JunichiMasuda}; +static const struct CreditsEntry gCreditsEntry_KenSugimori[] = {11, FALSE, gCreditsText_KenSugimori}; +static const struct CreditsEntry gCreditsEntry_ShigekiMorimoto[] = {11, FALSE, gCreditsText_ShigekiMorimoto}; +static const struct CreditsEntry gCreditsEntry_TetsuyaWatanabe[] = {11, FALSE, gCreditsText_TetsuyaWatanabe}; +static const struct CreditsEntry gCreditsEntry_HisashiSogabe[] = {11, FALSE, gCreditsText_HisashiSogabe}; +static const struct CreditsEntry gCreditsEntry_SosukeTamada[] = {11, FALSE, gCreditsText_SosukeTamada}; +static const struct CreditsEntry gCreditsEntry_AkitoMori[] = {11, FALSE, gCreditsText_AkitoMori}; +static const struct CreditsEntry gCreditsEntry_KeitaKagaya[] = {11, FALSE, gCreditsText_KeitaKagaya}; +static const struct CreditsEntry gCreditsEntry_YoshinoriMatsuda[] = {11, FALSE, gCreditsText_YoshinoriMatsuda}; +static const struct CreditsEntry gCreditsEntry_HiroyukiNakamura[] = {11, FALSE, gCreditsText_HiroyukiNakamura}; +static const struct CreditsEntry gCreditsEntry_MasaoTaya[] = {11, FALSE, gCreditsText_MasaoTaya}; +static const struct CreditsEntry gCreditsEntry_SatoshiNohara[] = {11, FALSE, gCreditsText_SatoshiNohara}; +static const struct CreditsEntry gCreditsEntry_TomomichiOhta[] = {11, FALSE, gCreditsText_TomomichiOhta}; +static const struct CreditsEntry gCreditsEntry_MiyukiIwasawa[] = {11, FALSE, gCreditsText_MiyukiIwasawa}; +static const struct CreditsEntry gCreditsEntry_TakenoriOhta[] = {11, FALSE, gCreditsText_TakenoriOhta}; +static const struct CreditsEntry gCreditsEntry_HironobuYoshida[] = {11, FALSE, gCreditsText_HironobuYoshida}; +static const struct CreditsEntry gCreditsEntry_MotofumiFujiwara[] = {11, FALSE, gCreditsText_MotofumiFujiwara}; +static const struct CreditsEntry gCreditsEntry_SatoshiOhta[] = {11, FALSE, gCreditsText_SatoshiOhta}; +static const struct CreditsEntry gCreditsEntry_AsukaIwashita[] = {11, FALSE, gCreditsText_AsukaIwashita}; +static const struct CreditsEntry gCreditsEntry_AimiTomita[] = {11, FALSE, gCreditsText_AimiTomita}; +static const struct CreditsEntry gCreditsEntry_TakaoUnno[] = {11, FALSE, gCreditsText_TakaoUnno}; +static const struct CreditsEntry gCreditsEntry_KanakoEo[] = {11, FALSE, gCreditsText_KanakoEo}; +static const struct CreditsEntry gCreditsEntry_JunOkutani[] = {11, FALSE, gCreditsText_JunOkutani}; +static const struct CreditsEntry gCreditsEntry_AtsukoNishida[] = {11, FALSE, gCreditsText_AtsukoNishida}; +static const struct CreditsEntry gCreditsEntry_MuneoSaito[] = {11, FALSE, gCreditsText_MuneoSaito}; +static const struct CreditsEntry gCreditsEntry_RenaYoshikawa[] = {11, FALSE, gCreditsText_RenaYoshikawa}; +static const struct CreditsEntry gCreditsEntry_GoIchinose[] = {11, FALSE, gCreditsText_GoIchinose}; +static const struct CreditsEntry gCreditsEntry_MorikazuAoki[] = {11, FALSE, gCreditsText_MorikazuAoki}; +static const struct CreditsEntry gCreditsEntry_KojiNishino[] = {11, FALSE, gCreditsText_KojiNishino}; +static const struct CreditsEntry gCreditsEntry_KenjiMatsushima[] = {11, FALSE, gCreditsText_KenjiMatsushima}; +static const struct CreditsEntry gCreditsEntry_TetsujiOhta[] = {11, FALSE, gCreditsText_TetsujiOhta}; +static const struct CreditsEntry gCreditsEntry_HitomiSato[] = {11, FALSE, gCreditsText_HitomiSato}; +static const struct CreditsEntry gCreditsEntry_TakeshiKawachimaru[] = {11, FALSE, gCreditsText_TakeshiKawachimaru}; +static const struct CreditsEntry gCreditsEntry_TeruyukiShimoyamada[] = {11, FALSE, gCreditsText_TeruyukiShimoyamada}; +static const struct CreditsEntry gCreditsEntry_ShigeruOhmori[] = {11, FALSE, gCreditsText_ShigeruOhmori}; +static const struct CreditsEntry gCreditsEntry_TadashiTakahashi[] = {11, FALSE, gCreditsText_TadashiTakahashi}; +static const struct CreditsEntry gCreditsEntry_ToshinobuMatsumiya[] = {11, FALSE, gCreditsText_ToshinobuMatsumiya}; +static const struct CreditsEntry gCreditsEntry_AkihitoTomisawa[] = {11, FALSE, gCreditsText_AkihitoTomisawa}; +static const struct CreditsEntry gCreditsEntry_HirokiEnomoto[] = {11, FALSE, gCreditsText_HirokiEnomoto}; +static const struct CreditsEntry gCreditsEntry_KazuyukiTerada[] = {11, FALSE, gCreditsText_KazuyukiTerada}; +static const struct CreditsEntry gCreditsEntry_YuriSakurai[] = {11, FALSE, gCreditsText_YuriSakurai}; +static const struct CreditsEntry gCreditsEntry_HiromiSagawa[] = {11, FALSE, gCreditsText_HiromiSagawa}; +static const struct CreditsEntry gCreditsEntry_KenjiTominaga[] = {11, FALSE, gCreditsText_KenjiTominaga}; +static const struct CreditsEntry gCreditsEntry_YoshioTajiri[] = {11, FALSE, gCreditsText_YoshioTajiri}; +static const struct CreditsEntry gCreditsEntry_TeikoSasaki[] = {11, FALSE, gCreditsText_TeikoSasaki}; +static const struct CreditsEntry gCreditsEntry_SachikoHamano[] = {11, FALSE, gCreditsText_SachikoHamano}; +static const struct CreditsEntry gCreditsEntry_ChieMatsumiya[] = {11, FALSE, gCreditsText_ChieMatsumiya}; +static const struct CreditsEntry gCreditsEntry_AkikoShinozaki[] = {11, FALSE, gCreditsText_AkikoShinozaki}; +static const struct CreditsEntry gCreditsEntry_AstukoFujii[] = {11, FALSE, gCreditsText_AstukoFujii}; +static const struct CreditsEntry gCreditsEntry_NozomuSaito[] = {11, FALSE, gCreditsText_NozomuSaito}; +static const struct CreditsEntry gCreditsEntry_KenkichiToyama[] = {11, FALSE, gCreditsText_KenkichiToyama}; +static const struct CreditsEntry gCreditsEntry_SuguruNakatsui[] = {11, FALSE, gCreditsText_SuguruNakatsui}; +static const struct CreditsEntry gCreditsEntry_YumiFunasaka[] = {11, FALSE, gCreditsText_YumiFunasaka}; +static const struct CreditsEntry gCreditsEntry_NaokoYanase[] = {11, FALSE, gCreditsText_NaokoYanase}; +static const struct CreditsEntry gCreditsEntry_NCLSuperMarioClub[] = {11, FALSE, gCreditsText_NCLSuperMarioClub}; +static const struct CreditsEntry gCreditsEntry_AtsushiTada[] = {11, FALSE, gCreditsText_AtsushiTada}; +static const struct CreditsEntry gCreditsEntry_TakahiroOhnishi[] = {11, FALSE, gCreditsText_TakahiroOhnishi}; +static const struct CreditsEntry gCreditsEntry_NorihideOkamura[] = {11, FALSE, gCreditsText_NorihideOkamura}; +static const struct CreditsEntry gCreditsEntry_HiroNakamura[] = {11, FALSE, gCreditsText_HiroNakamura}; +static const struct CreditsEntry gCreditsEntry_HiroyukiUesugi[] = {11, FALSE, gCreditsText_HiroyukiUesugi}; +static const struct CreditsEntry gCreditsEntry_TerukiMurakawa[] = {11, FALSE, gCreditsText_TerukiMurakawa}; +static const struct CreditsEntry gCreditsEntry_AkiraKinashi[] = {11, FALSE, gCreditsText_AkiraKinashi}; +static const struct CreditsEntry gCreditsEntry_MichikoTakizawa[] = {11, FALSE, gCreditsText_MichikoTakizawa}; +static const struct CreditsEntry gCreditsEntry_MakikoTakada[] = {11, FALSE, gCreditsText_MakikoTakada}; +static const struct CreditsEntry gCreditsEntry_TakanaoKondo[] = {11, FALSE, gCreditsText_TakanaoKondo}; +static const struct CreditsEntry gCreditsEntry_AiMashima[] = {11, FALSE, gCreditsText_AiMashima}; +static const struct CreditsEntry gCreditsEntry_GakujiNomoto[] = {11, FALSE, gCreditsText_GakujiNomoto}; +static const struct CreditsEntry gCreditsEntry_TakehiroIzushi[] = {11, FALSE, gCreditsText_TakehiroIzushi}; +static const struct CreditsEntry gCreditsEntry_HitoshiYamagami[] = {11, FALSE, gCreditsText_HitoshiYamagami}; +static const struct CreditsEntry gCreditsEntry_KyokoWatanabe[] = {11, FALSE, gCreditsText_KyokoWatanabe}; +static const struct CreditsEntry gCreditsEntry_TakaoNakano[] = {11, FALSE, gCreditsText_TakaoNakano}; +static const struct CreditsEntry gCreditsEntry_HiroyukiJinnai[] = {11, FALSE, gCreditsText_HiroyukiJinnai}; +static const struct CreditsEntry gCreditsEntry_HiroakiTsuru[] = {11, FALSE, gCreditsText_HiroakiTsuru}; +static const struct CreditsEntry gCreditsEntry_TsunekazIshihara[] = {11, FALSE, gCreditsText_TsunekazIshihara}; +static const struct CreditsEntry gCreditsEntry_SatoruIwata[] = {11, FALSE, gCreditsText_SatoruIwata}; +static const struct CreditsEntry gCreditsEntry_KazuyaSuyama[] = {11, FALSE, gCreditsText_KazuyaSuyama}; +static const struct CreditsEntry gCreditsEntry_SatoshiMitsuhara[] = {11, FALSE, gCreditsText_SatoshiMitsuhara}; +static const struct CreditsEntry gCreditsEntry_JapanBrailleLibrary[] = {9, FALSE, gCreditsText_JapanBrailleLibrary}; +static const struct CreditsEntry gCreditsEntry_TomotakaKomura[] = {11, FALSE, gCreditsText_TomotakaKomura}; +static const struct CreditsEntry gCreditsEntry_MikikoOhhashi[] = {11, FALSE, gCreditsText_MikikoOhhashi}; +static const struct CreditsEntry gCreditsEntry_DaisukeHoshino[] = {11, FALSE, gCreditsText_DaisukeHoshino}; +static const struct CreditsEntry gCreditsEntry_KenjiroIto[] = {11, FALSE, gCreditsText_KenjiroIto}; +static const struct CreditsEntry gCreditsEntry_RuiKawaguchi[] = {11, FALSE, gCreditsText_RuiKawaguchi}; +static const struct CreditsEntry gCreditsEntry_ShunsukeKohori[] = {11, FALSE, gCreditsText_ShunsukeKohori}; +static const struct CreditsEntry gCreditsEntry_SachikoNakamichi[] = {11, FALSE, gCreditsText_SachikoNakamichi}; +static const struct CreditsEntry gCreditsEntry_FujikoNomura[] = {11, FALSE, gCreditsText_FujikoNomura}; +static const struct CreditsEntry gCreditsEntry_KazukiYoshihara[] = {11, FALSE, gCreditsText_KazukiYoshihara}; +static const struct CreditsEntry gCreditsEntry_RetsujiNomoto[] = {11, FALSE, gCreditsText_RetsujiNomoto}; +static const struct CreditsEntry gCreditsEntry_AzusaTajima[] = {11, FALSE, gCreditsText_AzusaTajima}; +static const struct CreditsEntry gCreditsEntry_ShusakuEgami[] = {11, FALSE, gCreditsText_ShusakuEgami}; +static const struct CreditsEntry gCreditsEntry_PackageAndManual[] = {0, TRUE, gCreditsText_PackageAndManual}; +static const struct CreditsEntry gCreditsEntry_EnglishVersion[] = {0, TRUE, gCreditsText_EnglishVersion}; +static const struct CreditsEntry gCreditsEntry_Translator[] = {0, TRUE, gCreditsText_Translator}; +static const struct CreditsEntry gCreditsEntry_TextEditor[] = {0, TRUE, gCreditsText_TextEditor}; +static const struct CreditsEntry gCreditsEntry_NCLCoordinator[] = {0, TRUE, gCreditsText_NCLCoordinator}; +static const struct CreditsEntry gCreditsEntry_GraphicDesigner[] = {0, TRUE, gCreditsText_GraphicDesigner}; +static const struct CreditsEntry gCreditsEntry_NOAProductTesting[] = {0, TRUE, gCreditsText_NOAProductTesting}; +static const struct CreditsEntry gCreditsEntry_HideyukiNakajima[] = {0, FALSE, gCreditsText_HideyukiNakajima}; +static const struct CreditsEntry gCreditsEntry_HidenoriSaeki[] = {0, FALSE, gCreditsText_HidenoriSaeki}; +static const struct CreditsEntry gCreditsEntry_YokoWatanabe[] = {0, FALSE, gCreditsText_YokoWatanabe}; +static const struct CreditsEntry gCreditsEntry_SakaeKimura[] = {0, FALSE, gCreditsText_SakaeKimura}; +static const struct CreditsEntry gCreditsEntry_ChiakiShinkai[] = {0, FALSE, gCreditsText_ChiakiShinkai}; +static const struct CreditsEntry gCreditsEntry_SethMcMahill[] = {0, FALSE, gCreditsText_SethMcMahill}; +static const struct CreditsEntry gCreditsEntry_NobOgasawara[] = {0, FALSE, gCreditsText_NobOgasawara}; +static const struct CreditsEntry gCreditsEntry_TeresaLillygren[] = {0, FALSE, gCreditsText_TeresaLillygren}; +static const struct CreditsEntry gCreditsEntry_KimikoNakamichi[] = {0, FALSE, gCreditsText_KimikoNakamichi}; +static const struct CreditsEntry gCreditsEntry_SouichiYamamoto[] = {0, FALSE, gCreditsText_SouichiYamamoto}; +static const struct CreditsEntry gCreditsEntry_YuichiroIto[] = {0, FALSE, gCreditsText_YuichiroIto}; +static const struct CreditsEntry gCreditsEntry_ThomasHertzog[] = {0, FALSE, gCreditsText_ThomasHertzog}; +static const struct CreditsEntry gCreditsEntry_MikaKurosawa[] = {0, FALSE, gCreditsText_MikaKurosawa}; +static const struct CreditsEntry gCreditsEntry_NationalFederationBlind[] = {0, FALSE, gCreditsText_NationalFederationBlind}; +static const struct CreditsEntry gCreditsEntry_PatriciaAMaurer[] = {0, FALSE, gCreditsText_PatriciaAMaurer}; +static const struct CreditsEntry gCreditsEntry_EuropeanBlindUnion[] = {0, FALSE, gCreditsText_EuropeanBlindUnion}; +static const struct CreditsEntry gCreditsEntry_AustralianBrailleAuthority[] = {0, FALSE, gCreditsText_AustralianBrailleAuthority}; +static const struct CreditsEntry gCreditsEntry_RoyalNewZealandFederationBlind[] = {0, FALSE, gCreditsText_RoyalNewZealandFederationBlind}; +static const struct CreditsEntry gCreditsEntry_MotoyasuTojima[] = {0, FALSE, gCreditsText_MotoyasuTojima}; +static const struct CreditsEntry gCreditsEntry_NicolaPrattBarlow[] = {0, FALSE, gCreditsText_NicolaPrattBarlow}; +static const struct CreditsEntry gCreditsEntry_ShellieDow[] = {0, FALSE, gCreditsText_ShellieDow}; +static const struct CreditsEntry gCreditsEntry_ErikJohnson[] = {0, FALSE, gCreditsText_ErikJohnson}; #define _ gCreditsEntry_EmptyString static const struct CreditsEntry *const gCreditsEntryPointerTable[][5] = @@ -934,7 +934,7 @@ static const struct CreditsEntry *const gCreditsEntryPointerTable[][5] = }; #undef _ -static const struct BgTemplate gUnknown_085E6F68[] = +static const struct BgTemplate sBackgroundTemplates[] = { { .bg = 0, @@ -946,7 +946,7 @@ static const struct BgTemplate gUnknown_085E6F68[] = .baseTile = 0 }, }; -static const struct WindowTemplate gUnknown_085E6F6C[] = +static const struct WindowTemplate sWindowTemplates[] = { { .bg = 0, @@ -1102,51 +1102,51 @@ static const struct SpriteTemplate gUnknown_085E7068 = .callback = sub_81772B8, }; -static void sub_8175744(u8 taskIdA); -static void sub_8175774(u8 taskIdA); +static void Task_WaitPaletteFade(u8 taskIdA); +static void Task_ProgressCreditTasks(u8 taskIdA); static void sub_8175808(u8 taskIdA); static void c2_080C9BFC(u8 taskIdA); -static void sub_81758E4(u8 taskIdA); +static void Task_CreditsLoadGrassScene(u8 taskIdA); static void sub_81758A4(u8 taskIdA); -static void sub_8175A9C(u8 taskIdA); -static void sub_8175AE4(u8 taskIdA); -static void sub_8175B1C(u8 taskIdA); -static void sub_8175B90(u8 taskIdA); -static void sub_8175BD8(u8 taskIdA); -static void sub_8175C34(u8 taskIdA); -static void sub_8175CC8(u8 taskIdA); -static void sub_8175CE4(void); +static void Task_CreditsTheEnd1(u8 taskIdA); +static void Task_CreditsTheEnd2(u8 taskIdA); +static void Task_CreditsTheEnd3(u8 taskIdA); +static void Task_CreditsTheEnd4(u8 taskIdA); +static void Task_CreditsTheEnd5(u8 taskIdA); +static void Task_CreditsTheEnd6(u8 taskIdA); +static void Task_CreditsSoftReset(u8 taskIdA); +static void ResetGpuAndVram(void); static void sub_8175DA0(u8 taskIdB); -static u8 sub_817603C(u8 page, u8 taskIdA); +static u8 CheckChangeScene(u8 page, u8 taskIdA); static void sub_81760FC(u8 taskIdA); static void sub_817651C(u8 taskIdA); static void sub_817624C(u8 taskIdA); static bool8 sub_8176AB0(u8 data, u8 taskIdA); -static void sub_8176CA0(u8 taskIdA); -static void sub_8176D1C(u16, u16, u16); +static void ResetCreditsTasks(u8 taskIdA); +static void LoadTheEndScreen(u16, u16, u16); static void sub_8176E40(u16 arg0, u16 palette); static void sub_8176EE8(struct Sprite *sprite); static void sub_8176F90(struct Sprite *sprite); static u8 sub_8177224(u16 species, s16 x, s16 y, u16 position); static void sub_8177388(void); -static void sub_81754C8(void) +static void CreditsVBlankCallback(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -static void sub_81754DC(void) +static void CB2_RunCreditsSequence(void) { RunTasks(); AnimateSprites(); if ((gMain.heldKeys & B_BUTTON) && gHasHallOfFameRecords != 0 - && gTasks[gUnknown_0203BCE2].func == sub_8175774) + && gTasks[gUnknown_0203BCE2].func == Task_ProgressCreditTasks) { - sub_81754C8(); + CreditsVBlankCallback(); RunTasks(); AnimateSprites(); gUnknown_0203BCE5 = 1; @@ -1158,10 +1158,10 @@ static void sub_81754DC(void) static void sub_8175548(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_085E6F68, 1); + InitBgsFromTemplates(0, sBackgroundTemplates, 1); SetBgTilemapBuffer(0, AllocZeroed(0x800)); LoadPalette(gUnknown_085E56F0, 0x80, 0x40); - InitWindows(gUnknown_085E6F6C); + InitWindows(sWindowTemplates); DeactivateAllTextPrinters(); PutWindowTilemap(0); CopyWindowToVram(0, 3); @@ -1177,14 +1177,14 @@ static void sub_81755A4(void) Free(ptr); } -static void sub_81755BC(const u8 *string, u8 y, u8 a2) +static void PrintCreditsText(const u8 *string, u8 y, u8 isTitle) { u8 x; u8 color[3]; color[0] = 0; - if (a2 == 1) + if (isTitle == 1) { color[1] = 3; color[2] = 4; @@ -1199,20 +1199,20 @@ static void sub_81755BC(const u8 *string, u8 y, u8 a2) AddTextPrinterParameterized4(0, 1, x, y, 1, 0, color, -1, string); } -void sub_8175620(void) +void CB2_StartCreditsSequence(void) { u8 taskIdA; s16 taskIdC; u8 taskIdB; - sub_8175CE4(); + ResetGpuAndVram(); SetVBlankCallback(NULL); InitHeap(gHeap, HEAP_SIZE); ResetPaletteFade(); ResetTasks(); sub_8175548(); - taskIdA = CreateTask(sub_8175744, 0); + taskIdA = CreateTask(Task_WaitPaletteFade, 0); gTasks[taskIdA].data[TDA_4] = 0; gTasks[taskIdA].data[TDA_7] = 0; @@ -1237,9 +1237,9 @@ void sub_8175620(void) BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); EnableInterrupts(INTR_FLAG_VBLANK); - SetVBlankCallback(sub_81754C8); + SetVBlankCallback(CreditsVBlankCallback); m4aSongNumStart(MUS_THANKFOR); - SetMainCallback2(sub_81754DC); + SetMainCallback2(CB2_RunCreditsSequence); gUnknown_0203BCE5 = 0; gUnknown_0203BCE8 = AllocZeroed(sizeof(struct Unk201C000)); @@ -1252,13 +1252,13 @@ void sub_8175620(void) gUnknown_0203BCE2 = taskIdA; } -static void sub_8175744(u8 taskIdA) +static void Task_WaitPaletteFade(u8 taskIdA) { if (!gPaletteFade.active) - gTasks[taskIdA].func = sub_8175774; + gTasks[taskIdA].func = Task_ProgressCreditTasks; } -static void sub_8175774(u8 taskIdA) +static void Task_ProgressCreditTasks(u8 taskIdA) { u16 data1; @@ -1270,7 +1270,7 @@ static void sub_8175774(u8 taskIdA) gTasks[taskIdC].data[TDC_0] = 30; gTasks[taskIdA].data[TDA_12] = 0x100; - gTasks[taskIdA].func = sub_8175A9C; + gTasks[taskIdA].func = Task_CreditsTheEnd1; return; } @@ -1298,7 +1298,7 @@ static void sub_8175808(u8 taskIdA) if (!gPaletteFade.active) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - sub_8176CA0(taskIdA); + ResetCreditsTasks(taskIdA); gTasks[taskIdA].func = c2_080C9BFC; } } @@ -1313,8 +1313,8 @@ static void c2_080C9BFC(u8 taskIdA) { BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, RGB_BLACK); EnableInterrupts(INTR_FLAG_VBLANK); - SetVBlankCallback(sub_81754C8); - gTasks[taskIdA].func = sub_8175744; + SetVBlankCallback(CreditsVBlankCallback); + gTasks[taskIdA].func = Task_WaitPaletteFade; } } @@ -1323,12 +1323,12 @@ static void sub_81758A4(u8 taskIdA) if (!gPaletteFade.active) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - sub_8176CA0(taskIdA); - gTasks[taskIdA].func = sub_81758E4; + ResetCreditsTasks(taskIdA); + gTasks[taskIdA].func = Task_CreditsLoadGrassScene; } } -static void sub_81758E4(u8 taskIdA) +static void Task_CreditsLoadGrassScene(u8 taskIdA) { switch (gMain.state) { @@ -1387,12 +1387,12 @@ static void sub_81758E4(u8 taskIdA) gMain.state = 0; gUnknown_0203BD28 = 0; - gTasks[taskIdA].func = sub_8175744; + gTasks[taskIdA].func = Task_WaitPaletteFade; break; } } -static void sub_8175A9C(u8 taskIdA) +static void Task_CreditsTheEnd1(u8 taskIdA) { if (gTasks[taskIdA].data[TDA_12]) { @@ -1401,23 +1401,23 @@ static void sub_8175A9C(u8 taskIdA) } BeginNormalPaletteFade(0xFFFFFFFF, 12, 0, 16, RGB_BLACK); - gTasks[taskIdA].func = sub_8175AE4; + gTasks[taskIdA].func = Task_CreditsTheEnd2; } -static void sub_8175AE4(u8 taskIdA) +static void Task_CreditsTheEnd2(u8 taskIdA) { if (!gPaletteFade.active) { - sub_8176CA0(taskIdA); - gTasks[taskIdA].func = sub_8175B1C; + ResetCreditsTasks(taskIdA); + gTasks[taskIdA].func = Task_CreditsTheEnd3; } } -static void sub_8175B1C(u8 taskIdA) +static void Task_CreditsTheEnd3(u8 taskIdA) { - sub_8175CE4(); + ResetGpuAndVram(); ResetPaletteFade(); - sub_8176D1C(0, 0x3800, 0); + LoadTheEndScreen(0, 0x3800, 0); ResetSpriteData(); FreeAllSpritePalettes(); BeginNormalPaletteFade(0xFFFFFFFF, 8, 16, 0, RGB_BLACK); @@ -1432,11 +1432,11 @@ static void sub_8175B1C(u8 taskIdA) | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON); - gTasks[taskIdA].data[TDA_0] = 0xEB; - gTasks[taskIdA].func = sub_8175B90; + gTasks[taskIdA].data[TDA_0] = 235; //set this to 215 to actually show "THE END" in time to the last song beat + gTasks[taskIdA].func = Task_CreditsTheEnd4; } -static void sub_8175B90(u8 taskIdA) +static void Task_CreditsTheEnd4(u8 taskIdA) { if (gTasks[taskIdA].data[TDA_0]) { @@ -1445,10 +1445,10 @@ static void sub_8175B90(u8 taskIdA) } BeginNormalPaletteFade(0xFFFFFFFF, 6, 0, 16, RGB_BLACK); - gTasks[taskIdA].func = sub_8175BD8; + gTasks[taskIdA].func = Task_CreditsTheEnd5; } -static void sub_8175BD8(u8 taskIdA) +static void Task_CreditsTheEnd5(u8 taskIdA) { if (!gPaletteFade.active) { @@ -1456,11 +1456,11 @@ static void sub_8175BD8(u8 taskIdA) BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0, RGB_BLACK); gTasks[taskIdA].data[TDA_0] = 7200; - gTasks[taskIdA].func = sub_8175C34; + gTasks[taskIdA].func = Task_CreditsTheEnd6; } } -static void sub_8175C34(u8 taskIdA) +static void Task_CreditsTheEnd6(u8 taskIdA) { if (!gPaletteFade.active) { @@ -1468,7 +1468,7 @@ static void sub_8175C34(u8 taskIdA) { FadeOutBGM(4); BeginNormalPaletteFade(0xFFFFFFFF, 8, 0, 16, RGB_WHITEALPHA); - gTasks[taskIdA].func = sub_8175CC8; + gTasks[taskIdA].func = Task_CreditsSoftReset; return; } @@ -1482,13 +1482,13 @@ static void sub_8175C34(u8 taskIdA) } } -static void sub_8175CC8(u8 taskIdA) +static void Task_CreditsSoftReset(u8 taskIdA) { if (!gPaletteFade.active) SoftReset(0xFF); } -static void sub_8175CE4(void) +static void ResetGpuAndVram(void) { SetGpuReg(REG_OFFSET_DISPCNT, 0); @@ -1539,12 +1539,15 @@ static void sub_8175DA0(u8 taskIdB) gTasks[taskIdB].data[TDB_0] += 1; return; case 2: - if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == sub_8175774) + if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == Task_ProgressCreditTasks) { if (gTasks[taskIdB].data[TDB_CURRENT_PAGE] < PAGE_COUNT) { for (i = 0; i < 5; i++) - sub_81755BC(gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, 5 + i * 16, gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->var_1); + PrintCreditsText( + gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, + 5 + i * 16, + gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->isTitle); CopyWindowToVram(0, 2); @@ -1578,7 +1581,7 @@ static void sub_8175DA0(u8 taskIdB) return; } - if (sub_817603C((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID])) + if (CheckChangeScene((u8)gTasks[taskIdB].data[TDB_CURRENT_PAGE], (u8)gTasks[taskIdB].data[TDB_TASK_A_ID])) { gTasks[taskIdB].data[TDB_0] += 1; return; @@ -1606,7 +1609,7 @@ static void sub_8175DA0(u8 taskIdB) } } -static u8 sub_817603C(u8 page, u8 taskIdA) +static u8 CheckChangeScene(u8 page, u8 taskIdA) { // Starts with bike + ocean + morning @@ -1685,7 +1688,7 @@ static void sub_81760FC(u8 taskIdD) gTasks[taskIdD].data[TDD_STATE]++; break; case 2: - if (gUnknown_0203BCE8->unk8E == 71 || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != sub_8175774) + if (gUnknown_0203BCE8->unk8E == 71 || gTasks[gTasks[taskIdD].data[TDD_TASK_A_ID]].func != Task_ProgressCreditTasks) break; r2 = sub_8177224(gUnknown_0203BCE8->unk0[gUnknown_0203BCE8->unk92], gUnknown_085E6F7C[gUnknown_0203BCE8->unk90][0], gUnknown_085E6F7C[gUnknown_0203BCE8->unk90][1], gUnknown_0203BCE8->unk90); if (gUnknown_0203BCE8->unk92 < gUnknown_0203BCE8->unk94 - 1) @@ -2006,7 +2009,7 @@ static bool8 sub_8176AB0(u8 data, u8 taskIdA) return FALSE; } -static void sub_8176CA0(u8 taskIdA) +static void ResetCreditsTasks(u8 taskIdA) { if (gTasks[taskIdA].data[TDA_0] != 0) { @@ -2035,7 +2038,7 @@ static void sub_8176CA0(u8 taskIdA) gUnknown_0203BD28 = 1; } -static void sub_8176D1C(u16 arg0, u16 arg1, u16 arg2) +static void LoadTheEndScreen(u16 arg0, u16 arg1, u16 arg2) { u16 baseTile; u16 i; @@ -2084,12 +2087,12 @@ static void sub_8176E40(u16 arg0, u16 palette) for (pos = 0; pos < 32 * 32; pos++) ((u16 *) (VRAM + arg0))[pos] = baseTile + 1; - sub_8176DBC(gUnknown_085E5BAC, 3, 7, arg0, palette); - sub_8176DBC(gUnknown_085E5BBB, 7, 7, arg0, palette); - sub_8176DBC(gUnknown_085E5BCA, 11, 7, arg0, palette); - sub_8176DBC(gUnknown_085E5BCA, 16, 7, arg0, palette); - sub_8176DBC(gUnknown_085E5BD9, 20, 7, arg0, palette); - sub_8176DBC(gUnknown_085E5BE8, 24, 7, arg0, palette); + sub_8176DBC(sTheEnd_LetterTMap, 3, 7, arg0, palette); + sub_8176DBC(sTheEnd_LetterHMap, 7, 7, arg0, palette); + sub_8176DBC(sTheEnd_LetterEMap, 11, 7, arg0, palette); + sub_8176DBC(sTheEnd_LetterEMap, 16, 7, arg0, palette); + sub_8176DBC(sTheEnd_LetterNMap, 20, 7, arg0, palette); + sub_8176DBC(sTheEnd_LetterDMap, 24, 7, arg0, palette); } static void sub_8176EE8(struct Sprite *sprite) diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index fdf2020ff3..ac37b2ece0 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -755,7 +755,7 @@ static void Task_Hof_HandleExit(u8 taskId) static void SetCallback2AfterHallOfFameDisplay(void) { - SetMainCallback2(sub_8175620); + SetMainCallback2(CB2_StartCreditsSequence); } #undef tDontSaveData From 1069adae46a4e8eb6fdc953c60d0381c394a8e55 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 12:08:08 -0400 Subject: [PATCH 09/29] Renaming unknown link room ids to be the same as name This descrepency was causing a lot of annoyance when using porymap, because porymap generated the ids in map_groups.h from the name, and mapjson was generating map_groups.h from the id in the json files. So just name them the same already like every other map in the repo. --- .../UnknownLinkContestRoom_25_29/map.json | 2 +- .../UnknownLinkContestRoom_25_30/map.json | 2 +- .../UnknownLinkContestRoom_25_31/map.json | 2 +- .../UnknownLinkContestRoom_25_32/map.json | 2 +- .../UnknownLinkContestRoom_25_33/map.json | 2 +- .../UnknownLinkContestRoom_25_34/map.json | 2 +- include/constants/map_groups.h | 122 +++++++++--------- 7 files changed, 67 insertions(+), 67 deletions(-) diff --git a/data/maps/UnknownLinkContestRoom_25_29/map.json b/data/maps/UnknownLinkContestRoom_25_29/map.json index 956a681580..3e4387b6a2 100644 --- a/data/maps/UnknownLinkContestRoom_25_29/map.json +++ b/data/maps/UnknownLinkContestRoom_25_29/map.json @@ -1,5 +1,5 @@ { - "id": "MAP_UNKNOWN_MAP_25_29", + "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29", "name": "UnknownLinkContestRoom_25_29", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29", "music": "MUS_NIBI", diff --git a/data/maps/UnknownLinkContestRoom_25_30/map.json b/data/maps/UnknownLinkContestRoom_25_30/map.json index 526c6de2aa..42a719c177 100644 --- a/data/maps/UnknownLinkContestRoom_25_30/map.json +++ b/data/maps/UnknownLinkContestRoom_25_30/map.json @@ -1,5 +1,5 @@ { - "id": "MAP_UNKNOWN_MAP_25_30", + "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30", "name": "UnknownLinkContestRoom_25_30", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_30", "music": "MUS_NIBI", diff --git a/data/maps/UnknownLinkContestRoom_25_31/map.json b/data/maps/UnknownLinkContestRoom_25_31/map.json index 9548c11259..ad18b00aff 100644 --- a/data/maps/UnknownLinkContestRoom_25_31/map.json +++ b/data/maps/UnknownLinkContestRoom_25_31/map.json @@ -1,5 +1,5 @@ { - "id": "MAP_UNKNOWN_MAP_25_31", + "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31", "name": "UnknownLinkContestRoom_25_31", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_31", "music": "MUS_NIBI", diff --git a/data/maps/UnknownLinkContestRoom_25_32/map.json b/data/maps/UnknownLinkContestRoom_25_32/map.json index 27411d28e2..0e1528e598 100644 --- a/data/maps/UnknownLinkContestRoom_25_32/map.json +++ b/data/maps/UnknownLinkContestRoom_25_32/map.json @@ -1,5 +1,5 @@ { - "id": "MAP_UNKNOWN_MAP_25_32", + "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32", "name": "UnknownLinkContestRoom_25_32", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_32", "music": "MUS_NIBI", diff --git a/data/maps/UnknownLinkContestRoom_25_33/map.json b/data/maps/UnknownLinkContestRoom_25_33/map.json index 1a15ae6d6a..8765e97716 100644 --- a/data/maps/UnknownLinkContestRoom_25_33/map.json +++ b/data/maps/UnknownLinkContestRoom_25_33/map.json @@ -1,5 +1,5 @@ { - "id": "MAP_UNKNOWN_MAP_25_33", + "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33", "name": "UnknownLinkContestRoom_25_33", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_33", "music": "MUS_NIBI", diff --git a/data/maps/UnknownLinkContestRoom_25_34/map.json b/data/maps/UnknownLinkContestRoom_25_34/map.json index 4c90858b94..c7220897b8 100644 --- a/data/maps/UnknownLinkContestRoom_25_34/map.json +++ b/data/maps/UnknownLinkContestRoom_25_34/map.json @@ -1,5 +1,5 @@ { - "id": "MAP_UNKNOWN_MAP_25_34", + "id": "MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34", "name": "UnknownLinkContestRoom_25_34", "layout": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_34", "music": "MUS_NIBI", diff --git a/include/constants/map_groups.h b/include/constants/map_groups.h index dc2ac2f32e..6a3276b443 100755 --- a/include/constants/map_groups.h +++ b/include/constants/map_groups.h @@ -398,67 +398,67 @@ #define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) // Map Group 25 -#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) -#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) -#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) -#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) -#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) -#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) -#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) -#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) -#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) -#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) -#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) -#define MAP_TRADE_CENTER (25 | (25 << 8)) -#define MAP_RECORD_CORNER (26 | (25 << 8)) -#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8)) -#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) -#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8)) -#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) -#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) -#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) -#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) -#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) -#define MAP_UNION_ROOM (60 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) +#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) +#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) +#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) +#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) +#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) +#define MAP_TRADE_CENTER (25 | (25 << 8)) +#define MAP_RECORD_CORNER (26 | (25 << 8)) +#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) +#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_29 (29 | (25 << 8)) +#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_30 (30 | (25 << 8)) +#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_31 (31 | (25 << 8)) +#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_32 (32 | (25 << 8)) +#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_33 (33 | (25 << 8)) +#define MAP_UNKNOWN_LINK_CONTEST_ROOM_25_34 (34 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8)) +#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) +#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) +#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) +#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE01 (44 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE02 (45 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE03 (46 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE04 (47 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE05 (48 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE06 (49 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE07 (50 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE08 (51 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE09 (52 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE10 (53 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE11 (54 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE12 (55 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE13 (56 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE14 (57 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE15 (58 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE16 (59 | (25 << 8)) +#define MAP_UNION_ROOM (60 | (25 << 8)) // Map Group 26 #define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) From a708caac6d55aee1f0a6537707db3514d54b499e Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 13:32:26 -0400 Subject: [PATCH 10/29] Suggested changes from review --- src/credits.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/credits.c b/src/credits.c index 99c89dc8fc..44fa2002c7 100644 --- a/src/credits.c +++ b/src/credits.c @@ -143,7 +143,7 @@ struct Unk201C000 struct CreditsEntry { u8 var_0; - u8 isTitle; + bool8 isTitle; const u8 *text; }; @@ -1177,14 +1177,14 @@ static void sub_81755A4(void) Free(ptr); } -static void PrintCreditsText(const u8 *string, u8 y, u8 isTitle) +static void PrintCreditsText(const u8 *string, u8 y, bool8 isTitle) { u8 x; u8 color[3]; color[0] = 0; - if (isTitle == 1) + if (isTitle == TRUE) { color[1] = 3; color[2] = 4; From d63a8ba817e4d3373e06d4ae5cbe5987e9a68cc6 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 13:38:13 -0400 Subject: [PATCH 11/29] Replaced createvobject numbers with EVENT_OBJ_GTX defines Doing this allows someone to renumber the event object graphics and still have working contests. --- data/maps/LinkContestRoom1/scripts.inc | 64 +++++++++++++------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/data/maps/LinkContestRoom1/scripts.inc b/data/maps/LinkContestRoom1/scripts.inc index e0cd24efff..e58c08c50d 100644 --- a/data/maps/LinkContestRoom1/scripts.inc +++ b/data/maps/LinkContestRoom1/scripts.inc @@ -172,131 +172,131 @@ LinkContestRoom1_EventScript_23B8F8:: @ 823B8F8 end LinkContestRoom1_EventScript_23BA6B:: @ 823BA6B - setvar VAR_TEMP_1, 5 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_NINJA_BOY return LinkContestRoom1_EventScript_23BA71:: @ 823BA71 - setvar VAR_TEMP_1, 6 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_TWIN return LinkContestRoom1_EventScript_23BA77:: @ 823BA77 - setvar VAR_TEMP_1, 7 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_BOY_1 return LinkContestRoom1_EventScript_23BA7D:: @ 823BA7D - setvar VAR_TEMP_1, 8 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_GIRL_1 return LinkContestRoom1_EventScript_23BA83:: @ 823BA83 - setvar VAR_TEMP_1, 10 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_GIRL_2 return LinkContestRoom1_EventScript_23BA89:: @ 823BA89 - setvar VAR_TEMP_1, 11 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_LITTLE_BOY return LinkContestRoom1_EventScript_23BA8F:: @ 823BA8F - setvar VAR_TEMP_1, 12 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_LITTLE_GIRL return LinkContestRoom1_EventScript_23BA95:: @ 823BA95 - setvar VAR_TEMP_1, 13 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_BOY_3 return LinkContestRoom1_EventScript_23BA9B:: @ 823BA9B - setvar VAR_TEMP_1, 14 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_GIRL_3 return LinkContestRoom1_EventScript_23BAA1:: @ 823BAA1 - setvar VAR_TEMP_1, 15 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_RICH_BOY return LinkContestRoom1_EventScript_23BAA7:: @ 823BAA7 - setvar VAR_TEMP_1, 17 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_FAT_MAN return LinkContestRoom1_EventScript_23BAAD:: @ 823BAAD - setvar VAR_TEMP_1, 18 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_POKEFAN_F return LinkContestRoom1_EventScript_23BAB3:: @ 823BAB3 - setvar VAR_TEMP_1, 19 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_MAN_1 return LinkContestRoom1_EventScript_23BAB9:: @ 823BAB9 - setvar VAR_TEMP_1, 20 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_WOMAN_2 return LinkContestRoom1_EventScript_23BABF:: @ 823BABF - setvar VAR_TEMP_1, 21 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_EXPERT_M return LinkContestRoom1_EventScript_23BAC5:: @ 823BAC5 - setvar VAR_TEMP_1, 22 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_EXPERT_F return LinkContestRoom1_EventScript_23BACB:: @ 823BACB - setvar VAR_TEMP_1, 25 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_POKEFAN_M return LinkContestRoom1_EventScript_23BAD1:: @ 823BAD1 - setvar VAR_TEMP_1, 26 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_WOMAN_4 return LinkContestRoom1_EventScript_23BAD7:: @ 823BAD7 - setvar VAR_TEMP_1, 27 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_COOK return LinkContestRoom1_EventScript_23BADD:: @ 823BADD - setvar VAR_TEMP_1, 47 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_LASS return LinkContestRoom1_EventScript_23BAE3:: @ 823BAE3 - setvar VAR_TEMP_1, 30 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_OLD_WOMAN return LinkContestRoom1_EventScript_23BAE9:: @ 823BAE9 - setvar VAR_TEMP_1, 31 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_CAMPER return LinkContestRoom1_EventScript_23BAEF:: @ 823BAEF - setvar VAR_TEMP_1, 32 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_PICNICKER return LinkContestRoom1_EventScript_23BAF5:: @ 823BAF5 - setvar VAR_TEMP_1, 33 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_MAN_3 return LinkContestRoom1_EventScript_23BAFB:: @ 823BAFB - setvar VAR_TEMP_1, 34 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_WOMAN_5 return LinkContestRoom1_EventScript_23BB01:: @ 823BB01 - setvar VAR_TEMP_1, 35 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_YOUNGSTER return LinkContestRoom1_EventScript_23BB07:: @ 823BB07 - setvar VAR_TEMP_1, 36 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_BUG_CATCHER return LinkContestRoom1_EventScript_23BB0D:: @ 823BB0D - setvar VAR_TEMP_1, 37 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_PSYCHIC_M return LinkContestRoom1_EventScript_23BB13:: @ 823BB13 - setvar VAR_TEMP_1, 38 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_SCHOOL_KID_M return LinkContestRoom1_EventScript_23BB19:: @ 823BB19 - setvar VAR_TEMP_1, 44 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_BLACK_BELT return LinkContestRoom1_EventScript_23BB1F:: @ 823BB1F - setvar VAR_TEMP_1, 45 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_BEAUTY return LinkContestRoom1_EventScript_23BB25:: @ 823BB25 - setvar VAR_TEMP_1, 46 + setvar VAR_TEMP_1, EVENT_OBJ_GFX_SCIENTIST_1 return LinkContestRoom1_EventScript_23BB2B:: @ 823BB2B From 18dee141704daa10313f27890d0f97a2a083a496 Mon Sep 17 00:00:00 2001 From: Tustin2121 Date: Sat, 17 Aug 2019 23:26:46 -0400 Subject: [PATCH 12/29] Review fixes --- asm/macros/event.inc | 2 -- .../scripts.inc | 4 +++- data/maps/MauvilleCity_GameCorner/scripts.inc | 14 ++++++++++++-- data/maps/MtChimney/scripts.inc | 10 +++++++++- data/maps/Route109_SeashoreHouse/scripts.inc | 10 +++++++++- data/maps/Route121_SafariZoneEntrance/scripts.inc | 6 +++++- .../SlateportCity_OceanicMuseum_1F/scripts.inc | 10 +++++++++- 7 files changed, 47 insertions(+), 9 deletions(-) diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 14051999f2..bf1b8ce769 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -1083,8 +1083,6 @@ @ Hides the secondary box spawned by showmoney. .macro hidemoneybox .byte 0x94 - .byte 0 @ leftovers from ruby/sapphire. x, y params not used - .byte 0 .endm @ Updates the secondary box spawned by showmoney. Consumes but does not use arguments. diff --git a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc index 4bd4dc01c4..b8d0a7c449 100644 --- a/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc +++ b/data/maps/LilycoveCity_DepartmentStoreRooftop/scripts.inc @@ -143,7 +143,7 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_22032F:: @ 822032F call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220321 compare VAR_TEMP_1, 2 call_if_eq LilycoveCity_DepartmentStoreRooftop_EventScript_220328 - updatemoneybox 0,0 + updatemoneybox 0, 0 bufferitemname 0, VAR_TEMP_0 playse SE_JIHANKI msgbox LilycoveCity_DepartmentStoreRooftop_Text_2205A1, MSGBOX_DEFAULT @@ -196,6 +196,8 @@ LilycoveCity_DepartmentStoreRooftop_EventScript_220450:: @ 8220450 LilycoveCity_DepartmentStoreRooftop_EventScript_22045E:: @ 822045E hidemoneybox + nop + nop releaseall end diff --git a/data/maps/MauvilleCity_GameCorner/scripts.inc b/data/maps/MauvilleCity_GameCorner/scripts.inc index 2574793720..0df7afe546 100644 --- a/data/maps/MauvilleCity_GameCorner/scripts.inc +++ b/data/maps/MauvilleCity_GameCorner/scripts.inc @@ -39,11 +39,13 @@ MauvilleCity_GameCorner_EventScript_20FC33:: @ 820FC33 goto_if_eq MauvilleCity_GameCorner_EventScript_20FCC1 givecoins 50 takemoney 0x3e8, 0 - updatemoneybox 0,0 + updatemoneybox 0, 0 updatecoinsbox 1, 6 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_210529, MSGBOX_DEFAULT hidemoneybox + nop + nop hidecoinsbox 0, 5 release end @@ -57,11 +59,13 @@ MauvilleCity_GameCorner_EventScript_20FC75:: @ 820FC75 goto_if_eq MauvilleCity_GameCorner_EventScript_20FCC1 givecoins 500 takemoney 0x2710, 0 - updatemoneybox 0,0 + updatemoneybox 0, 0 updatecoinsbox 1, 6 playse SE_REGI msgbox MauvilleCity_GameCorner_Text_210529, MSGBOX_DEFAULT hidemoneybox + nop + nop hidecoinsbox 0, 5 release end @@ -74,6 +78,8 @@ MauvilleCity_GameCorner_EventScript_20FCB7:: @ 820FCB7 MauvilleCity_GameCorner_EventScript_20FCC1:: @ 820FCC1 msgbox MauvilleCity_GameCorner_Text_210553, MSGBOX_DEFAULT hidemoneybox + nop + nop hidecoinsbox 0, 5 release end @@ -81,6 +87,8 @@ MauvilleCity_GameCorner_EventScript_20FCC1:: @ 820FCC1 MauvilleCity_GameCorner_EventScript_20FCD1:: @ 820FCD1 msgbox MauvilleCity_GameCorner_Text_21059A, MSGBOX_DEFAULT hidemoneybox + nop + nop hidecoinsbox 0, 5 release end @@ -88,6 +96,8 @@ MauvilleCity_GameCorner_EventScript_20FCD1:: @ 820FCD1 MauvilleCity_GameCorner_EventScript_20FCE1:: @ 820FCE1 msgbox MauvilleCity_GameCorner_Text_21057E, MSGBOX_DEFAULT hidemoneybox + nop + nop hidecoinsbox 0, 5 release end diff --git a/data/maps/MtChimney/scripts.inc b/data/maps/MtChimney/scripts.inc index e89a8b4373..717973eba1 100644 --- a/data/maps/MtChimney/scripts.inc +++ b/data/maps/MtChimney/scripts.inc @@ -115,29 +115,37 @@ MtChimney_EventScript_22EEF3:: @ 822EEF3 compare VAR_RESULT, 0 goto_if_eq MtChimney_EventScript_22EF51 hidemoneybox + nop + nop release end MtChimney_EventScript_22EF51:: @ 822EF51 msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT hidemoneybox + nop + nop release end MtChimney_EventScript_22EF5E:: @ 822EF5E takemoney 0xc8, 0 - updatemoneybox 0,0 + updatemoneybox 0, 0 return MtChimney_EventScript_22EF69:: @ 822EF69 msgbox MtChimney_Text_22FE9B, MSGBOX_DEFAULT hidemoneybox + nop + nop release end MtChimney_EventScript_22EF76:: @ 822EF76 msgbox MtChimney_Text_22FE5E, MSGBOX_DEFAULT hidemoneybox + nop + nop release end diff --git a/data/maps/Route109_SeashoreHouse/scripts.inc b/data/maps/Route109_SeashoreHouse/scripts.inc index 594b17f849..79d021334f 100644 --- a/data/maps/Route109_SeashoreHouse/scripts.inc +++ b/data/maps/Route109_SeashoreHouse/scripts.inc @@ -43,6 +43,8 @@ Route109_SeashoreHouse_EventScript_269460:: @ 8269460 goto_if_eq Route109_SeashoreHouse_EventScript_269484 msgbox Route109_SeashoreHouse_Text_2697EF, MSGBOX_DEFAULT hidemoneybox + nop + nop release end @@ -55,21 +57,27 @@ Route109_SeashoreHouse_EventScript_269484:: @ 8269484 goto_if_eq Route109_SeashoreHouse_EventScript_2694D5 msgbox Route109_SeashoreHouse_Text_2697C8, MSGBOX_DEFAULT takemoney 0x12c, 0 - updatemoneybox 0,0 + updatemoneybox 0, 0 giveitem_std ITEM_SODA_POP hidemoneybox + nop + nop release end Route109_SeashoreHouse_EventScript_2694C8:: @ 82694C8 msgbox Route109_SeashoreHouse_Text_2697D5, MSGBOX_DEFAULT hidemoneybox + nop + nop release end Route109_SeashoreHouse_EventScript_2694D5:: @ 82694D5 msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT hidemoneybox + nop + nop release end diff --git a/data/maps/Route121_SafariZoneEntrance/scripts.inc b/data/maps/Route121_SafariZoneEntrance/scripts.inc index 001f80b153..85b6c6c367 100644 --- a/data/maps/Route121_SafariZoneEntrance/scripts.inc +++ b/data/maps/Route121_SafariZoneEntrance/scripts.inc @@ -67,7 +67,7 @@ Route121_SafariZoneEntrance_EventScript_22BC48:: @ 822BC48 playse SE_REGI msgbox Route121_SafariZoneEntrance_Text_2A501B, MSGBOX_DEFAULT takemoney 0x1f4, 0 - updatemoneybox 0,0 + updatemoneybox 0, 0 msgbox Route121_SafariZoneEntrance_Text_2A5036, MSGBOX_DEFAULT playfanfare MUS_FANFA4 message Route121_SafariZoneEntrance_Text_2A5052 @@ -75,6 +75,8 @@ Route121_SafariZoneEntrance_EventScript_22BC48:: @ 822BC48 msgbox Route121_SafariZoneEntrance_Text_2A506F, MSGBOX_DEFAULT closemessage hidemoneybox + nop + nop applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_22BD18 waitmovement 0 special EnterSafariMode @@ -111,6 +113,8 @@ Route121_SafariZoneEntrance_EventScript_22BCF8:: @ 822BCF8 Route121_SafariZoneEntrance_EventScript_22BD06:: @ 822BD06 closemessage hidemoneybox + nop + nop applymovement EVENT_OBJ_ID_PLAYER, Route121_SafariZoneEntrance_Movement_22BD16 waitmovement 0 releaseall diff --git a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc index 6dc4f22429..90d42ccae4 100644 --- a/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc +++ b/data/maps/SlateportCity_OceanicMuseum_1F/scripts.inc @@ -26,6 +26,8 @@ SlateportCity_OceanicMuseum_1F_EventScript_20ADC1:: @ 820ADC1 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_20ADE8 closemessage hidemoneybox + nop + nop applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AE4B waitmovement 0 releaseall @@ -37,10 +39,12 @@ SlateportCity_OceanicMuseum_1F_EventScript_20ADE8:: @ 820ADE8 goto_if_eq SlateportCity_OceanicMuseum_1F_EventScript_20AE18 playse SE_REGI takemoney 0x32, 0 - updatemoneybox 0,0 + updatemoneybox 0, 0 msgbox SlateportCity_OceanicMuseum_1F_Text_20B026, MSGBOX_DEFAULT setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 1 hidemoneybox + nop + nop releaseall end @@ -49,6 +53,8 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AE18:: @ 820AE18 msgbox SlateportCity_OceanicMuseum_1F_Text_20B03D, MSGBOX_DEFAULT closemessage hidemoneybox + nop + nop applymovement EVENT_OBJ_ID_PLAYER, SlateportCity_OceanicMuseum_1F_Movement_20AE4B waitmovement 0 releaseall @@ -58,6 +64,8 @@ SlateportCity_OceanicMuseum_1F_EventScript_20AE39:: @ 820AE39 msgbox SlateportCity_OceanicMuseum_1F_Text_20B075, MSGBOX_DEFAULT setvar VAR_SLATEPORT_MUSEUM_1F_STATE, 1 hidemoneybox + nop + nop releaseall end From 82744ba63687bc23447ad414a27224c95d2acc43 Mon Sep 17 00:00:00 2001 From: tustin2121 Date: Wed, 21 Aug 2019 14:05:22 -0400 Subject: [PATCH 13/29] Replace {STRING 5} with {KUN} Since we already have the KUN placeholder, there's no need for this {STRING 5} stuff. Also, it makes it easier to delete all the {KUN}s in hacks later on if desired. --- data/event_scripts.s | 2 +- data/scripts/apprentice.inc | 152 ++++++++-------- data/text/match_call.inc | 338 ++++++++++++++++++------------------ 3 files changed, 246 insertions(+), 246 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 191fe5d606..ca8152e757 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -2556,7 +2556,7 @@ gUnknown_08272A3F:: @ 8272A3F .string "Please come again!$" gUnknown_08272A52:: @ 8272A52 - .string "{PLAYER}{STRING 5}, welcome!\pWhat can I do for you?$" + .string "{PLAYER}{KUN}, welcome!\pWhat can I do for you?$" gUnknown_08272A78:: @ 8272A78 .string "Obtained the {STR_VAR_2}!$" diff --git a/data/scripts/apprentice.inc b/data/scripts/apprentice.inc index d6713cde4f..b75a3c5792 100644 --- a/data/scripts/apprentice.inc +++ b/data/scripts/apprentice.inc @@ -553,7 +553,7 @@ gText_082B7D18:: @ 82B7D18 .string "time with someone like me.$" gText_082B7DD4:: @ 82B7DD4 - .string "Oh! You're {PLAYER}{STRING 5}, aren't you?\p" + .string "Oh! You're {PLAYER}{KUN}, aren't you?\p" .string "I've heard that you're tough at\n" .string "POKéMON!\p" .string "I'm {STR_VAR_1}!\n" @@ -576,19 +576,19 @@ gText_082B7F35:: @ 82B7F35 .string "You know that the BATTLE TOWER has\n" .string "Level 50 and Open Level Rooms?\p" .string "Which do you think would be good\n" - .string "for me, {PLAYER}{STRING 5}?$" + .string "for me, {PLAYER}{KUN}?$" gText_082B7FE8:: @ 82B7FE8 .string "Okay, {STR_VAR_1} is suitable for me?\n" .string "Thank you!\p" .string "Knowing that you made the decision,\n" - .string "{PLAYER}{STRING 5}, I won't be so upset if\l" + .string "{PLAYER}{KUN}, I won't be so upset if\l" .string "I lose.\p" .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" gText_082B8087:: @ 82B8087 - .string "Oh, hi, there! {PLAYER}{STRING 5}!\n" + .string "Oh, hi, there! {PLAYER}{KUN}!\n" .string "I know you because you're famous!\l" .string "Call me {STR_VAR_1}! Glad to meet you!\p" .string "I'm a TRIATHLETE, so I keep myself\n" @@ -599,13 +599,13 @@ gText_082B8087:: @ 82B8087 .string "me to become a decent TRAINER.\p" .string "So, I have a proposition!\p" .string "There must be a reason why we met.\n" - .string "So, {PLAYER}{STRING 5}, how about sharing your\l" + .string "So, {PLAYER}{KUN}, how about sharing your\l" .string "wisdom with me every so often?$" gText_082B822B:: @ 82B822B .string "Oh, but, please?\n" .string "A guy like me needs someone like\l" - .string "you, {PLAYER}{STRING 5}!\p" + .string "you, {PLAYER}{KUN}!\p" .string "Honestly, I need your advice!$" gText_082B8286:: @ 82B8286 @@ -741,15 +741,15 @@ gText_082B8C20:: @ 82B8C20 gText_082B8CAA:: @ 82B8CAA .string "Whoa! Could you be…\n" - .string "Might you be… {PLAYER}{STRING 5}?!\l" + .string "Might you be… {PLAYER}{KUN}?!\l" .string "That strong and famous TRAINER?\l" .string "Well, hello, aren't I just the luckiest!\p" .string "Hello, the name's {STR_VAR_1}!\p" .string "I've been on the lookout for\n" .string "a POKéMON teacher.\p" .string "And with impeccably good timing,\n" - .string "along came you, {PLAYER}{STRING 5}!\p" - .string "So, there you have it, {PLAYER}{STRING 5}!\n" + .string "along came you, {PLAYER}{KUN}!\p" + .string "So, there you have it, {PLAYER}{KUN}!\n" .string "Let me apprentice under you!$" gText_082B8DD3:: @ 82B8DD3 @@ -774,7 +774,7 @@ gText_082B8ED5:: @ 82B8ED5 .string "Adios!$" gText_082B8F45:: @ 82B8F45 - .string "Oh, hey, {PLAYER}{STRING 5}, right?\n" + .string "Oh, hey, {PLAYER}{KUN}, right?\n" .string "The police were looking for you!\p" .string "… … …\n" .string "Of course I'm lying!\p" @@ -822,7 +822,7 @@ gText_082B929C:: @ 82B929C .string "Your turn now, tell me a little about\n" .string "yourself, give it a try!\p" .string "Uh-huh, uh-huh!\n" - .string "{PLAYER}{STRING 5}'s your name,\l" + .string "{PLAYER}{KUN}'s your name,\l" .string "and POKéMON's your game!\p" .string "And you're at a delicate age\n" .string "when all the world's your stage!\p" @@ -901,7 +901,7 @@ gText_082B992D:: @ 82B992D .string "not built to take the abuse…\p" .string "I decided I'll battle POKéMON and\n" .string "toughen myself up.\p" - .string "You're {PLAYER}{STRING 5}, aren't you?\n" + .string "You're {PLAYER}{KUN}, aren't you?\n" .string "The POKéMON LEAGUE CHAMP?\p" .string "Listen, can I get you to give me\n" .string "advice?$" @@ -927,7 +927,7 @@ gText_082B9B76:: @ 82B9B76 gText_082B9BF2:: @ 82B9BF2 .string "Er… Um…\n" - .string "{PLAYER}{STRING 5}…?\p" + .string "{PLAYER}{KUN}…?\p" .string "Please, don't look at me that way.\n" .string "You're making me all self-conscious.\p" .string "I… I'm {STR_VAR_1}.\p" @@ -935,7 +935,7 @@ gText_082B9BF2:: @ 82B9BF2 .string "but I explore ancient ruins and such.\p" .string "I'm even more embarrassed to admit\n" .string "I'm interested in the BATTLE FRONTIER.\p" - .string "{PLAYER}{STRING 5}, you have a reputation as\n" + .string "{PLAYER}{KUN}, you have a reputation as\n" .string "a tough TRAINER…\p" .string "It's hard for me to say this,\n" .string "but I want to ask something.\p" @@ -962,18 +962,18 @@ gText_082B9EAA:: @ 82B9EAA .string "I'll try my hand at that.\p" .string "I hope I can make a valiant challenge\n" .string "without getting all flustered…\p" - .string "Thank you, {PLAYER}{STRING 5}.\n" + .string "Thank you, {PLAYER}{KUN}.\n" .string "If we meet again, I hope you will be\l" .string "as helpful.$" gText_082B9F55:: @ 82B9F55 - .string "Hm? You appear to be {PLAYER}{STRING 5}…\n" + .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really real?\p" .string "You may call me {STR_VAR_1}.\p" .string "I have been toying with the idea of\n" .string "apprenticing under a strong TRAINER.\p" .string "So, I must say I'm lucky you came along!\n" - .string "…You really are {PLAYER}{STRING 5}, yes?\p" + .string "…You really are {PLAYER}{KUN}, yes?\p" .string "No, no, if you are real, it's fine.\n" .string "I merely want you to recognize me\l" .string "as your apprentice.$" @@ -1130,7 +1130,7 @@ gText_082BAA81:: @ 82BAA81 .string "my {STR_VAR_2} hold anything?$" gText_082BAB22:: @ 82BAB22 - .string "Oh, {PLAYER}{STRING 5}.\n" + .string "Oh, {PLAYER}{KUN}.\n" .string "There's something I wanted to ask you.\p" .string "You know how you decided which\n" .string "POKéMON I should have for me?\p" @@ -1148,7 +1148,7 @@ gText_082BAC43:: @ 82BAC43 gText_082BAC78:: @ 82BAC78 .string "If you think that's best, I'll do that.\p" .string "Knowing that you made the decision,\n" - .string "{PLAYER}{STRING 5}, I won't be so upset if\l" + .string "{PLAYER}{KUN}, I won't be so upset if\l" .string "I lose.\p" .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" @@ -1157,7 +1157,7 @@ gText_082BAD17:: @ 82BAD17 .string "The item {STR_VAR_1}, huh?\n" .string "Not bad. I'll use it!\p" .string "Knowing that you made the decision,\n" - .string "{PLAYER}{STRING 5}, I won't be so upset if\l" + .string "{PLAYER}{KUN}, I won't be so upset if\l" .string "I lose.\p" .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" @@ -1170,7 +1170,7 @@ gText_082BADB6:: @ 82BADB6 .string "do the best it can empty-handed?$" gText_082BAE36:: @ 82BAE36 - .string "Yo, {PLAYER}{STRING 5}!\p" + .string "Yo, {PLAYER}{KUN}!\p" .string "We're both busy, but we seem to run\n" .string "into each other often anyway!\p" .string "Today I have to do some walking,\n" @@ -1315,7 +1315,7 @@ gText_082BB84A:: @ 82BB84A gText_082BB8CD:: @ 82BB8CD .string "Hola!\n" - .string "My maestro, {PLAYER}{STRING 5}!\p" + .string "My maestro, {PLAYER}{KUN}!\p" .string "I want to hit you up for advice on\n" .string "POKéMON tools.\p" .string "What do you think would be good for\n" @@ -1348,7 +1348,7 @@ gText_082BBA6C:: @ 82BBA6C .string "can win without holding any item?$" gText_082BBB01:: @ 82BBB01 - .string "{PLAYER}{STRING 5}, something unbelievable\n" + .string "{PLAYER}{KUN}, something unbelievable\n" .string "has happened!\p" .string "I woke up this morning, and my POKéMON\n" .string "had 10 NUGGETS!\p" @@ -1465,14 +1465,14 @@ gText_082BC373:: @ 82BC373 .string "Doesn't need to hold anything?$" gText_082BC40E:: @ 82BC40E - .string "Gwah! Ouch! {PLAYER}{STRING 5}, my arm's broken!\n" + .string "Gwah! Ouch! {PLAYER}{KUN}, my arm's broken!\n" .string "Don't touch it, please!\p" .string "I must've broken it while I was trying\n" .string "out different hold items with my posse\l" .string "of POKéMON.\p" .string "So, things being this way,\n" .string "I need you to decide for me.\p" - .string "{PLAYER}{STRING 5}, what do you think would be\n" + .string "{PLAYER}{KUN}, what do you think would be\n" .string "good for my {STR_VAR_1} to hold?$" gText_082BC514:: @ 82BC514 @@ -1504,14 +1504,14 @@ gText_082BC666:: @ 82BC666 gText_082BC714:: @ 82BC714 .string "Er… Um…\n" - .string "{PLAYER}{STRING 5}…\p" + .string "{PLAYER}{KUN}…\p" .string "Please, don't look at me that way.\n" .string "My POKéMON don't have anything.\p" .string "I… I'm really embarrassed about this,\n" .string "but I really need your advice.\p" .string "I can't decide what hold item would\n" .string "make my {STR_VAR_1} strong.\p" - .string "{PLAYER}{STRING 5}, what do you think would\n" + .string "{PLAYER}{KUN}, what do you think would\n" .string "be good?$" gText_082BC808:: @ 82BC808 @@ -1523,7 +1523,7 @@ gText_082BC84D:: @ 82BC84D .string "I'll go without an item.\p" .string "This is nerve-racking, though.\n" .string "Wouldn't it be too cool?\p" - .string "Thank you, {PLAYER}{STRING 5}.\n" + .string "Thank you, {PLAYER}{KUN}.\n" .string "If we meet again, I hope you will be\l" .string "as helpful.$" @@ -1532,7 +1532,7 @@ gText_082BC8EA:: @ 82BC8EA .string "I'll go with that {STR_VAR_1}.\p" .string "This is nerve-racking, though.\n" .string "Wouldn't it be too cool?\p" - .string "Thank you, {PLAYER}{STRING 5}.\n" + .string "Thank you, {PLAYER}{KUN}.\n" .string "If we meet again, I hope you will be\l" .string "as helpful.$" @@ -1545,7 +1545,7 @@ gText_082BC984:: @ 82BC984 .string "my {STR_VAR_2} didn't have an item?$" gText_082BCA4D:: @ 82BCA4D - .string "Hm? You appear to be {PLAYER}{STRING 5}…\n" + .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really?\l" .string "Perhaps you're a twin?\p" .string "Oh, no, no, no, don't worry!\n" @@ -1647,7 +1647,7 @@ gText_082BD18A:: @ 82BD18A .string "speak with me… Thank you!$" gText_082BD222:: @ 82BD222 - .string "Oh, {PLAYER}{STRING 5}! It's me!\n" + .string "Oh, {PLAYER}{KUN}! It's me!\n" .string "I'm so glad to see you because I have\l" .string "this little problem.\p" .string "I can't decide how my POKéMON should\n" @@ -1660,13 +1660,13 @@ gText_082BD222:: @ 82BD222 gText_082BD325:: @ 82BD325 .string "My {STR_VAR_1}? That's great!\p" .string "Knowing that you made the decision,\n" - .string "{PLAYER}{STRING 5}, I won't be so upset if\l" + .string "{PLAYER}{KUN}, I won't be so upset if\l" .string "I lose.\p" .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" gText_082BD3B1:: @ 82BD3B1 - .string "Hi, my teacher {PLAYER}{STRING 5}!\n" + .string "Hi, my teacher {PLAYER}{KUN}!\n" .string "I'm busy again today!\p" .string "I have to do some cycling, shopping,\n" .string "and humming.\p" @@ -1740,13 +1740,13 @@ gText_082BD8F5:: @ 82BD8F5 gText_082BD9BE:: @ 82BD9BE .string "Hello, hello!\n" - .string "My mentor, {PLAYER}{STRING 5}!\l" + .string "My mentor, {PLAYER}{KUN}!\l" .string "Hit me with your sage advice today!\p" .string "You see, I pulled together a team of\n" .string "three POKéMON. So far so good.\p" .string "But the team's battling order's not\n" .string "settled yet.\p" - .string "This is where you come in, {PLAYER}{STRING 5}!\n" + .string "This is where you come in, {PLAYER}{KUN}!\n" .string "You decide which POKéMON leads off!\p" .string "Don't be shy now.\n" .string "Let's blurt it out!$" @@ -1759,7 +1759,7 @@ gText_082BDAE1:: @ 82BDAE1 .string "Adios!$" gText_082BDB4E:: @ 82BDB4E - .string "{PLAYER}{STRING 5}, listen!\n" + .string "{PLAYER}{KUN}, listen!\n" .string "It's a crisis!\p" .string "My POKéMON, all three of them, go into\n" .string "battle at once!\p" @@ -1815,7 +1815,7 @@ gText_082BDF4D:: @ 82BDF4D .string "See you again, my smart friend!$" gText_082BDFD8:: @ 82BDFD8 - .string "…Oof…ooch… {PLAYER}{STRING 5}…\n" + .string "…Oof…ooch… {PLAYER}{KUN}…\n" .string "My stomach's hurting all of a sudden…\p" .string "…It's getting better now…\p" .string "I must've worried myself sick racking\n" @@ -1823,7 +1823,7 @@ gText_082BDFD8:: @ 82BDFD8 .string "my posse of POKéMON.\p" .string "So, things being this way,\n" .string "I need you to decide for me.\p" - .string "{PLAYER}{STRING 5}, which of my POKéMON should\n" + .string "{PLAYER}{KUN}, which of my POKéMON should\n" .string "go first? So I'd win, I mean.$" gText_082BE0FD:: @ 82BE0FD @@ -1836,7 +1836,7 @@ gText_082BE0FD:: @ 82BE0FD gText_082BE189:: @ 82BE189 .string "Er… Um…\n" - .string "{PLAYER}{STRING 5}?\p" + .string "{PLAYER}{KUN}?\p" .string "Please, don't look at me that way.\n" .string "You're making me feel all flustered.\p" .string "Um…\n" @@ -1852,12 +1852,12 @@ gText_082BE2A5:: @ 82BE2A5 .string "I'll lead with my {STR_VAR_1}.\p" .string "I hope I can do my best without\n" .string "getting all flustered.\p" - .string "Thank you, {PLAYER}{STRING 5}.\n" + .string "Thank you, {PLAYER}{KUN}.\n" .string "If we meet again, I hope you will be\l" .string "as helpful.$" gText_082BE33E:: @ 82BE33E - .string "Hm? You appear to be {PLAYER}{STRING 5}…\n" + .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really?\l" .string "Perhaps you're a clever look-alike?\p" .string "Oh, no, no, no, don't worry!\n" @@ -1949,7 +1949,7 @@ gText_082BE99C:: @ 82BE99C .string "Thank you!$" gText_082BEA1B:: @ 82BEA1B - .string "Oh, {PLAYER}{STRING 5}! I'm so glad to see you!\n" + .string "Oh, {PLAYER}{KUN}! I'm so glad to see you!\n" .string "I was about to go looking for you!\p" .string "Can you decide what kind of POKéMON\n" .string "I should use?\p" @@ -1962,20 +1962,20 @@ gText_082BEA1B:: @ 82BEA1B gText_082BEAE9:: @ 82BEAE9 .string "{STR_VAR_1}? That's great!\p" .string "Knowing that you made the decision,\n" - .string "{PLAYER}{STRING 5}, I won't be so upset if\l" + .string "{PLAYER}{KUN}, I won't be so upset if\l" .string "I lose.\p" .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" gText_082BEB72:: @ 82BEB72 - .string "If it isn't {PLAYER}{STRING 5}! How's it going?\n" + .string "If it isn't {PLAYER}{KUN}! How's it going?\n" .string "I'm busy again as always!\p" .string "I want to do good with POKéMON, too,\n" .string "but I haven't been able to decide\l" .string "which POKéMON I should use.\p" .string "You know how {STR_VAR_1} look strong?\n" .string "But {STR_VAR_2} are tough to ignore.\p" - .string "{PLAYER}{STRING 5}, give me some of your good\n" + .string "{PLAYER}{KUN}, give me some of your good\n" .string "advice! Which one'd be good for me?$" gText_082BEC8E:: @ 82BEC8E @@ -2046,7 +2046,7 @@ gText_082BF11D:: @ 82BF11D gText_082BF1A8:: @ 82BF1A8 .string "Hey, hey!\n" - .string "My mentor, {PLAYER}{STRING 5}!\p" + .string "My mentor, {PLAYER}{KUN}!\p" .string "Hello, I've been looking for you\n" .string "for some more of your sage advice!\p" .string "Which kind of POKéMON would be right\n" @@ -2062,7 +2062,7 @@ gText_082BF268:: @ 82BF268 .string "Adios!$" gText_082BF2D1:: @ 82BF2D1 - .string "{PLAYER}{STRING 5}, listen! Big news!\n" + .string "{PLAYER}{KUN}, listen! Big news!\n" .string "I caught a mirage POKéMON!\p" .string "Of course I'm lying!\n" .string "Wahahaha!\p" @@ -2120,13 +2120,13 @@ gText_082BF6E5:: @ 82BF6E5 .string "See you again, my smart friend!$" gText_082BF773:: @ 82BF773 - .string "Oh, hi, {PLAYER}{STRING 5}…\n" + .string "Oh, hi, {PLAYER}{KUN}…\n" .string "I have this horrible headache…\p" .string "I must've worried too much about\n" .string "the kind of POKéMON I should raise.\p" .string "So, things being this way,\n" .string "I need you to decide for me.\p" - .string "{PLAYER}{STRING 5}, if I had to choose between\n" + .string "{PLAYER}{KUN}, if I had to choose between\n" .string "the POKéMON {STR_VAR_1} and\l" .string "{STR_VAR_2}, which should it be?$" @@ -2138,7 +2138,7 @@ gText_082BF869:: @ 82BF869 gText_082BF8DD:: @ 82BF8DD .string "Er… Um…\n" - .string "{PLAYER}{STRING 5}…?\p" + .string "{PLAYER}{KUN}…?\p" .string "Please, don't look at me that way.\n" .string "I'm getting all flustered…\l" .string "I… I need your advice.\p" @@ -2152,12 +2152,12 @@ gText_082BF9BA:: @ 82BF9BA .string "I'll do my best with one {STR_VAR_1}.\p" .string "I hope I can do my best without\n" .string "getting all flustered.\p" - .string "Thank you, {PLAYER}{STRING 5}.\n" + .string "Thank you, {PLAYER}{KUN}.\n" .string "If we meet again, I hope you will be\l" .string "as helpful.$" gText_082BFA5A:: @ 82BFA5A - .string "Hm? You appear to be {PLAYER}{STRING 5}…\n" + .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really real?\p" .string "No, no, if you are real, it's fine.\n" .string "Incidentally, I would like to obtain\l" @@ -2250,7 +2250,7 @@ gText_082C0032:: @ 82C0032 .string "Thank you!$" gText_082C0090:: @ 82C0090 - .string "Oh, {PLAYER}{STRING 5}!\n" + .string "Oh, {PLAYER}{KUN}!\n" .string "I was just hoping to see you, too!\p" .string "I was wondering what move would\n" .string "be suitable for my {STR_VAR_1}.\p" @@ -2263,14 +2263,14 @@ gText_082C0090:: @ 82C0090 gText_082C016E:: @ 82C016E .string "{STR_VAR_1}? That's great!\p" .string "Knowing that you made the decision,\n" - .string "{PLAYER}{STRING 5}, I won't be so upset if\l" + .string "{PLAYER}{KUN}, I won't be so upset if\l" .string "I lose.\p" .string "Okay, I'll look to you for advice again.\n" .string "Bye!$" gText_082C01F7:: @ 82C01F7 .string "How could things be this busy?\n" - .string "Hey, if it isn't {PLAYER}{STRING 5}!\l" + .string "Hey, if it isn't {PLAYER}{KUN}!\l" .string "How's it going?\p" .string "Since I got up this morning, I've done\n" .string "my jogging, swimming, and cooking!\p" @@ -2279,7 +2279,7 @@ gText_082C01F7:: @ 82C01F7 .string "my {STR_VAR_1} should learn!\p" .string "{STR_VAR_2} looks good, huh?\n" .string "But {STR_VAR_3}'s also decent.\p" - .string "{PLAYER}{STRING 5}, give me some of your good\n" + .string "{PLAYER}{KUN}, give me some of your good\n" .string "advice! Which move'd be good for me?$" gText_082C034C:: @ 82C034C @@ -2344,7 +2344,7 @@ gText_082C06D8:: @ 82C06D8 .string "some more another time.$" gText_082C074A:: @ 82C074A - .string "Hola, {PLAYER}{STRING 5}, bueno!\n" + .string "Hola, {PLAYER}{KUN}, bueno!\n" .string "I'm hoping for some more of\l" .string "your sage advice today!\p" .string "What would be the best move for\n" @@ -2362,7 +2362,7 @@ gText_082C0809:: @ 82C0809 .string "Adios!$" gText_082C086E:: @ 82C086E - .string "{PLAYER}{STRING 5}, it's completely wild!\p" + .string "{PLAYER}{KUN}, it's completely wild!\p" .string "My POKéMON!\n" .string "It learned six moves!\p" .string "Of course I'm lying!\n" @@ -2420,13 +2420,13 @@ gText_082C0C7D:: @ 82C0C7D .string "See you again, my smart friend!$" gText_082C0D0B:: @ 82C0D0B - .string "Gahack! Gaah! Oh, {PLAYER}{STRING 5}…\n" + .string "Gahack! Gaah! Oh, {PLAYER}{KUN}…\n" .string "I have this lousy cold, I do…\p" .string "I want to pick a move for my POKéMON,\n" .string "but I'm not up to it…\p" .string "So, things being this way,\n" .string "I need you to decide for me.\p" - .string "{PLAYER}{STRING 5}, if I had to choose between\n" + .string "{PLAYER}{KUN}, if I had to choose between\n" .string "{STR_VAR_2} and {STR_VAR_3} for\l" .string "my {STR_VAR_1}, which would it be?$" @@ -2438,7 +2438,7 @@ gText_082C0DFE:: @ 82C0DFE gText_082C0E71:: @ 82C0E71 .string "Er… Um…\n" - .string "{PLAYER}{STRING 5}…?\p" + .string "{PLAYER}{KUN}…?\p" .string "Please, don't look at me that way.\n" .string "I'm getting all flustered…\l" .string "I… I need your advice.\p" @@ -2454,12 +2454,12 @@ gText_082C0F6D:: @ 82C0F6D .string "I'll try that {STR_VAR_1}.\p" .string "I hope I can teach that move…\n" .string "This is so nerve-racking…\p" - .string "Thank you, {PLAYER}{STRING 5}.\n" + .string "Thank you, {PLAYER}{KUN}.\n" .string "If we meet again, I hope you will be\l" .string "as helpful.$" gText_082C1003:: @ 82C1003 - .string "Hm? You appear to be {PLAYER}{STRING 5}…\n" + .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really real?\p" .string "Perhaps you're one of those popular\n" .string "mimics?\p" @@ -2569,7 +2569,7 @@ gText_082C174F:: @ 82C174F .string "somewhere again!$" gText_082C1862:: @ 82C1862 - .string "Oh, {PLAYER}{STRING 5}.\n" + .string "Oh, {PLAYER}{KUN}.\n" .string "There's something I want you to hear.\p" .string "I know that I don't always sound\n" .string "nice or polite…\p" @@ -2595,7 +2595,7 @@ gText_082C19A0:: @ 82C19A0 gText_082C1A76:: @ 82C1A76 .string "Oh, I can't get over how busy I am!\n" - .string "Oh, hey, I was looking for you, {PLAYER}{STRING 5}.\p" + .string "Oh, hey, I was looking for you, {PLAYER}{KUN}.\p" .string "Are you well as usual?\n" .string "Things haven't changed for me at all.\p" .string "I've got running, fighting, and mapping\n" @@ -2605,7 +2605,7 @@ gText_082C1A76:: @ 82C1A76 .string "from a win without saying a word.\p" .string "So, what would be a cool saying to\n" .string "underline my coolness when I'm done\l" - .string "and walking away? {PLAYER}{STRING 5}, help me!$" + .string "and walking away? {PLAYER}{KUN}, help me!$" gText_082C1C16:: @ 82C1C16 .string "{STR_VAR_1}\p" @@ -2615,7 +2615,7 @@ gText_082C1C16:: @ 82C1C16 .string "like you.\p" .string "I'm going to make time somehow so\n" .string "I can get into battling.\p" - .string "Thanks for everything, {PLAYER}{STRING 5}!\n" + .string "Thanks for everything, {PLAYER}{KUN}!\n" .string "We have to battle, you and me, one day!$" gText_082C1CF5:: @ 82C1CF5 @@ -2694,7 +2694,7 @@ gText_082C21FF:: @ 82C21FF gText_082C231C:: @ 82C231C .string "Hola, bueno!\n" - .string "{PLAYER}{STRING 5}!\p" + .string "{PLAYER}{KUN}!\p" .string "You know, I'm getting the itch to roam\n" .string "and battle where I may.\p" .string "But before I do, I want your advice\n" @@ -2714,7 +2714,7 @@ gText_082C2407:: @ 82C2407 .string "Adios!$" gText_082C24B5:: @ 82C24B5 - .string "{PLAYER}{STRING 5}, there's big trouble!\p" + .string "{PLAYER}{KUN}, there's big trouble!\p" .string "When I win a battle, I brag about it\n" .string "for an hour at least!\p" .string "Of course I'm lying!\n" @@ -2793,14 +2793,14 @@ gText_082C2A0B:: @ 82C2A0B .string "Love ya!$" gText_082C2B50:: @ 82C2B50 - .string "{PLAYER}{STRING 5}, I'm finished…\n" + .string "{PLAYER}{KUN}, I'm finished…\n" .string "My nose won't stop dripping…\p" .string "I was trying to think up something\n" .string "cool to say when I win a battle.\p" .string "It inspired me so much, it made me cry,\n" .string "and now my nose won't stop running…\p" .string "So, things being this way,\n" - .string "I need you to decide for me, {PLAYER}{STRING 5}.\p" + .string "I need you to decide for me, {PLAYER}{KUN}.\p" .string "When I win a battle,\n" .string "what should I say?$" @@ -2812,13 +2812,13 @@ gText_082C2C77:: @ 82C2C77 .string "But in spite of my tears and runny\n" .string "nose, I will use that saying!\p" .string "I'm plumb out of things to ask you,\n" - .string "{PLAYER}{STRING 5}.\p" + .string "{PLAYER}{KUN}.\p" .string "From now on, we're rivals!\n" .string "Thanks for everything!$" gText_082C2D67:: @ 82C2D67 .string "Er… Um…\n" - .string "{PLAYER}{STRING 5}…\p" + .string "{PLAYER}{KUN}…\p" .string "Please, don't look at me that way.\n" .string "You're making me all nervous.\p" .string "I… I need your advice again.\n" @@ -2832,13 +2832,13 @@ gText_082C2E41:: @ 82C2E41 .string "Oh… Okay!\n" .string "I'll try to say that!\l" .string "I might be too nervous to say it…\p" - .string "Thank you, {PLAYER}{STRING 5}.\n" + .string "Thank you, {PLAYER}{KUN}.\n" .string "I have to say good-bye now.\p" .string "I'll obey all that you've taught me,\n" - .string "{PLAYER}{STRING 5}, and do the best I can.$" + .string "{PLAYER}{KUN}, and do the best I can.$" gText_082C2EF5:: @ 82C2EF5 - .string "Hm? You appear to be {PLAYER}{STRING 5}…\n" + .string "Hm? You appear to be {PLAYER}{KUN}…\n" .string "But are you really?\l" .string "Perhaps a clever {PLAYER} DOLL?\p" .string "Oh, no, no, no, don't worry!\n" diff --git a/data/text/match_call.inc b/data/text/match_call.inc index b25b72ebff..376f36750f 100644 --- a/data/text/match_call.inc +++ b/data/text/match_call.inc @@ -1,5 +1,5 @@ MatchCall_WildBattleText1:: @ 82A971C - .string "Hi! {PLAYER}{STRING 5}, hello!\n" + .string "Hi! {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}.\p" .string "I saw this {STR_VAR_2} a while back\n" .string "but I couldn't catch it.\p" @@ -7,7 +7,7 @@ MatchCall_WildBattleText1:: @ 82A971C .string "Well, see you again!$" MatchCall_WildBattleText2:: @ 82A9798 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's {STR_VAR_1}.\p" .string "I tried to catch a nice {STR_VAR_2}\n" .string "a little while ago.\p" @@ -25,7 +25,7 @@ MatchCall_WildBattleText3:: @ 82A9813 .string "All right, see you!$" MatchCall_WildBattleText4:: @ 82A98A8 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "You know the POKéMON {STR_VAR_2}?\n" .string "I came close to getting one.\p" @@ -36,7 +36,7 @@ MatchCall_WildBattleText4:: @ 82A98A8 .string "Okay, catch you later.$" MatchCall_WildBattleText5:: @ 82A9977 - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\l" .string "Catching any POKéMON lately?\p" .string "A little while ago I came close to\n" @@ -44,7 +44,7 @@ MatchCall_WildBattleText5:: @ 82A9977 .string "Right, take care!$" MatchCall_WildBattleText6:: @ 82A99FD - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "Caught any POKéMON lately?\p" .string "I nearly nabbed one the other day.\n" @@ -52,7 +52,7 @@ MatchCall_WildBattleText6:: @ 82A99FD .string "You take care.$" MatchCall_WildBattleText7:: @ 82A9A78 - .string "…Uh, {PLAYER}{STRING 5}?\n" + .string "…Uh, {PLAYER}{KUN}?\n" .string "It's me, {STR_VAR_1}.\p" .string "Oh, wait! Wait!\n" .string "I can catch this {STR_VAR_2}…\p" @@ -60,7 +60,7 @@ MatchCall_WildBattleText7:: @ 82A9A78 .string "That wasn't just close!$" MatchCall_WildBattleText8:: @ 82A9AE8 - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "Have you had success catching\n" .string "POKéMON lately?\p" @@ -70,7 +70,7 @@ MatchCall_WildBattleText8:: @ 82A9AE8 .string "See you again!$" MatchCall_WildBattleText9:: @ 82A9BA7 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "So? Are you getting more POKéMON\n" .string "together?\p" @@ -79,7 +79,7 @@ MatchCall_WildBattleText9:: @ 82A9BA7 .string "See you!$" MatchCall_WildBattleText10:: @ 82A9C36 - .string "Oh, {PLAYER}{STRING 5}, hello…\n" + .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "Listen, I came within a whisker of\n" .string "catching this {STR_VAR_2}…\p" @@ -88,7 +88,7 @@ MatchCall_WildBattleText10:: @ 82A9C36 .string "See you around.$" MatchCall_WildBattleText11:: @ 82A9CC8 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "How are things with you?\p" .string "I tried to catch a wild {STR_VAR_2}\n" @@ -96,7 +96,7 @@ MatchCall_WildBattleText11:: @ 82A9CC8 .string "I feel defeated…$" MatchCall_WildBattleText12:: @ 82A9D44 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you still catching POKéMON?\p" .string "I've been trying to catch them\n" @@ -104,7 +104,7 @@ MatchCall_WildBattleText12:: @ 82A9D44 .string "The way of POKéMON is deep!$" MatchCall_WildBattleText13:: @ 82A9DD7 - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "Have you been catching POKéMON?\p" .string "I've been trying to catch them\n" @@ -112,7 +112,7 @@ MatchCall_WildBattleText13:: @ 82A9DD7 .string "The way of POKéMON is deep!$" MatchCall_WildBattleText14:: @ 82A9E70 - .string "Oh, hi, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, hi, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1}.\p" .string "Just now, I tried to catch a cute\n" .string "{STR_VAR_2}.\p" @@ -131,7 +131,7 @@ MatchCall_WildBattleText15:: @ 82A9EFD .string "See you around!$" MatchCall_NegativeBattleText1:: @ 82A9FAB - .string "Hi! {PLAYER}{STRING 5}, hello!\n" + .string "Hi! {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}.\p" .string "I tried battling another TRAINER,\n" .string "but I lost.\p" @@ -139,7 +139,7 @@ MatchCall_NegativeBattleText1:: @ 82A9FAB .string "Well, see you again!$" MatchCall_NegativeBattleText2:: @ 82AA028 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's {STR_VAR_1}.\p" .string "I challenged someone else after\n" .string "we battled.\p" @@ -188,7 +188,7 @@ MatchCall_NegativeBattleText7:: @ 82AA2A1 .string "See you.$" MatchCall_NegativeBattleText8:: @ 82AA31B - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "How are your POKéMON doing?\n" .string "I lost a match the other day.\p" @@ -196,7 +196,7 @@ MatchCall_NegativeBattleText8:: @ 82AA31B .string "See you again!$" MatchCall_NegativeBattleText9:: @ 82AA3A8 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "Listen, listen, you have to hear\n" .string "this!\p" @@ -205,7 +205,7 @@ MatchCall_NegativeBattleText9:: @ 82AA3A8 .string "Oh, it burns me up!$" MatchCall_NegativeBattleText10:: @ 82AA442 - .string "Oh, {PLAYER}{STRING 5}, hello…\n" + .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "A little earlier, I was in a battle.\n" .string "I lost, though.\p" @@ -213,14 +213,14 @@ MatchCall_NegativeBattleText10:: @ 82AA442 .string "See you around.$" MatchCall_NegativeBattleText11:: @ 82AA4C5 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "How are your POKéMON?\p" .string "I just lost yet another battle.\p" .string "Well, see you!$" MatchCall_NegativeBattleText12:: @ 82AA520 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you still battling hard?\p" .string "As for me, I lost recently, so I've\n" @@ -228,16 +228,16 @@ MatchCall_NegativeBattleText12:: @ 82AA520 .string "Let's meet again.$" MatchCall_NegativeBattleText13:: @ 82AA5AD - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\p" .string "I hope you've been keeping well.\p" .string "I was in a battle just a little\n" .string "while before this.\p" - .string "{PLAYER}{STRING 5}, try to be active like me.\n" + .string "{PLAYER}{KUN}, try to be active like me.\n" .string "See you again!$" MatchCall_NegativeBattleText14:: @ 82AA64D - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "Are you doing good?\p" .string "You should go home every so often,\n" @@ -245,7 +245,7 @@ MatchCall_NegativeBattleText14:: @ 82AA64D .string "Bye-bye!$" MatchCall_PositiveBattleText1:: @ 82AA6AF - .string "Hi! {PLAYER}{STRING 5}, hello!\n" + .string "Hi! {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}!\p" .string "I battled another TRAINER earlier.\n" .string "I won! I won!\p" @@ -253,7 +253,7 @@ MatchCall_PositiveBattleText1:: @ 82AA6AF .string "for me. This is so great!$" MatchCall_PositiveBattleText2:: @ 82AA730 - .string "Hello, {PLAYER}{STRING 5}!\n" + .string "Hello, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}!\p" .string "I had a battle yesterday and\n" .string "I won! It's fantastic!$" @@ -276,7 +276,7 @@ MatchCall_PositiveBattleText4:: @ 82AA81C .string "inspired showing.$" MatchCall_PositiveBattleText5:: @ 82AA88C - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "How are things with you?\n" .string "Battling much?\p" @@ -286,7 +286,7 @@ MatchCall_PositiveBattleText5:: @ 82AA88C .string "next time! Right, take care!$" MatchCall_PositiveBattleText6:: @ 82AA934 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "How's it going for you?\p" .string "I've been riding a hot streak.\n" @@ -295,7 +295,7 @@ MatchCall_PositiveBattleText6:: @ 82AA934 .string "I'm sure not going to lose!$" MatchCall_PositiveBattleText7:: @ 82AA9D3 - .string "{PLAYER}{STRING 5}?\n" + .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "My {STR_VAR_2} is a force!\n" .string "It won me another battle just now!\p" @@ -303,7 +303,7 @@ MatchCall_PositiveBattleText7:: @ 82AA9D3 .string "with you.$" MatchCall_PositiveBattleText8:: @ 82AAA40 - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "I hope you've been well.\n" .string "I wanted to tell you I just won.\p" @@ -312,7 +312,7 @@ MatchCall_PositiveBattleText8:: @ 82AAA40 .string "See you again!$" MatchCall_PositiveBattleText9:: @ 82AAAE4 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "How are your POKéMON holding up?\n" .string "Mine just won a battle!\p" @@ -322,7 +322,7 @@ MatchCall_PositiveBattleText9:: @ 82AAAE4 .string "See you again!$" MatchCall_PositiveBattleText10:: @ 82AAB8C - .string "Oh, {PLAYER}{STRING 5}, hello…\n" + .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "How has life been treating you?\p" .string "My POKéMON appear to be charged\n" @@ -331,7 +331,7 @@ MatchCall_PositiveBattleText10:: @ 82AAB8C .string "See you around.$" MatchCall_PositiveBattleText11:: @ 82AAC25 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "Been in any battles lately?\n" .string "I just won another one today!\p" @@ -339,7 +339,7 @@ MatchCall_PositiveBattleText11:: @ 82AAC25 .string "Well, see you!$" MatchCall_PositiveBattleText12:: @ 82AAC9D - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\p" .string "I trust you've been well?\n" .string "I'm still bursting with life!\p" @@ -348,7 +348,7 @@ MatchCall_PositiveBattleText12:: @ 82AAC9D .string "youngsters yet!$" MatchCall_PositiveBattleText13:: @ 82AAD41 - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\p" .string "I hope you've been keeping well.\n" .string "I still have a bounce in my step!\p" @@ -358,12 +358,12 @@ MatchCall_PositiveBattleText13:: @ 82AAD41 .string "See you again!$" MatchCall_PositiveBattleText14:: @ 82AAE00 - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I was in a battle recently, and my\n" .string "{STR_VAR_2} was exceptional!\p" .string "I wish you could have seen it,\n" - .string "{PLAYER}{STRING 5}. Bye-bye!$" + .string "{PLAYER}{KUN}. Bye-bye!$" MatchCall_SameRouteBattleRequestText1:: @ 82AAE7F .string "Hi! {PLAYER}, hello!\n" @@ -392,7 +392,7 @@ MatchCall_SameRouteBattleRequestText3:: @ 82AAF69 .string "I'll be waiting! Catch you soon!$" MatchCall_SameRouteBattleRequestText4:: @ 82AB010 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "Whereabouts are you now?\n" .string "Huh? {STR_VAR_2}?\p" @@ -400,7 +400,7 @@ MatchCall_SameRouteBattleRequestText4:: @ 82AB010 .string "I'll wait for you. See you!$" MatchCall_SameRouteBattleRequestText5:: @ 82AB076 - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\l" .string "How are things with you?\p" .string "You're where now?\n" @@ -411,7 +411,7 @@ MatchCall_SameRouteBattleRequestText5:: @ 82AB076 .string "See you soon!$" MatchCall_SameRouteBattleRequestText6:: @ 82AB11A - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "How are your POKéMON keeping?\p" .string "Oh, is that right? You're around\n" @@ -422,7 +422,7 @@ MatchCall_SameRouteBattleRequestText6:: @ 82AB11A .string "See you!$" MatchCall_SameRouteBattleRequestText7:: @ 82AB1B4 - .string "…Er, {PLAYER}{STRING 5}?\n" + .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\p" .string "Oh, you happen to be around\n" .string "{STR_VAR_2}?\p" @@ -432,7 +432,7 @@ MatchCall_SameRouteBattleRequestText7:: @ 82AB1B4 .string "I'll wait for you.$" MatchCall_SameRouteBattleRequestText8:: @ 82AB23D - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "I hope you're doing well.\n" .string "Oh, you're near {STR_VAR_2}.\p" @@ -442,7 +442,7 @@ MatchCall_SameRouteBattleRequestText8:: @ 82AB23D .string "See you soon!$" MatchCall_SameRouteBattleRequestText9:: @ 82AB2E9 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "Are you keeping up?\n" .string "Oh, you're near {STR_VAR_2}?\p" @@ -451,7 +451,7 @@ MatchCall_SameRouteBattleRequestText9:: @ 82AB2E9 .string "Don't keep me waiting too long!$" MatchCall_SameRouteBattleRequestText10:: @ 82AB382 - .string "Oh, {PLAYER}{STRING 5}, hello…\n" + .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "How are things with you?\n" .string "Oh, you're near {STR_VAR_2}.\p" @@ -460,7 +460,7 @@ MatchCall_SameRouteBattleRequestText10:: @ 82AB382 .string "Be quick!$" MatchCall_SameRouteBattleRequestText11:: @ 82AB410 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "Ah, so where you are now is\n" .string "{STR_VAR_2}?\p" @@ -470,7 +470,7 @@ MatchCall_SameRouteBattleRequestText11:: @ 82AB410 .string "See you real quick!$" MatchCall_SameRouteBattleRequestText12:: @ 82AB4B0 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Where might you be now?\p" .string "{STR_VAR_2}?\n" @@ -481,7 +481,7 @@ MatchCall_SameRouteBattleRequestText12:: @ 82AB4B0 .string "See you!$" MatchCall_SameRouteBattleRequestText13:: @ 82AB538 - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\p" .string "I hope you've been keeping well.\n" .string "Oh, you're near {STR_VAR_2}?\p" @@ -491,7 +491,7 @@ MatchCall_SameRouteBattleRequestText13:: @ 82AB538 .string "Bye for now.$" MatchCall_SameRouteBattleRequestText14:: @ 82AB5E4 - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "You're what? …{STR_VAR_2}?\n" .string "That's very close.\p" @@ -527,7 +527,7 @@ MatchCall_DifferentRouteBattleRequestText3:: @ 82AB73C .string "{STR_VAR_2}.$" MatchCall_DifferentRouteBattleRequestText4:: @ 82AB808 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "How are things with you?\p" .string "My POKéMON have grown pretty\n" @@ -538,7 +538,7 @@ MatchCall_DifferentRouteBattleRequestText4:: @ 82AB808 .string "{STR_VAR_2}, okay?$" MatchCall_DifferentRouteBattleRequestText5:: @ 82AB8B7 - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "My POKéMON are growing up in\n" .string "decent ways.\p" @@ -548,7 +548,7 @@ MatchCall_DifferentRouteBattleRequestText5:: @ 82AB8B7 .string "{STR_VAR_2}. See you soon!$" MatchCall_DifferentRouteBattleRequestText6:: @ 82AB95D - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\l" .string "I hope you're on top of things.\p" .string "I was thinking I'd like another\n" @@ -558,7 +558,7 @@ MatchCall_DifferentRouteBattleRequestText6:: @ 82AB95D .string "See you!$" MatchCall_DifferentRouteBattleRequestText7:: @ 82ABA03 - .string "…Er, {PLAYER}{STRING 5}?\n" + .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\l" .string "So? Are your POKéMON growing?\p" .string "Mine sure got stronger.\n" @@ -568,7 +568,7 @@ MatchCall_DifferentRouteBattleRequestText7:: @ 82ABA03 .string "See you around.$" MatchCall_DifferentRouteBattleRequestText8:: @ 82ABA9F - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\p" .string "I hope you're doing well.\n" .string "My POKéMON are very frisky.\p" @@ -578,48 +578,48 @@ MatchCall_DifferentRouteBattleRequestText8:: @ 82ABA9F .string "Until then, good-bye!$" MatchCall_DifferentRouteBattleRequestText9:: @ 82ABB62 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\l" .string "How are your POKéMON doing?\p" .string "My POKéMON keep getting better.\n" - .string "I'd like to show you, {PLAYER}{STRING 5}.\p" + .string "I'd like to show you, {PLAYER}{KUN}.\p" .string "I'm around {STR_VAR_2} now,\n" .string "so let's battle if you're close by.\p" .string "Hope I see you soon!$" MatchCall_DifferentRouteBattleRequestText10:: @ 82ABC26 - .string "Oh, {PLAYER}{STRING 5}, hello…\n" + .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\l" .string "So, how are things with you?\p" .string "My POKéMON have grown much\n" .string "stronger than before.\p" .string "I'd love another battle with you,\n" - .string "{PLAYER}{STRING 5}.\p" + .string "{PLAYER}{KUN}.\p" .string "I'll be around {STR_VAR_2}.\n" .string "Come see me if you're close.$" MatchCall_DifferentRouteBattleRequestText11:: @ 82ABCE9 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "Where might you be now?\p" .string "My POKéMON are full of life.\n" .string "They appear to be looking forward\l" - .string "to seeing your POKéMON, {PLAYER}{STRING 5}.\p" + .string "to seeing your POKéMON, {PLAYER}{KUN}.\p" .string "I'm around {STR_VAR_2} now.\n" .string "I hope you'll seek us out.$" MatchCall_DifferentRouteBattleRequestText12:: @ 82ABDA2 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\p" .string "I should tell you, my POKéMON have\n" .string "grown to be quite robust lately.\p" .string "I would like to see them in a battle\n" - .string "with you, {PLAYER}{STRING 5}.\p" + .string "with you, {PLAYER}{KUN}.\p" .string "We'll be around {STR_VAR_2}.\n" .string "Come see us anytime!$" MatchCall_DifferentRouteBattleRequestText13:: @ 82ABE5E - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "Are your POKéMON keeping well?\p" .string "My POKéMON have been so healthy,\n" @@ -630,13 +630,13 @@ MatchCall_DifferentRouteBattleRequestText13:: @ 82ABE5E .string "do come see us.$" MatchCall_DifferentRouteBattleRequestText14:: @ 82ABF36 - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "Keeping well, I hope.\p" .string "Oh, yes! My POKéMON are\n" .string "much stronger than before.\p" .string "Don't you think we ought to have\n" - .string "a battle, {PLAYER}{STRING 5}?\p" + .string "a battle, {PLAYER}{KUN}?\p" .string "We'll be waiting for you around\n" .string "{STR_VAR_2}.\p" .string "Come see us anytime, okay?$" @@ -884,14 +884,14 @@ MatchCall_PersonalizedText23:: @ 82AD2A8 .string "When there's a strong TRAINER\n" .string "nearby, I can sometimes sense that\l" .string "somehow.\p" - .string "Did you pass close by, {PLAYER}{STRING 5}?\n" + .string "Did you pass close by, {PLAYER}{KUN}?\n" .string "Maybe it was you.\p" .string "I'll be waiting for your visit.\n" .string "Bye!$" MatchCall_PersonalizedText24:: @ 82AD34F .string "Hello, this is {STR_VAR_1}.\n" - .string "You sound well, {PLAYER}{STRING 5}.\p" + .string "You sound well, {PLAYER}{KUN}.\p" .string "I've traveled around the world,\n" .string "but I must say I've taken a great\l" .string "shine to this region.\p" @@ -1007,7 +1007,7 @@ MatchCall_PersonalizedText32:: @ 82ADC92 .string "It's kind of hard to explain, but…\l" .string "How would I say this now…\l" .string "My shorts feel silkier!\p" - .string "And when I battled you, {PLAYER}{STRING 5},\n" + .string "And when I battled you, {PLAYER}{KUN},\n" .string "my shorts felt icky and coarse.\p" .string "… … … … … …\n" .string "You didn't really believe that?\l" @@ -1117,7 +1117,7 @@ MatchCall_PersonalizedText40:: @ 82AE5CD .string "test of human endurance! Bye!$" MatchCall_PersonalizedText41:: @ 82AE698 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "How are your POKéMON doing?\p" .string "My DRAGON POKéMON appear to be\n" @@ -1171,7 +1171,7 @@ MatchCall_PersonalizedText46:: @ 82AE998 .string "I'd better go!$" MatchCall_PersonalizedText47:: @ 82AEA8F - .string "Oh, {PLAYER}{STRING 5}, hello!\n" + .string "Oh, {PLAYER}{KUN}, hello!\n" .string "This is {STR_VAR_1}.\l" .string "I'm up in the mountains now.\p" .string "But the ground is too bumpy.\n" @@ -1241,7 +1241,7 @@ MatchCall_PersonalizedText53:: @ 82AEEF4 MatchCall_PersonalizedText54:: @ 82AEFDA .string "Hi, it's {STR_VAR_1}. You know,\n" .string "the TRAINER who's always prepared!\p" - .string "{PLAYER}{STRING 5}, do you have enough items?\n" + .string "{PLAYER}{KUN}, do you have enough items?\n" .string "Are your POKéMON fit for action?\p" .string "Keeping everything perfect around\n" .string "you all the time is the secret to\l" @@ -1326,7 +1326,7 @@ MatchCall_PersonalizedText60:: @ 82AF671 .string "enjoy POKéMON whatever your age.\p" .string "Wouldn't it be good if you had\n" .string "a partnership like ours?\p" - .string "Of course, {PLAYER}{STRING 5}, you already\n" + .string "Of course, {PLAYER}{KUN}, you already\n" .string "enjoy the trust and companionship\l" .string "of your POKéMON now.\p" .string "You have the makings of long and\n" @@ -1344,7 +1344,7 @@ MatchCall_PersonalizedText61:: @ 82AF7D8 .string "was weak to make an impression!\p" .string "She always chews me out whether\n" .string "we win or lose!\p" - .string "{PLAYER}{STRING 5}, can you say something\n" + .string "{PLAYER}{KUN}, can you say something\n" .string "to her next time?\p" .string "Okay, see you!$" @@ -1412,7 +1412,7 @@ MatchCall_BattleFrontierStreakText3:: @ 82AFCFF .string "Catch you soon!$" MatchCall_BattleFrontierStreakText4:: @ 82AFDA7 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. What's up?\p" .string "There's a rumor going around that\n" .string "you strung together {STR_VAR_3} straight\l" @@ -1421,7 +1421,7 @@ MatchCall_BattleFrontierStreakText4:: @ 82AFDA7 .string "See you!$" MatchCall_BattleFrontierStreakText5:: @ 82AFE3D - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "You were at the {STR_VAR_2}\n" .string "and won {STR_VAR_3} battles in a row?\l" @@ -1430,7 +1430,7 @@ MatchCall_BattleFrontierStreakText5:: @ 82AFE3D .string "See you soon!$" MatchCall_BattleFrontierStreakText6:: @ 82AFECA - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you pulled off\n" .string "the feat of {STR_VAR_3} straight wins at\l" @@ -1439,7 +1439,7 @@ MatchCall_BattleFrontierStreakText6:: @ 82AFECA .string "raising my team.$" MatchCall_BattleFrontierStreakText7:: @ 82AFF64 - .string "…Er, {PLAYER}{STRING 5}?\n" + .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\p" .string "Oh, yeah, you were over at\n" .string "the {STR_VAR_2}, right?\p" @@ -1448,7 +1448,7 @@ MatchCall_BattleFrontierStreakText7:: @ 82AFF64 .string "I have to go!$" MatchCall_BattleFrontierStreakText8:: @ 82AFFF0 - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\p" .string "Oh, but, you are. I've heard that\n" @@ -1458,7 +1458,7 @@ MatchCall_BattleFrontierStreakText8:: @ 82AFFF0 .string "I hope you stay successful.$" MatchCall_BattleFrontierStreakText9:: @ 82B00B5 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! Your {STR_VAR_3}-win streak at\n" .string "the {STR_VAR_2}!\p" @@ -1466,7 +1466,7 @@ MatchCall_BattleFrontierStreakText9:: @ 82B00B5 .string "I'd better try harder, too!$" MatchCall_BattleFrontierStreakText10:: @ 82B0129 - .string "Oh, {PLAYER}{STRING 5}, hello…\n" + .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "You won {STR_VAR_3} straight battles at\n" .string "the {STR_VAR_2}?\p" @@ -1474,7 +1474,7 @@ MatchCall_BattleFrontierStreakText10:: @ 82B0129 .string "I need to work harder.$" MatchCall_BattleFrontierStreakText11:: @ 82B01A5 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" .string "the {STR_VAR_2}?\p" @@ -1484,7 +1484,7 @@ MatchCall_BattleFrontierStreakText11:: @ 82B01A5 .string "I wonder how many I can win?$" MatchCall_BattleFrontierStreakText12:: @ 82B0232 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" .string "Someone passed on word about you.\n" @@ -1494,7 +1494,7 @@ MatchCall_BattleFrontierStreakText12:: @ 82B0232 .string "See you!$" MatchCall_BattleFrontierStreakText13:: @ 82B02D9 - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" .string "They say you won {STR_VAR_3} straight\n" @@ -1503,7 +1503,7 @@ MatchCall_BattleFrontierStreakText13:: @ 82B02D9 .string "Bye now.$" MatchCall_BattleFrontierStreakText14:: @ 82B0366 - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I heard about you!\n" .string "Didn't you just win {STR_VAR_3} battles in\l" @@ -1538,7 +1538,7 @@ MatchCall_BattleFrontierRecordStreakText3:: @ 82B04DE .string "Catch you soon!$" MatchCall_BattleFrontierRecordStreakText4:: @ 82B0586 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. What's up?\p" .string "There's a rumor going around that\n" .string "you strung together {STR_VAR_3} straight\l" @@ -1547,7 +1547,7 @@ MatchCall_BattleFrontierRecordStreakText4:: @ 82B0586 .string "See you!$" MatchCall_BattleFrontierRecordStreakText5:: @ 82B061C - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "You were at the {STR_VAR_2}\n" .string "and won {STR_VAR_3} battles in a row?\l" @@ -1556,7 +1556,7 @@ MatchCall_BattleFrontierRecordStreakText5:: @ 82B061C .string "See you soon!$" MatchCall_BattleFrontierRecordStreakText6:: @ 82B06A3 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you pulled off\n" .string "the feat of {STR_VAR_3} straight wins at\l" @@ -1565,7 +1565,7 @@ MatchCall_BattleFrontierRecordStreakText6:: @ 82B06A3 .string "See you soon!$" MatchCall_BattleFrontierRecordStreakText7:: @ 82B073B - .string "…Er, {PLAYER}{STRING 5}?\n" + .string "…Er, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here…\p" .string "Oh, yeah, you were over at\n" .string "the {STR_VAR_2}, right?\p" @@ -1574,7 +1574,7 @@ MatchCall_BattleFrontierRecordStreakText7:: @ 82B073B .string "I have to go!$" MatchCall_BattleFrontierRecordStreakText8:: @ 82B07C7 - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\p" .string "Oh, but, you are. I've heard that\n" @@ -1584,7 +1584,7 @@ MatchCall_BattleFrontierRecordStreakText8:: @ 82B07C7 .string "I'd better work on my POKéMON, too!$" MatchCall_BattleFrontierRecordStreakText9:: @ 82B0894 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! Your {STR_VAR_3}-win streak at\n" .string "the {STR_VAR_2}!\p" @@ -1592,7 +1592,7 @@ MatchCall_BattleFrontierRecordStreakText9:: @ 82B0894 .string "I'd better try harder, too!$" MatchCall_BattleFrontierRecordStreakText10:: @ 82B0908 - .string "Oh, {PLAYER}{STRING 5}, hello…\n" + .string "Oh, {PLAYER}{KUN}, hello…\n" .string "This is {STR_VAR_1}.\p" .string "You won {STR_VAR_3} straight battles at\n" .string "the {STR_VAR_2}?\p" @@ -1600,7 +1600,7 @@ MatchCall_BattleFrontierRecordStreakText10:: @ 82B0908 .string "I need to work harder.$" MatchCall_BattleFrontierRecordStreakText11:: @ 82B0984 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" .string "the {STR_VAR_2}?\p" @@ -1610,7 +1610,7 @@ MatchCall_BattleFrontierRecordStreakText11:: @ 82B0984 .string "I wonder how many I can win?$" MatchCall_BattleFrontierRecordStreakText12:: @ 82B0A11 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" .string "Someone passed on word about you.\n" @@ -1620,7 +1620,7 @@ MatchCall_BattleFrontierRecordStreakText12:: @ 82B0A11 .string "See you!$" MatchCall_BattleFrontierRecordStreakText13:: @ 82B0AB8 - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" .string "They say you won {STR_VAR_3} straight\n" @@ -1629,7 +1629,7 @@ MatchCall_BattleFrontierRecordStreakText13:: @ 82B0AB8 .string "Bye now.$" MatchCall_BattleFrontierRecordStreakText14:: @ 82B0B45 - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" .string "Didn't you just win {STR_VAR_3} battles in\n" @@ -1664,7 +1664,7 @@ MatchCall_BattleDomeText3:: @ 82B0CC7 .string "Catch you soon!$" MatchCall_BattleDomeText4:: @ 82B0D4A - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "I heard you became the champion\n" .string "at the {STR_VAR_2} {STR_VAR_3} times.\p" @@ -1672,7 +1672,7 @@ MatchCall_BattleDomeText4:: @ 82B0D4A .string "I'll try to keep up!$" MatchCall_BattleDomeText5:: @ 82B0DC8 - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "I heard you won {STR_VAR_3} times\n" .string "outright at the {STR_VAR_2}.\p" @@ -1680,7 +1680,7 @@ MatchCall_BattleDomeText5:: @ 82B0DC8 .string "See you soon!$" MatchCall_BattleDomeText6:: @ 82B0E35 - .string "Hey, {PLAYER}{STRING 5}?\n" + .string "Hey, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you became\n" .string "the champion {STR_VAR_3} times at\l" @@ -1689,7 +1689,7 @@ MatchCall_BattleDomeText6:: @ 82B0E35 .string "you pull farther ahead.$" MatchCall_BattleDomeText7:: @ 82B0ED1 - .string "{PLAYER}{STRING 5}?\n" + .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "You were at the {STR_VAR_2}\n" .string "and became the champ {STR_VAR_3} times?\p" @@ -1699,7 +1699,7 @@ MatchCall_BattleDomeText7:: @ 82B0ED1 .string "Okay, bye.$" MatchCall_BattleDomeText8:: @ 82B0F72 - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\l" .string "Oh, but, you are.\p" @@ -1709,7 +1709,7 @@ MatchCall_BattleDomeText8:: @ 82B0F72 .string "See you again.$" MatchCall_BattleDomeText9:: @ 82B102A - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! You took the title\n" .string "{STR_VAR_3} times at the {STR_VAR_2}!\p" @@ -1717,7 +1717,7 @@ MatchCall_BattleDomeText9:: @ 82B102A .string "I'd better try harder, too!$" MatchCall_BattleDomeText10:: @ 82B10A7 - .string "Oh, {PLAYER}{STRING 5}, hello.\n" + .string "Oh, {PLAYER}{KUN}, hello.\n" .string "This is {STR_VAR_1}.\p" .string "You won {STR_VAR_3} straight times at\n" .string "the {STR_VAR_2}?\p" @@ -1725,7 +1725,7 @@ MatchCall_BattleDomeText10:: @ 82B10A7 .string "I need to work harder.$" MatchCall_BattleDomeText11:: @ 82B1121 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" .string "the {STR_VAR_2}?\p" @@ -1737,7 +1737,7 @@ MatchCall_BattleDomeText11:: @ 82B1121 .string "Well, see you!$" MatchCall_BattleDomeText12:: @ 82B11D3 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" .string "You've won {STR_VAR_3} events at a place\n" @@ -1746,7 +1746,7 @@ MatchCall_BattleDomeText12:: @ 82B11D3 .string "See you!$" MatchCall_BattleDomeText13:: @ 82B124D - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" .string "They say you won {STR_VAR_3} events\n" @@ -1755,7 +1755,7 @@ MatchCall_BattleDomeText13:: @ 82B124D .string "Bye now.$" MatchCall_BattleDomeText14:: @ 82B12D0 - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" .string "Didn't you win {STR_VAR_3} titles\n" @@ -1790,7 +1790,7 @@ MatchCall_BattlePikeText3:: @ 82B142B .string "Catch you soon!$" MatchCall_BattlePikeText4:: @ 82B14B4 - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "I heard you blew through {STR_VAR_3} rooms\n" .string "at the {STR_VAR_2}.\p" @@ -1798,7 +1798,7 @@ MatchCall_BattlePikeText4:: @ 82B14B4 .string "try to keep up!$" MatchCall_BattlePikeText5:: @ 82B1525 - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "I heard you got past {STR_VAR_3} rooms\n" .string "at the {STR_VAR_2}.\p" @@ -1806,7 +1806,7 @@ MatchCall_BattlePikeText5:: @ 82B1525 .string "See you soon!$" MatchCall_BattlePikeText6:: @ 82B158E - .string "Hey, {PLAYER}{STRING 5}?\n" + .string "Hey, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you got through\n" .string "{STR_VAR_3} rooms at the {STR_VAR_2}.\p" @@ -1814,7 +1814,7 @@ MatchCall_BattlePikeText6:: @ 82B158E .string "you pull further ahead.$" MatchCall_BattlePikeText7:: @ 82B1622 - .string "{PLAYER}{STRING 5}?\n" + .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "You were at the {STR_VAR_2}\n" .string "and won your way past {STR_VAR_3} rooms?\p" @@ -1823,7 +1823,7 @@ MatchCall_BattlePikeText7:: @ 82B1622 .string "Okay, bye.$" MatchCall_BattlePikeText8:: @ 82B169D - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\l" .string "Oh, but, you are.\p" @@ -1834,7 +1834,7 @@ MatchCall_BattlePikeText8:: @ 82B169D .string "See you again.$" MatchCall_BattlePikeText9:: @ 82B1775 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! You won your way through\n" .string "{STR_VAR_3} rooms at the {STR_VAR_2}!\p" @@ -1842,7 +1842,7 @@ MatchCall_BattlePikeText9:: @ 82B1775 .string "I'd better try harder, too!$" MatchCall_BattlePikeText10:: @ 82B17F8 - .string "Oh, {PLAYER}{STRING 5}, hello.\n" + .string "Oh, {PLAYER}{KUN}, hello.\n" .string "This is {STR_VAR_1}.\p" .string "You won your way past {STR_VAR_3} rooms\n" .string "at the {STR_VAR_2}?\p" @@ -1850,7 +1850,7 @@ MatchCall_BattlePikeText10:: @ 82B17F8 .string "I need to work harder.$" MatchCall_BattlePikeText11:: @ 82B1877 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" .string "the {STR_VAR_2}?\p" @@ -1862,7 +1862,7 @@ MatchCall_BattlePikeText11:: @ 82B1877 .string "Well, see you!$" MatchCall_BattlePikeText12:: @ 82B1946 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" .string "You've won through {STR_VAR_3} rooms at\n" @@ -1871,7 +1871,7 @@ MatchCall_BattlePikeText12:: @ 82B1946 .string "See you!$" MatchCall_BattlePikeText13:: @ 82B19C7 - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" .string "They say you won in {STR_VAR_3} rooms\n" @@ -1880,7 +1880,7 @@ MatchCall_BattlePikeText13:: @ 82B19C7 .string "Bye now.$" MatchCall_BattlePikeText14:: @ 82B1A4C - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" .string "Didn't you get through {STR_VAR_3} rooms\n" @@ -1915,7 +1915,7 @@ MatchCall_BattlePyramidText3:: @ 82B1BE4 .string "Catch you soon!$" MatchCall_BattlePyramidText4:: @ 82B1C6A - .string "Hey, {PLAYER}{STRING 5}.\n" + .string "Hey, {PLAYER}{KUN}.\n" .string "{STR_VAR_1} here.\p" .string "I heard you scaled {STR_VAR_3} floors\n" .string "in the {STR_VAR_2}.\p" @@ -1923,7 +1923,7 @@ MatchCall_BattlePyramidText4:: @ 82B1C6A .string "to keep up!$" MatchCall_BattlePyramidText5:: @ 82B1CCF - .string "Hiya, {PLAYER}{STRING 5}!\n" + .string "Hiya, {PLAYER}{KUN}!\n" .string "It's {STR_VAR_1}.\p" .string "I heard you climbed {STR_VAR_3} floors\n" .string "in the {STR_VAR_2}.\p" @@ -1931,7 +1931,7 @@ MatchCall_BattlePyramidText5:: @ 82B1CCF .string "See you soon!$" MatchCall_BattlePyramidText6:: @ 82B1D38 - .string "Hey, {PLAYER}{STRING 5}?\n" + .string "Hey, {PLAYER}{KUN}?\n" .string "{STR_VAR_1} here. How are you?\p" .string "By the way, I heard you got through\n" .string "{STR_VAR_3} floors in the {STR_VAR_2}.\p" @@ -1939,7 +1939,7 @@ MatchCall_BattlePyramidText6:: @ 82B1D38 .string "you pull further ahead.$" MatchCall_BattlePyramidText7:: @ 82B1DCD - .string "{PLAYER}{STRING 5}?\n" + .string "{PLAYER}{KUN}?\n" .string "{STR_VAR_1} here.\p" .string "You were at the {STR_VAR_2}\n" .string "and won your way up {STR_VAR_3} floors?\p" @@ -1949,7 +1949,7 @@ MatchCall_BattlePyramidText7:: @ 82B1DCD .string "Okay, bye.$" MatchCall_BattlePyramidText8:: @ 82B1E4B - .string "Oh, {PLAYER}{STRING 5}, how do you do?\n" + .string "Oh, {PLAYER}{KUN}, how do you do?\n" .string "This is {STR_VAR_1} speaking.\l" .string "I hope you're doing well.\l" .string "Oh, but, you are.\p" @@ -1960,7 +1960,7 @@ MatchCall_BattlePyramidText8:: @ 82B1E4B .string "See you again.$" MatchCall_BattlePyramidText9:: @ 82B1F24 - .string "Oh, {PLAYER}{STRING 5}, hi there!\n" + .string "Oh, {PLAYER}{KUN}, hi there!\n" .string "This is {STR_VAR_1}!\p" .string "I heard! You won your way through\n" .string "{STR_VAR_3} floors in the {STR_VAR_2}!\p" @@ -1968,7 +1968,7 @@ MatchCall_BattlePyramidText9:: @ 82B1F24 .string "I'd better try harder, too!$" MatchCall_BattlePyramidText10:: @ 82B1FA8 - .string "Oh, {PLAYER}{STRING 5}, hello.\n" + .string "Oh, {PLAYER}{KUN}, hello.\n" .string "This is {STR_VAR_1}.\p" .string "You climbed {STR_VAR_3} floors inside\n" .string "the {STR_VAR_2}?\p" @@ -1976,7 +1976,7 @@ MatchCall_BattlePyramidText10:: @ 82B1FA8 .string "I need to work harder.$" MatchCall_BattlePyramidText11:: @ 82B2022 - .string "Ah, {PLAYER}{STRING 5}.\n" + .string "Ah, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\p" .string "I hear you're the terror of\n" .string "the {STR_VAR_2}?\p" @@ -1988,7 +1988,7 @@ MatchCall_BattlePyramidText11:: @ 82B2022 .string "Well, see you!$" MatchCall_BattlePyramidText12:: @ 82B20F3 - .string "Hello, {PLAYER}{STRING 5}.\n" + .string "Hello, {PLAYER}{KUN}.\n" .string "It's me, {STR_VAR_1}.\l" .string "Are you keeping well?\p" .string "You've won through {STR_VAR_3} floors in\n" @@ -1997,7 +1997,7 @@ MatchCall_BattlePyramidText12:: @ 82B20F3 .string "See you!$" MatchCall_BattlePyramidText13:: @ 82B2175 - .string "Ah, hello, {PLAYER}{STRING 5}!\n" + .string "Ah, hello, {PLAYER}{KUN}!\n" .string "This is {STR_VAR_1}!\l" .string "I hope you've been keeping well.\p" .string "They say you climbed {STR_VAR_3} floors\n" @@ -2006,7 +2006,7 @@ MatchCall_BattlePyramidText13:: @ 82B2175 .string "Bye now.$" MatchCall_BattlePyramidText14:: @ 82B21FC - .string "Oh, hi, {PLAYER}{STRING 5}.\n" + .string "Oh, hi, {PLAYER}{KUN}.\n" .string "This is {STR_VAR_1}.\l" .string "I heard about you!\p" .string "Didn't you get through {STR_VAR_3} floors\n" @@ -2068,7 +2068,7 @@ gText_Roxanne_Pokenav_2B2607:: @ 82B2607 .string "is a matter of pride.$" gText_Brawly_Pokenav_2B2659:: @ 82B2659 - .string "BRAWLY: Hey, there, {PLAYER}{STRING 5}!\p" + .string "BRAWLY: Hey, there, {PLAYER}{KUN}!\p" .string "I learned a lot from the battle we\n" .string "had together.\p" .string "I intend to do my training over,\n" @@ -2079,7 +2079,7 @@ gText_Brawly_Pokenav_2B2659:: @ 82B2659 .string "I want you to challenge us again.$" gText_Brawly_Pokenav_2B275D:: @ 82B275D - .string "BRAWLY: Hey, {PLAYER}{STRING 5}!\n" + .string "BRAWLY: Hey, {PLAYER}{KUN}!\n" .string "Congratulations!\p" .string "Word about your exploits arrived\n" .string "on tidal winds!\p" @@ -2091,13 +2091,13 @@ gText_Brawly_Pokenav_2B275D:: @ 82B275D .string "I want you to challenge us again.$" gText_Brawly_Pokenav_2B286F:: @ 82B286F - .string "BRAWLY: Hey, {PLAYER}{STRING 5}!\n" + .string "BRAWLY: Hey, {PLAYER}{KUN}!\n" .string "My GYM's ready for action!\p" .string "Come back to DEWFORD anytime\n" .string "for another challenge!$" gText_Brawly_Pokenav_2B28D1:: @ 82B28D1 - .string "BRAWLY: {PLAYER}{STRING 5}, I don't think\n" + .string "BRAWLY: {PLAYER}{KUN}, I don't think\n" .string "I'll ever get bored of battling you!$" gText_Wattson_Pokenav_2B2912:: @ 82B2912 @@ -2225,7 +2225,7 @@ gText_TateLiza_Pokenav_2B31CD:: @ 82B31CD gText_Juan_Pokenav_2B3249:: @ 82B3249 .string "JUAN: Hmm…\n" - .string "{PLAYER}{STRING 5}… Was it?\p" + .string "{PLAYER}{KUN}… Was it?\p" .string "Our battle together--it brought\n" .string "to me memories of when I first\l" .string "encountered WALLACE.\p" @@ -2233,7 +2233,7 @@ gText_Juan_Pokenav_2B3249:: @ 82B3249 .string "yet surpass WALLACE!$" gText_Juan_Pokenav_2B32EC:: @ 82B32EC - .string "JUAN: Fufu… {PLAYER}{STRING 5}…\n" + .string "JUAN: Fufu… {PLAYER}{KUN}…\n" .string "You've finally achieved your goal.\p" .string "My eye for appraising talent wasn't\n" .string "mistaken…\p" @@ -2242,14 +2242,14 @@ gText_Juan_Pokenav_2B32EC:: @ 82B32EC .string "of power and prestige.$" gText_Juan_Pokenav_2B33AA:: @ 82B33AA - .string "JUAN: Hoho… {PLAYER}{STRING 5}…\p" + .string "JUAN: Hoho… {PLAYER}{KUN}…\p" .string "Our SOOTOPOLIS GYM has finally\n" .string "reopened.\p" .string "If you wish to see me, you are\n" .string "welcome to visit anytime.$" gText_Juan_Pokenav_2B341E:: @ 82B341E - .string "JUAN: {PLAYER}{STRING 5}…\p" + .string "JUAN: {PLAYER}{KUN}…\p" .string "Like the finest music, the battles\n" .string "we wage together strike chords\l" .string "of inspiration in my heart…\p" @@ -2293,7 +2293,7 @@ gText_Drake_Pokenav_2B368B:: @ 82B368B .string "Don't you agree, {PLAYER}?$" gText_Wallace_Pokenav_2B3790:: @ 82B3790 - .string "WALLACE: Hello, {PLAYER}{STRING 5}.\n" + .string "WALLACE: Hello, {PLAYER}{KUN}.\n" .string "Have you met STEVEN?\p" .string "He is…\n" .string "Actually incredibly skilled.\p" @@ -2336,14 +2336,14 @@ MossdeepCity_SpaceCenter_2F_Text_2B39C6: @ 82B39C6 .string "… … … … … Click!$" gText_May_Pokenav_2B3AB3:: @ 2B3AB3 - .string "MAY: Hi, {PLAYER}{STRING 5}!\p" + .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MR. BRINEY retired as a SAILOR,\n" .string "but I still see him out on the sea\l" .string "with his pet PEEKO sometimes.\p" .string "He must love the sea still.$" gText_May_Pokenav_2B3B3F:: @ 2B3B3F - .string "MAY: Hi, {PLAYER}{STRING 5}!\p" + .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "You know how little towns like\n" .string "PETALBURG and DEWFORD have GYMS?\p" .string "For some reason, the big port of\n" @@ -2352,7 +2352,7 @@ gText_May_Pokenav_2B3B3F:: @ 2B3B3F .string "I should apply to be the LEADER.$" gText_May_Pokenav_2B3C13:: @ 2B3C13 - .string "MAY: Hi, {PLAYER}{STRING 5}!\p" + .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "Do you remember a man named\n" .string "the CUTTER in RUSTBORO?\l" .string "He had a house there, remember?\p" @@ -2364,13 +2364,13 @@ gText_May_Pokenav_2B3C13:: @ 2B3C13 .string "The ROCK SMASH GUY!$" gText_May_Pokenav_2B3CF3:: @ 2B3CF3 - .string "MAY: {PLAYER}{STRING 5}?\p" + .string "MAY: {PLAYER}{KUN}?\p" .string "RUSTURF TUNNEL…\n" .string "They named it that because it\l" .string "joins RUSTBORO and VERDANTURF.$" gText_May_Pokenav_2B3D4B:: @ 2B3D4B - .string "MAY: {PLAYER}{STRING 5}, how are you?\p" + .string "MAY: {PLAYER}{KUN}, how are you?\p" .string "I'm out on ROUTE 111 now.\p" .string "I'm going to get a rest at an old\n" .string "lady's house.\p" @@ -2378,7 +2378,7 @@ gText_May_Pokenav_2B3D4B:: @ 2B3D4B .string "the desert.$" gText_May_Pokenav_2B3DD1:: @ 2B3DD1 - .string "MAY: Hi, {PLAYER}{STRING 5}!\p" + .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "Did you know about the MIRAGE\n" .string "TOWER in the desert?\p" .string "They say, like a mirage, it seems\n" @@ -2386,21 +2386,21 @@ gText_May_Pokenav_2B3DD1:: @ 2B3DD1 .string "I wish I could see it.$" gText_May_Pokenav_2B3E69:: @ 2B3E69 - .string "MAY: {PLAYER}{STRING 5}, yahoo!\n" + .string "MAY: {PLAYER}{KUN}, yahoo!\n" .string "I'm on ROUTE 119 now.\p" .string "There's a big river here, and\n" .string "it often rains.\p" .string "I got soaked!$" gText_May_Pokenav_2B3ECD:: @ 2B3ECD - .string "MAY: {PLAYER}{STRING 5}, hi.\p" + .string "MAY: {PLAYER}{KUN}, hi.\p" .string "MT. PYRE is a memorial to POKéMON\n" .string "whose lives have ended.\p" .string "Maybe as a result, it's infested\n" .string "with many GHOST-type POKéMON!$" gText_May_Pokenav_2B3F2B:: @ 2B3F2B - .string "MAY: Hi, {PLAYER}{STRING 5}!\p" + .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "I was thinking of going to the hot\n" .string "spring in LAVARIDGE.\p" .string "But on the way, around JAGGED\n" @@ -2408,14 +2408,14 @@ gText_May_Pokenav_2B3F2B:: @ 2B3F2B .string "characters. The mood was ugly!$" gText_May_Pokenav_2B3FFB:: @ 2B3FFB - .string "MAY: Hi, {PLAYER}{STRING 5}!\n" + .string "MAY: Hi, {PLAYER}{KUN}!\n" .string "Did you see the news?\p" .string "They say CAPT. STERN discovered\n" .string "the SEAFLOOR CAVERN while on his\l" .string "submarine expedition.$" gText_May_Pokenav_2B402B:: @ 2B402B - .string "MAY: Hi, {PLAYER}{STRING 5}!\n" + .string "MAY: Hi, {PLAYER}{KUN}!\n" .string "Don't you think it's neat?\p" .string "Even if you don't have a boat,\n" .string "you can cross the sea using\l" @@ -2425,7 +2425,7 @@ gText_May_Pokenav_2B402B:: @ 2B402B .string "you go to the bottom of the sea.$" gText_May_Pokenav_2B414B:: @ 2B414B - .string "MAY: Hi, {PLAYER}{STRING 5}!\n" + .string "MAY: Hi, {PLAYER}{KUN}!\n" .string "Hope things are okay!\p" .string "Have you been on the sea and\n" .string "found your way to the other side\l" @@ -2436,7 +2436,7 @@ gText_May_Pokenav_2B414B:: @ 2B414B .string "come up to the surface. Easy!$" gText_May_Pokenav_2B4228:: @ 2B4228 - .string "MAY: Hi, {PLAYER}{STRING 5}!\p" + .string "MAY: Hi, {PLAYER}{KUN}!\p" .string "How's it going?\n" .string "Are you filling your POKéDEX?\p" .string "I heard a rumor that there are\n" @@ -2445,7 +2445,7 @@ gText_May_Pokenav_2B4228:: @ 2B4228 .string "I would love to see even one…$" gText_May_Pokenav_2B42E0:: @ 2B42E0 - .string "MAY: {PLAYER}{STRING 5}!\n" + .string "MAY: {PLAYER}{KUN}!\n" .string "I heard the rumors!\p" .string "You beat the SOOTOPOLIS GYM\n" .string "LEADER?\p" @@ -2455,9 +2455,9 @@ gText_May_Pokenav_2B42E0:: @ 2B42E0 gText_May_Pokenav_2B4350:: @ 2B4350 .string "MAY: There isn't a single TRAINER\n" .string "left in HOENN who doesn't know who\l" - .string "you are, {PLAYER}{STRING 5}!\p" + .string "you are, {PLAYER}{KUN}!\p" .string "When I tell people that I'm friends\n" - .string "with you, {PLAYER}{STRING 5}, they're all\l" + .string "with you, {PLAYER}{KUN}, they're all\l" .string "surprised!$" gText_Brendan_Pokenav_2B43EF:: @ 2B43EF @@ -2641,7 +2641,7 @@ gText_Wally_Pokenav_2B5100:: @ 2B5100 .string "Thank you…$" gText_Scott_Pokenav_2B5184:: @ 2B5184 - .string "SCOTT: Howdy, {PLAYER}{STRING 5}!\p" + .string "SCOTT: Howdy, {PLAYER}{KUN}!\p" .string "You know how POKéMON can be found\n" .string "everywhere?\p" .string "Like in the mountains, in the sea,\n" @@ -2660,7 +2660,7 @@ gText_Scott_Pokenav_2B5275:: @ 2B5275 .string "makes me all ticklish!$" gText_Scott_Pokenav_2B5323:: @ 2B5323 - .string "SCOTT: Hi, hi, {PLAYER}{STRING 5}!\p" + .string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p" .string "Have you had the chance to climb\n" .string "MT. PYRE?\p" .string "The place is a memorial to POKéMON\n" @@ -2669,7 +2669,7 @@ gText_Scott_Pokenav_2B5323:: @ 2B5323 .string "should climb to the top of once.$" gText_Scott_Pokenav_2B53DB:: @ 2B53DB - .string "SCOTT: Hi, {PLAYER}{STRING 5}!\p" + .string "SCOTT: Hi, {PLAYER}{KUN}!\p" .string "I've been hearing about these odd\n" .string "gangs being a nuisance.\p" .string "TEAM MAGMA and TEAM AQUA,\n" @@ -2679,7 +2679,7 @@ gText_Scott_Pokenav_2B53DB:: @ 2B53DB .string "…But if they're thugs…$" gText_Scott_Pokenav_2B54A5:: @ 2B54A5 - .string "SCOTT: Oh, hi, {PLAYER}{STRING 5}.\p" + .string "SCOTT: Oh, hi, {PLAYER}{KUN}.\p" .string "Might there be tough TRAINERS\n" .string "at the bottom of the sea?\p" .string "I can't go check for myself.\n" @@ -2687,7 +2687,7 @@ gText_Scott_Pokenav_2B54A5:: @ 2B54A5 .string "And I don't raise POKéMON…$" gText_Scott_Pokenav_2B5541:: @ 2B5541 - .string "SCOTT: Hi, hi, {PLAYER}{STRING 5}!\p" + .string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p" .string "You know that you can challenge\n" .string "the POKéMON LEAGUE when you've\l" .string "collected all the GYM BADGES?\p" @@ -2774,7 +2774,7 @@ gText_Norman_Pokenav_2B5B5E:: @ 82B5B5E .string "How much higher will you soar?$" gText_Steven_Pokenav_2B5B95:: @ 82B5B95 - .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p" + .string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "Have you been to MAUVILLE\n" .string "already?\p" .string "You should visit the BIKE SHOP\n" @@ -2785,14 +2785,14 @@ gText_Steven_Pokenav_2B5B95:: @ 82B5B95 .string "there.$" gText_Steven_Pokenav_2B5C53:: @ 82B5C53 - .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p" + .string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "I've met a lot of different\n" .string "TRAINERS so far.\p" .string "But you're one of a kind.\n" .string "You're not like anyone else.$" gText_Steven_Pokenav_2B5CC9:: @ 82B5CC9 - .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p" + .string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "When you're on an adventure with\n" .string "your POKéMON, what do you think?\p" .string "Do you consider them to be strong\n" @@ -2804,7 +2804,7 @@ gText_Steven_Pokenav_2B5CC9:: @ 82B5CC9 gText_Steven_Pokenav_2B5DB4:: @ 82B5DB4 .string "STEVEN: Hello?\n" - .string "{PLAYER}{STRING 5}?\p" + .string "{PLAYER}{KUN}?\p" .string "I'm involved in a spot of trouble\n" .string "at the SPACE CENTER.\p" .string "I'm sorry, but I can't talk now.\n" @@ -2812,7 +2812,7 @@ gText_Steven_Pokenav_2B5DB4:: @ 82B5DB4 gText_Steven_Pokenav_2B5E26:: @ 82B5E26 .string "STEVEN: Oh!\n" - .string "{PLAYER}{STRING 5}!\p" + .string "{PLAYER}{KUN}!\p" .string "There's no need to talk.\n" .string "It's past time for talking.\p" .string "You have to believe in yourself\n" @@ -2824,7 +2824,7 @@ gText_Steven_Pokenav_2B5EA2:: @ 82B5EA2 .string "the call…$" gText_Steven_Pokenav_2B5ED9:: @ 82B5ED9 - .string "STEVEN: {PLAYER}{STRING 5}… Congratulations\n" + .string "STEVEN: {PLAYER}{KUN}… Congratulations\n" .string "for entering the HALL OF FAME.\p" .string "… … … … … …\n" .string "… … … … … …\p" @@ -2851,7 +2851,7 @@ Route101_Text_2B603A: @ 82B603A .string "POKéMON becomes more fun, eh?$" gText_MrStone_Pokenav_2B60C0:: @ 82B60C0 - .string "MR. STONE: Oh? {PLAYER}{STRING 5}!\p" + .string "MR. STONE: Oh? {PLAYER}{KUN}!\p" .string "Since you called me, the POKéNAV\n" .string "must be working properly!\p" .string "Other people will be registered,\n" @@ -2866,7 +2866,7 @@ gText_MrStone_Pokenav_2B60C0:: @ 82B60C0 .string "See you again!$" gText_MrStone_Pokenav_2B61E6:: @ 82B61E6 - .string "MR. STONE: Oh? {PLAYER}{STRING 5}!\p" + .string "MR. STONE: Oh? {PLAYER}{KUN}!\p" .string "What's wrong? Have you forgotten\n" .string "about that little errand of mine?\p" .string "I need you to deliver my letter\n" @@ -2878,7 +2878,7 @@ gText_MrStone_Pokenav_2B61E6:: @ 82B61E6 .string "I have to go! Bye-bye!$" gText_MrStone_Pokenav_2B6302:: @ 82B6302 - .string "MR. STONE: Oh! {PLAYER}{STRING 5}!\p" + .string "MR. STONE: Oh! {PLAYER}{KUN}!\p" .string "Ah, so you've met STEVEN!\n" .string "I'd better reward you, then!\p" .string "When you visit RUSTBORO again,\n" @@ -2886,7 +2886,7 @@ gText_MrStone_Pokenav_2B6302:: @ 82B6302 .string "I'll be waiting for you!$" gText_MrStone_Pokenav_2B63A0:: @ 82B63A0 - .string "MR. STONE: Oh! {PLAYER}{STRING 5}!\p" + .string "MR. STONE: Oh! {PLAYER}{KUN}!\p" .string "Did you know that DEVON was\n" .string "digging the RUSTURF TUNNEL?\p" .string "But we shut down the operation to\n" @@ -2897,7 +2897,7 @@ gText_MrStone_Pokenav_2B63A0:: @ 82B63A0 .string "own convenience.$" gText_MrStone_Pokenav_2B64A2:: @ 82B64A2 - .string "MR. STONE: Hello, hello, {PLAYER}{STRING 5}!\p" + .string "MR. STONE: Hello, hello, {PLAYER}{KUN}!\p" .string "I heard from someone in PETALBURG\n" .string "that you're NORMAN's child!\p" .string "No wonder you're such a capable\n" @@ -2935,7 +2935,7 @@ gText_MrStone_Pokenav_2B66B1:: @ 82B66B1 .string "BZZZZ…$" gText_MrStone_Pokenav_2B6703:: @ 82B6703 - .string "MR. STONE: {PLAYER}{STRING 5}! It's me!\p" + .string "MR. STONE: {PLAYER}{KUN}! It's me!\p" .string "You were apparently involved in all\n" .string "sorts of things, but I, being busy,\l" .string "haven't a clue exactly what!\p" @@ -2946,7 +2946,7 @@ gText_MrStone_Pokenav_2B6703:: @ 82B6703 gText_MrStone_Pokenav_2B67ED:: @ 82B67ED .string "MR. STONE: … … … … … …\n" - .string "Is this maybe {PLAYER}{STRING 5}?\p" + .string "Is this maybe {PLAYER}{KUN}?\p" .string "Your voice is so full of confidence,\n" .string "I didn't recognize you right off!\p" .string "Hm! You must come visit us at DEVON\n" From 23979c4d7d6f7b10107f94781add4c9d3b0c7e52 Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Sun, 4 Aug 2019 04:22:19 -0400 Subject: [PATCH 14/29] initial documentation commit --- data/event_scripts.s | 28 +- .../LilycoveCity_PokemonCenter_1F/scripts.inc | 2 +- data/specials.inc | 20 +- include/global.h | 16 +- include/lilycove_lady.h | 2 +- include/strings.h | 25 + src/contest_painting.c | 2 +- src/lilycove_lady.c | 1099 +++++++++++------ src/scrcmd.c | 2 +- src/strings.c | 42 +- src/tv.c | 4 +- 11 files changed, 782 insertions(+), 460 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index ca8152e757..1952fae939 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -4281,7 +4281,7 @@ GraniteCave_B1F_Movement_2A8369: @ 82A8369 step_end LilycoveCity_PokemonCenter_1F_EventScript_2A836B:: @ 82A836B - special sub_818DAEC + special Script_GetLilycoveLadyId switch VAR_RESULT case 0, LilycoveCity_PokemonCenter_1F_EventScript_2A8554 case 1, LilycoveCity_PokemonCenter_1F_EventScript_2A8395 @@ -4307,7 +4307,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A83C6:: @ 82A83C6 end LilycoveCity_PokemonCenter_1F_EventScript_2A83D0:: @ 82A83D0 - special sub_818DC2C + special BufferFavorLadyDescription msgbox LilycoveCity_PokemonCenter_1F_Text_2A8A7D, MSGBOX_DEFAULT specialvar VAR_RESULT, sub_818DC60 compare VAR_RESULT, 0 @@ -4357,7 +4357,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A845E:: @ 82A845E LilycoveCity_PokemonCenter_1F_EventScript_2A846C:: @ 82A846C fadescreen 1 setvar VAR_RESULT, 0 - special sub_818DD78 + special OpenBagMenuForFavorLady waitstate compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A848E @@ -4382,7 +4382,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84AD:: @ 82A84AD end LilycoveCity_PokemonCenter_1F_EventScript_2A84C9:: @ 82A84C9 - special sub_818DC2C + special BufferFavorLadyDescription msgbox LilycoveCity_PokemonCenter_1F_Text_2A8C0F, MSGBOX_DEFAULT release end @@ -4396,13 +4396,13 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84D6:: @ 82A84D6 end LilycoveCity_PokemonCenter_1F_EventScript_2A84F2:: @ 82A84F2 - special sub_818DC2C + special BufferFavorLadyDescription msgbox LilycoveCity_PokemonCenter_1F_Text_2A8C6F, MSGBOX_DEFAULT release end LilycoveCity_PokemonCenter_1F_EventScript_2A84FF:: @ 82A84FF - special sub_818DC2C + special BufferFavorLadyDescription msgbox LilycoveCity_PokemonCenter_1F_Text_2A8CC8, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_2A8510 end @@ -4432,7 +4432,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8554:: @ 82A8554 lock faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_2A8E2B, MSGBOX_DEFAULT - specialvar VAR_RESULT, sub_818E038 + specialvar VAR_RESULT, GetQuizLadyPhase compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8585 compare VAR_RESULT, 1 @@ -4452,7 +4452,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8585:: @ 82A8585 end LilycoveCity_PokemonCenter_1F_EventScript_2A85AC:: @ 82A85AC - specialvar VAR_RESULT, sub_818E2D8 + specialvar VAR_RESULT, IsQuizLadyWaitingForChallenger compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8759 compare VAR_RESULT, 1 @@ -4489,7 +4489,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8612:: @ 82A8612 end LilycoveCity_PokemonCenter_1F_EventScript_2A861C:: @ 82A861C - special sub_818E3BC + special ClearQuizLadyResponse compare VAR_0x8004, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A864C compare VAR_0x8004, EASY_CHAT_TYPE_QUIZ_ANSWER @@ -4528,7 +4528,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A867F:: @ 82A867F end LilycoveCity_PokemonCenter_1F_EventScript_2A8689:: @ 82A8689 - special sub_818E37C + special SetQuizLadyPhase_MakeYourOwn msgbox LilycoveCity_PokemonCenter_1F_Text_2A8F4D, MSGBOX_DEFAULT specialvar VAR_RESULT, sub_818E308 compare VAR_RESULT, 0 @@ -4576,8 +4576,8 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8716:: @ 82A8716 LilycoveCity_PokemonCenter_1F_EventScript_2A8724:: @ 82A8724 setvar VAR_0x8005, 0 - special sub_818E358 - special sub_818E37C + special BufferQuizPrizeItem + special SetQuizLadyPhase_MakeYourOwn giveitem_std VAR_0x8005 compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A874C @@ -4586,7 +4586,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8724:: @ 82A8724 LilycoveCity_PokemonCenter_1F_EventScript_2A874C:: @ 82A874C msgbox LilycoveCity_PokemonCenter_1F_Text_2A906A, MSGBOX_DEFAULT - special sub_818E39C + special SetQuizLadyPhase_GivePrize release end @@ -4629,7 +4629,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A87AF:: @ 82A87AF LilycoveCity_PokemonCenter_1F_EventScript_2A87CE:: @ 82A87CE msgbox LilycoveCity_PokemonCenter_1F_Text_2A9270, MSGBOX_DEFAULT special sub_818E430 - special sub_818E3BC + special ClearQuizLadyResponse setvar VAR_0x8004, 16 LilycoveCity_PokemonCenter_1F_EventScript_2A87E1:: @ 82A87E1 diff --git a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc index 236eb3d234..c2e1deb5dc 100644 --- a/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc +++ b/data/maps/LilycoveCity_PokemonCenter_1F/scripts.inc @@ -9,7 +9,7 @@ LilycoveCity_PokemonCenter_1F_OnTransition: @ 821C5BD end LilycoveCity_PokemonCenter_1F_EventScript_21C5C6:: @ 821C5C6 - special sub_818D9C0 + special SetLilycoveLadyGfx compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_21C5E0 compare VAR_RESULT, 1 diff --git a/data/specials.inc b/data/specials.inc index 78a949df51..bf2d6621e9 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -372,30 +372,30 @@ gSpecials:: @ 81DBA64 def_special SetSecretBaseSecretsTvFlags_LargeDecorationSpot def_special SetSecretBaseSecretsTvFlags_SmallDecorationSpot def_special SetSecretBaseSecretsTvFlags_Poster - def_special sub_818D9C0 - def_special sub_818DAEC + def_special SetLilycoveLadyGfx + def_special Script_GetLilycoveLadyId def_special sub_818DBE8 - def_special sub_818DC2C + def_special BufferFavorLadyDescription def_special sub_818DC60 def_special sub_818DCC8 def_special sub_818DD14 def_special sub_818DD54 - def_special sub_818DD78 + def_special OpenBagMenuForFavorLady def_special sub_818DE44 def_special sub_818DE5C def_special sub_818DEA0 def_special sub_818DEDC - def_special sub_818E038 + def_special GetQuizLadyPhase def_special sub_818E06C - def_special sub_818E2D8 + def_special IsQuizLadyWaitingForChallenger def_special sub_811A858 def_special sub_818E2FC def_special sub_818E308 - def_special sub_818E358 - def_special sub_818E37C + def_special BufferQuizPrizeItem + def_special SetQuizLadyPhase_MakeYourOwn def_special sub_818E298 - def_special sub_818E39C - def_special sub_818E3BC + def_special SetQuizLadyPhase_GivePrize + def_special ClearQuizLadyResponse def_special sub_818E3E0 def_special sub_818E430 def_special sub_818E47C diff --git a/include/global.h b/include/global.h index 14377d8bbc..db80d81a0d 100644 --- a/include/global.h +++ b/include/global.h @@ -748,26 +748,26 @@ struct LilycoveLadyQuiz { /*0x000*/ u8 id; /*0x001*/ u8 phase; - /*0x002*/ u16 unk_002[9]; - /*0x014*/ u16 unk_014; - /*0x016*/ u16 unk_016; + /*0x002*/ u16 question[9]; + /*0x014*/ u16 answer; + /*0x016*/ u16 response; /*0x018*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x020*/ u16 playerTrainerId[4]; /*0x028*/ u16 itemId; - /*0x02a*/ u8 unk_02a; - /*0x02b*/ u8 unk_02b; - /*0x02c*/ u8 unk_02c; + /*0x02a*/ bool8 waitingForChallenger; + /*0x02b*/ u8 questionId; + /*0x02c*/ u8 prevQuestionId; /*0x02d*/ u8 language; }; -struct LilycoveLadyFavour +struct LilycoveLadyFavor { /*0x000*/ u8 id; /*0x001*/ u8 phase; /*0x002*/ u8 unk_002; /*0x003*/ u8 unk_003; /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; - /*0x00c*/ u8 unk_00c; + /*0x00c*/ u8 favorId; /*0x00e*/ u16 itemId; /*0x010*/ u16 unk_010; /*0x012*/ u8 language; diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index f26285d687..09a1b0c185 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -11,7 +11,7 @@ bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock); void sub_818E7E0(u8 *dest1, u8 *dest2); void sub_818E81C(u8 *dest); void sub_818E848(u8 *dest); -void sub_818E868(u8 *dest, u8 category); +void BufferContestName(u8 *dest, u8 category); u8 sub_818E880(void); #endif //GUARD_LILYCOVE_LADY_H diff --git a/include/strings.h b/include/strings.h index 7e7fcd322e..d6a2395591 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2744,6 +2744,31 @@ extern const u8 gText_JumpsInARow[]; extern const u8 gText_BestScore2[]; extern const u8 gText_ExcellentsInARow[]; +// Lilycove Lady +extern const u8 gText_Handsome[]; +extern const u8 gText_Vinny[]; +extern const u8 gText_Moreme[]; +extern const u8 gText_Ironhard[]; +extern const u8 gText_Muscle[]; +extern const u8 gText_Coolness[]; +extern const u8 gText_Beauty[]; +extern const u8 gText_Cuteness[]; +extern const u8 gText_Smartness[]; +extern const u8 gText_Toughness[]; +extern const u8 gText_Lady2[]; +extern const u8 gText_Slippery[]; +extern const u8 gText_Roundish[]; +extern const u8 gText_Whamish[]; +extern const u8 gText_Shiny[]; +extern const u8 gText_Sticky[]; +extern const u8 gText_Pointy[]; + +extern const u8 gText_CoolnessContest[]; +extern const u8 gText_BeautyContest[]; +extern const u8 gText_CutenessContest[]; +extern const u8 gText_SmartnessContest[]; +extern const u8 gText_ToughnessContest[]; + // Pokenav Match Call extern const u8 gText_CallCantBeMadeHere[]; extern const u8 gText_NumberRegistered[]; diff --git a/src/contest_painting.c b/src/contest_painting.c index 66127cbbcc..1b95e1ed99 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -292,7 +292,7 @@ static void PrintContestPaintingCaption(u8 contestType, u8 arg1) category = gUnknown_030061C0->contestCategory; if (contestType < 8) { - sub_818E868(gStringVar1, category); + BufferContestName(gStringVar1, category); StringAppend(gStringVar1, gText_Space); StringAppend(gStringVar1, gContestRankTextPointers[gUnknown_030061C0->contestRank]); StringCopy(gStringVar2, gUnknown_030061C0->trainerName); diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index dc38d88485..b4557f1c05 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -1,7 +1,3 @@ -// -// Created by Scott Norton on 9/19/17. -// - #include "global.h" #include "main.h" #include "overworld.h" @@ -18,215 +14,511 @@ #include "text.h" #include "easy_chat.h" #include "lilycove_lady.h" +#include "contest.h" +#include "berry.h" +#include "strings.h" +#include "constants/easy_chat.h" +#include "constants/event_objects.h" +#include "constants/items.h" -static void SetLilycoveQuizLady(void); -static void SetLilycoveFavourLady(void); -static void SetLilycoveContestLady(void); +enum +{ + QUIZ_AUTHOR_LADY, + QUIZ_AUTHOR_PLAYER, + QUIZ_AUTHOR_OTHER_PLAYER +}; + +enum +{ + QUIZ_PHASE_ATTEMPT_QUIZ, + QUIZ_PHASE_MAKE_YOUR_OWN, + QUIZ_PHASE_GIVE_PRIZE +}; + + +//TODO name phases + +static void InitLilycoveQuizLady(void); +static void InitLilycoveFavourLady(void); +static void InitLilycoveContestLady(void); static void sub_818E004(void); static void sub_818DBC4(void); static void sub_818E674(void); -static u8 sub_818E13C(void); -static bool8 sub_818E1F4(void); -static u8 sub_818E258(const u8 *); +static u8 BufferAuthorName(void); +static bool8 IsQuizTrainerIdNotPlayer(void); +static u8 GetPlayerNameLength(const u8 *); -extern const u8 gText_Lady2[]; - -static const u16 sUnknown_0860B074[] = { - 0x62, 0xcb, 0xdc, 0xcc, 0xd1 -}; -static const u16 sUnknown_0860B07E[] = { - 0x1a, 0x14, 0x0a +static const u16 sContestLadyMonGfxId[] = +{ + EVENT_OBJ_GFX_ZIGZAGOON_1, + EVENT_OBJ_GFX_SKITTY, + EVENT_OBJ_GFX_POOCHYENA, + EVENT_OBJ_GFX_KECLEON_1, + EVENT_OBJ_GFX_PIKACHU }; -static const u16 Unknown_0860B084[] = { - 0x101b, 0x1623, 0x1812, 0x102c, 0x020e, 0x0c03, 0x1a0b, 0x0210, 0x020d +static const u16 sLilycoveLadyGfxId[] = +{ + EVENT_OBJ_GFX_WOMAN_4, + EVENT_OBJ_GFX_WOMAN_2, + EVENT_OBJ_GFX_GIRL_2 }; -static const u16 Unknown_0860B096[] = { - 0x101b, 0x1013, 0x1020, 0x1a0f, 0x020c, 0x0c03, 0x0211, 0x0203, 0x0400 +// Quiz Lady data +static const u16 sQuizLadyQuestion1[] = +{ + EC_WORD_WHICH, + EC_WORD_STORES, + EC_WORD_INFORMATION, + EC_WORD_ON, + EC_WORD_POKEMON, + EC_WORD_QUES, + EC_WORD_CAMERA, + EC_WORD_POKEDEX, + EC_WORD_POKENAV }; -static const u16 Unknown_0860B0A8[] = { - 0x0e0f, 0x1018, 0x020e, 0x0204, 0x0c03, 0xffff, 0x0212, 0x0451, 0x0463 +static const u16 sQuizLadyQuestion2[] = +{ + EC_WORD_WHICH, + EC_WORD_ISN_T, + EC_WORD_A, + EC_WORD_GAME, + EC_WORD_VERSION, + EC_WORD_QUES, + EC_WORD_RUBY, + EC_WORD_SAPPHIRE, + EC_WORD_DARK }; -static const u16 Unknown_0860B0BA[] = { - 0x101b, 0x100b, 0x0e0d, 0x141a, 0x181d, 0x0c03, 0x141e, 0x1a26, 0x1823 +static const u16 sQuizLadyQuestion3[] = +{ + EC_WORD_HOW, + EC_WORD_DO, + EC_WORD_POKEMON, + EC_WORD_EVOLVE, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_LEVEL, + EC_WORD_INSOMNIA, + EC_WORD_CUTE_CHARM }; -static const u16 Unknown_0860B0CC[] = { - 0x101b, 0x181d, 0x1018, 0x0a02, 0x2014, 0x0c03, 0x0208, 0x1824, 0x181c +static const u16 sQuizLadyQuestion4[] = +{ + EC_WORD_WHICH, + EC_WORD_IS, + EC_WORD_THE, + EC_WORD_PRETTY, + EC_WORD_ITEM, + EC_WORD_QUES, + EC_WORD_COLD, + EC_WORD_FLOWERS, + EC_WORD_MACHINE }; -static const u16 Unknown_0860B0DE[] = { - 0x101b, 0x1000, 0x1c19, 0x265d, 0x0c03, 0xffff, 0x0447, 0x045d, 0x042c +static const u16 sQuizLadyQuestion5[] = +{ + EC_WORD_WHICH, + EC_WORD_ITEM, + EC_WORD_DO, + EC_WORD_YOU, + EC_WORD_BREAK, + EC_WORD_QUES, + EC_WORD_EGG, + EC_WORD_MAIL, + EC_WORD_PHONE }; -static const u16 Unknown_0860B0F0[] = { - 0x101b, 0x1034, 0x1e11, 0x100b, 0x1a08, 0x0c03, 0x044b, 0x0446, 0x040a +static const u16 sQuizLadyQuestion6[] = +{ + EC_WORD_WHICH, + EC_WORD_WILL, + EC_WORD_STOP, + EC_MOVE2(CONFUSION), + EC_WORD_QUES, + 0xFFFF, + EC_WORD_ILLUMINATE, + EC_WORD_OWN_TEMPO, + EC_WORD_SWIFT_SWIM }; -static const u16 Unknown_0860B102[] = { - 0x101b, 0x1000, 0x274f, 0x0626, 0x0c03, 0xffff, 0x0442, 0x0411, 0x0450 +static const u16 sQuizLadyQuestion7[] = +{ + EC_WORD_WHICH, + EC_WORD_OF, + EC_WORD_THESE, + EC_WORD_IS, + EC_WORD_MUSIC, + EC_WORD_QUES, + EC_WORD_FLYING, + EC_WORD_STEEL, + EC_WORD_ROCK }; -static const u16 Unknown_0860B114[] = { - 0x101b, 0x1000, 0x1c19, 0x043c, 0x0c03, 0xffff, 0x0421, 0x0464, 0x0435 +static const u16 sQuizLadyQuestion8[] = +{ + EC_WORD_WHICH, + EC_WORD_WILL, + EC_MOVE2(BLOCK), + EC_WORD_ESCAPE, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_RUN_AWAY, + EC_WORD_SHADOW_TAG, + EC_WORD_WONDER_GUARD }; -static const u16 Unknown_0860B126[] = { - 0x101b, 0x1203, 0x1030, 0x0207, 0x0c03, 0xffff, 0x0210, 0x020e, 0x020d +static const u16 sQuizLadyQuestion9[] = +{ + EC_WORD_WHICH, + EC_WORD_WILL, + EC_WORD_STOP, + EC_WORD_POISON, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_GUTS, + EC_WORD_IMMUNITY, + EC_WORD_SHED_SKIN }; -static const u16 Unknown_0860B138[] = { - 0x101b, 0x1623, 0x0a05, 0x020e, 0x0c03, 0xffff, 0x1a25, 0x181a, 0x181b +static const u16 sQuizLadyQuestion10[] = +{ + EC_WORD_WHICH, + EC_WORD_GOES, + EC_WORD_WITH, + EC_WORD_CENTER, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_POKEDEX, + EC_WORD_POKEMON, + EC_WORD_POKENAV }; -static const u16 Unknown_0860B14A[] = { - 0x101b, 0x1823, 0x1603, 0x0a02, 0x1812, 0x0c03, 0x1a15, 0x1a23, 0x181b +static const u16 sQuizLadyQuestion11[] = +{ + EC_WORD_WHICH, + EC_WORD_STORES, + EC_WORD_YOUR, + EC_WORD_POKEMON, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_PC, + EC_WORD_DEPT_STORE, + EC_WORD_TELEVISION }; -static const u16 Unknown_0860B15C[] = { - 0x1020, 0x020e, 0x1010, 0x1043, 0x1e0f, 0x0c03, 0x181c, 0x1a24, 0x1816 +static const u16 sQuizLadyQuestion12[] = +{ + EC_WORD_WHICH, + EC_WORD_MACHINE, + EC_WORD_GIVES, + EC_WORD_YOU, + EC_WORD_INFORMATION, + EC_WORD_QUES, + EC_WORD_BIKE, + EC_WORD_LOCOMOTIVE, + EC_WORD_TELEVISION }; -static const u16 Unknown_0860B16E[] = { - 0x0446, 0x100b, 0x0620, 0x061c, 0x101b, 0x0c03, 0x0420, 0x0426, 0xffff +static const u16 sQuizLadyQuestion13[] = +{ + EC_WORD_A, + EC_WORD_POKEMON, + EC_WORD_WAS, + EC_WORD_ONCE, + EC_WORD_THIS, + EC_WORD_QUES, + EC_WORD_PHONE, + EC_WORD_PLUSH_DOLL, + EC_WORD_LETTER }; -static const u16 Unknown_0860B180[] = { - 0x0400, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x040e, 0x0410, 0xffff +static const u16 sQuizLadyQuestion14[] = +{ + EC_WORD_STEEL, + EC_WORD_IS, + EC_WORD_STRONG, + EC_WORD_VERSUS, + EC_WORD_WHICH, + EC_WORD_QUES, + EC_WORD_ICE, + EC_WORD_GROUND, + 0xFFFF }; -static const u16 Unknown_0860B192[] = { - 0x041f, 0x100b, 0x0639, 0x061c, 0x101b, 0x0c03, 0x0445, 0x0400, 0xffff +static const u16 sQuizLadyQuestion15[] = +{ + EC_WORD_DARK, + EC_WORD_IS, + EC_WORD_WEAK, + EC_WORD_VERSUS, + EC_WORD_WHICH, + EC_WORD_QUES, + EC_WORD_PSYCHIC, + EC_WORD_FIGHTING, + 0xFFFF }; -static const u16 *const gUnknown_0860B1A4[] = { - Unknown_0860B084, - Unknown_0860B096, - Unknown_0860B0A8, - Unknown_0860B0BA, - Unknown_0860B0CC, - Unknown_0860B0DE, - Unknown_0860B0F0, - Unknown_0860B102, - Unknown_0860B114, - Unknown_0860B126, - Unknown_0860B138, - Unknown_0860B14A, - Unknown_0860B15C, - Unknown_0860B16E, - Unknown_0860B180, - Unknown_0860B192 +static const u16 sQuizLadyQuestion16[] = +{ + EC_WORD_GHOST, + EC_WORD_IS, + EC_WORD_WEAK, + EC_WORD_VERSUS, + EC_WORD_WHICH, + EC_WORD_QUES, + EC_WORD_NORMAL, + EC_WORD_DARK, + 0xFFFF }; -static const u16 sUnknown_0860B1E4[] = { - 0x0210, 0x0400, 0x0212, 0x1a26, 0x0208, 0x045d, 0x040a, 0x0411, 0x0464, 0x020e, 0x1a25, 0x181b, 0x1a24, 0x0420, 0x0410, 0x0400 +static const u16 *const sQuizLadyQuizQuestions[] = +{ + sQuizLadyQuestion1, + sQuizLadyQuestion2, + sQuizLadyQuestion3, + sQuizLadyQuestion4, + sQuizLadyQuestion5, + sQuizLadyQuestion6, + sQuizLadyQuestion7, + sQuizLadyQuestion8, + sQuizLadyQuestion9, + sQuizLadyQuestion10, + sQuizLadyQuestion11, + sQuizLadyQuestion12, + sQuizLadyQuestion13, + sQuizLadyQuestion14, + sQuizLadyQuestion15, + sQuizLadyQuestion16 }; -static const u16 sUnknown_0860B204[] = { - 0x007b, 0x007f, 0x0081, 0x0023, 0x0023, 0x0023, 0x00a5, 0x00a7, 0x00a6, 0x000b, 0x012f, 0x006b, 0x006d, 0x0044, 0x0044, 0x000c +static const u16 sQuizLadyQuizAnswers[] = +{ + EC_WORD_POKEDEX, + EC_WORD_DARK, + EC_WORD_LEVEL, + EC_WORD_FLOWERS, + EC_WORD_EGG, + EC_WORD_OWN_TEMPO, + EC_WORD_ROCK, + EC_WORD_SHADOW_TAG, + EC_WORD_IMMUNITY, + EC_WORD_POKEMON, + EC_WORD_PC, + EC_WORD_TELEVISION, + EC_WORD_PLUSH_DOLL, + EC_WORD_ICE, + EC_WORD_FIGHTING, + EC_WORD_DARK // DARK is accepted as the correct answer despite the fact that it's wrong }; -extern const u8 gUnknown_085EEB83[]; -extern const u8 gUnknown_085EEB8C[]; -extern const u8 gUnknown_085EEB95[]; -extern const u8 gUnknown_085EEB9E[]; -extern const u8 gUnknown_085EEBA4[]; -extern const u8 gUnknown_085EEBAB[]; - -static const u8 *const gUnknown_0860B224[] = { - gUnknown_085EEB83, - gUnknown_085EEB8C, - gUnknown_085EEB95, - gUnknown_085EEB9E, - gUnknown_085EEBA4, - gUnknown_085EEBAB +static const u16 sQuizLadyPrizes[] = +{ + ITEM_GLITTER_MAIL, + ITEM_BEAD_MAIL, + ITEM_TROPIC_MAIL, + ITEM_MAX_ETHER, + ITEM_MAX_ETHER, + ITEM_MAX_ETHER, + ITEM_WATMEL_BERRY, + ITEM_BELUE_BERRY, + ITEM_DURIN_BERRY, + ITEM_LUXURY_BALL, + ITEM_TM15_HYPER_BEAM, + ITEM_BIG_PEARL, + ITEM_STAR_PIECE, + ITEM_RARE_CANDY, + ITEM_RARE_CANDY, + ITEM_PREMIER_BALL }; -static const u16 Unknown_0860B23C[] = { - 0x0056, 0x0053, 0x0054, 0x000e, 0x0012, 0x000f, 0x00a7, 0x0011, 0x0010, 0x0018, 0x0019, 0x001e, 0x0000 +#define QUIZ_QUESTION_LEN ARRAY_COUNT(sQuizLadyQuestion1) // +#define QUIZ_QUESTION_NUM ARRAY_COUNT(sQuizLadyQuizQuestions) + +// Favor Lady data +static const u8 *const sFavorLadyDescriptions[] = +{ + gText_Slippery, + gText_Roundish, + gText_Whamish, + gText_Shiny, + gText_Sticky, + gText_Pointy }; -static const u16 Unknown_0860B256[] = { - 0x0051, 0x006a, 0x006b, 0x00cc, 0x00c2, 0x002f, 0x0067, 0x0068, 0x0087, 0x0089, 0x008b, 0x009d, 0x00a0, 0x00a5, 0x0004, 0x0002, 0x0000 +static const u16 sFavorLadyAcceptedItems_Slippery[] = +{ + ITEM_REPEL, + ITEM_SUPER_REPEL, + ITEM_MAX_REPEL, + ITEM_ANTIDOTE, + ITEM_PARALYZE_HEAL, + ITEM_BURN_HEAL, + ITEM_BELUE_BERRY, + ITEM_LUXURY_BALL, + ITEM_TIMER_BALL, + ITEM_REVIVE, + ITEM_MAX_REVIVE, + ITEM_ENERGY_POWDER, + ITEM_NONE }; -static const u16 Unknown_0860B278[] = { - 0x0021, 0x000d, 0x001a, 0x001b, 0x001c, 0x00cc, 0x00ca, 0x0026, 0x0086, 0x0096, 0x0097, 0x009a, 0x00a2, 0x00a6, 0x0000 +static const u16 sFavorLadyAcceptedItems_Roundish[] = +{ + ITEM_FLUFFY_TAIL, + ITEM_PEARL, + ITEM_BIG_PEARL, + ITEM_HARD_STONE, + ITEM_SMOKE_BALL, + ITEM_SHOAL_SHELL, + ITEM_TINY_MUSHROOM, + ITEM_BIG_MUSHROOM, + ITEM_PECHA_BERRY, + ITEM_ASPEAR_BERRY, + ITEM_ORAN_BERRY, + ITEM_GREPA_BERRY, + ITEM_MAGOST_BERRY, + ITEM_WATMEL_BERRY, + ITEM_POKE_BALL, + ITEM_ULTRA_BALL, + ITEM_NONE }; -static const u16 Unknown_0860B296[] = { - 0x0020, 0x004d, 0x004b, 0x004c, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x006e, 0x005d, 0x006c, 0x006d, 0x006a, 0x006b, 0x00d6, 0x00bc, 0x00b3, 0x000b, 0x000c, 0x0000 +static const u16 sFavorLadyAcceptedItems_Whamish[] = +{ + ITEM_REVIVAL_HERB, + ITEM_POTION, + ITEM_FRESH_WATER, + ITEM_SODA_POP, + ITEM_LEMONADE, + ITEM_HARD_STONE, + ITEM_LIGHT_BALL, + ITEM_LAVA_COOKIE, + ITEM_CHESTO_BERRY, + ITEM_NANAB_BERRY, + ITEM_WEPEAR_BERRY, + ITEM_KELPSY_BERRY, + ITEM_NOMEL_BERRY, + ITEM_DURIN_BERRY, + ITEM_NONE }; -static const u16 Unknown_0860B2C0[] = { - 0x001f, 0x0013, 0x0014, 0x004a, 0x004e, 0x0049, 0x00a5, 0x00c8, 0x0067, 0x006f, 0x0000 +static const u16 sFavorLadyAcceptedItems_Shiny[] = +{ + ITEM_HEAL_POWDER, + ITEM_X_SPEED, + ITEM_X_ATTACK, + ITEM_X_DEFEND, + ITEM_BLUE_FLUTE, + ITEM_YELLOW_FLUTE, + ITEM_RED_FLUTE, + ITEM_BLACK_FLUTE, + ITEM_WHITE_FLUTE, + ITEM_NUGGET, + ITEM_SUN_STONE, + ITEM_STARDUST, + ITEM_STAR_PIECE, + ITEM_PEARL, + ITEM_BIG_PEARL, + ITEM_TWISTED_SPOON, + ITEM_SILVER_POWDER, + ITEM_BRIGHT_POWDER, + ITEM_LUXURY_BALL, + ITEM_PREMIER_BALL, + ITEM_NONE }; -static const u16 Unknown_0860B2D6[] = { - 0x00b7, 0x00d3, 0x00d2, 0x00d8, 0x009e, 0x00a6, 0x00ab, 0x00aa, 0x006c, 0x006d, 0x0000 +static const u16 sFavorLadyAcceptedItems_Sticky[] = +{ + ITEM_ENERGY_ROOT, + ITEM_FULL_RESTORE, + ITEM_MAX_POTION, + ITEM_DIRE_HIT, + ITEM_X_ACCURACY, + ITEM_GUARD_SPEC, + ITEM_WATMEL_BERRY, + ITEM_LEFTOVERS, + ITEM_TINY_MUSHROOM, + ITEM_HEART_SCALE, + ITEM_NONE }; -static const u16 *const gUnknown_0860B2EC[] = { - Unknown_0860B23C, - Unknown_0860B256, - Unknown_0860B278, - Unknown_0860B296, - Unknown_0860B2C0, - Unknown_0860B2D6 +static const u16 sFavorLadyAcceptedItems_Pointy[] = +{ + ITEM_QUICK_CLAW, + ITEM_POISON_BARB, + ITEM_SHARP_BEAK, + ITEM_DRAGON_FANG, + ITEM_TAMATO_BERRY, + ITEM_DURIN_BERRY, + ITEM_PETAYA_BERRY, + ITEM_SALAC_BERRY, + ITEM_STARDUST, + ITEM_STAR_PIECE, + ITEM_NONE }; -static const u16 sUnknown_0860B304[] = { - 0x0b, 0x6e, 0x40, 0x6f, 0x44, 0x47 +static const u16 *const sFavorLadyAcceptedItemLists[] = +{ + sFavorLadyAcceptedItems_Slippery, + sFavorLadyAcceptedItems_Roundish, + sFavorLadyAcceptedItems_Whamish, + sFavorLadyAcceptedItems_Shiny, + sFavorLadyAcceptedItems_Sticky, + sFavorLadyAcceptedItems_Pointy }; -extern const u8 gUnknown_085EEB2B[]; -extern const u8 gUnknown_085EEB34[]; -extern const u8 gUnknown_085EEB3A[]; -extern const u8 gUnknown_085EEB41[]; -extern const u8 gUnknown_085EEB4A[]; -extern const u8 gUnknown_085EEB51[]; -extern const u8 gUnknown_085EEB5A[]; -extern const u8 gUnknown_085EEB61[]; -extern const u8 gUnknown_085EEB6A[]; -extern const u8 gUnknown_085EEB74[]; -extern const u8 gUnknown_085EADA4[]; -extern const u8 gUnknown_085EADB5[]; -extern const u8 gUnknown_085EADC4[]; -extern const u8 gUnknown_085EADD5[]; -extern const u8 gUnknown_085EADE7[]; - -static const u8 *const gUnknown_0860B310[] = { - gUnknown_085EEB2B, - gUnknown_085EEB34, - gUnknown_085EEB3A, - gUnknown_085EEB41, - gUnknown_085EEB4A -}; -static const u8 *const gUnknown_0860B324[] = { - gUnknown_085EEB51, - gUnknown_085EEB5A, - gUnknown_085EEB61, - gUnknown_085EEB6A, - gUnknown_085EEB74 -}; -static const u8 *const gUnknown_0860B338[] = { - gUnknown_085EADA4, - gUnknown_085EADB5, - gUnknown_085EADC4, - gUnknown_085EADD5, - gUnknown_085EADE7 +static const u16 sFavorLadyPrizes[] = +{ + ITEM_LUXURY_BALL, + ITEM_NUGGET, + ITEM_PROTEIN, + ITEM_HEART_SCALE, + ITEM_RARE_CANDY, + ITEM_PP_MAX }; -static const u16 sUnknown_0860B34C[] = { - 0x0120, 0x013b, 0x011e, 0x013d, 0x0019 + +static const u8 *const sContestLadyMonNames[] = +{ + gText_Handsome, + gText_Vinny, + gText_Moreme, + gText_Ironhard, + gText_Muscle }; -static EWRAM_DATA struct LilycoveLadyFavour *gUnknown_0203CD64 = NULL; -static EWRAM_DATA struct LilycoveLadyQuiz *gUnknown_0203CD68 = NULL; -static EWRAM_DATA struct LilycoveLadyContest *gUnknown_0203CD6C = NULL; +static const u8 *const sContestLadyCategoryNames[] = +{ + gText_Coolness, + gText_Beauty, + gText_Cuteness, + gText_Smartness, + gText_Toughness +}; + +static const u8 *const sContestNames[] = +{ + gText_CoolnessContest, + gText_BeautyContest, + gText_CutenessContest, + gText_SmartnessContest, + gText_ToughnessContest +}; + +static const u16 sContestLadyMonSpecies[] = +{ + SPECIES_ZIGZAGOON, + SPECIES_SKITTY, + SPECIES_POOCHYENA, + SPECIES_KECLEON, + SPECIES_PIKACHU +}; + +static EWRAM_DATA struct LilycoveLadyFavor *sFavorLadyPtr = NULL; +static EWRAM_DATA struct LilycoveLadyQuiz *sQuizLadyPtr = NULL; +static EWRAM_DATA struct LilycoveLadyContest *sContestLadyPtr = NULL; extern EWRAM_DATA u16 gSpecialVar_ItemId; @@ -235,15 +527,15 @@ u8 GetLilycoveLadyId(void) return gSaveBlock1Ptr->lilycoveLady.id; } -void sub_818D9C0(void) +void SetLilycoveLadyGfx(void) { LilycoveLady *lilycoveLady; - VarSet(VAR_OBJ_GFX_ID_0, sUnknown_0860B07E[GetLilycoveLadyId()]); + VarSet(VAR_OBJ_GFX_ID_0, sLilycoveLadyGfxId[GetLilycoveLadyId()]); if (GetLilycoveLadyId() == LILYCOVE_LADY_CONTEST) { lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; - VarSet(VAR_OBJ_GFX_ID_1, sUnknown_0860B074[lilycoveLady->contest.category]); + VarSet(VAR_OBJ_GFX_ID_1, sContestLadyMonGfxId[lilycoveLady->contest.category]); gSpecialVar_Result = TRUE; } else @@ -262,13 +554,13 @@ void SetLilycoveLady(void) switch (id) { case LILYCOVE_LADY_QUIZ: - SetLilycoveQuizLady(); + InitLilycoveQuizLady(); break; case LILYCOVE_LADY_FAVOUR: - SetLilycoveFavourLady(); + InitLilycoveFavourLady(); break; case LILYCOVE_LADY_CONTEST: - SetLilycoveContestLady(); + InitLilycoveContestLady(); break; } } @@ -297,28 +589,28 @@ void SetLilycoveLadyRandomly(void) switch (id) { case LILYCOVE_LADY_QUIZ: - SetLilycoveQuizLady(); + InitLilycoveQuizLady(); break; case LILYCOVE_LADY_FAVOUR: - SetLilycoveFavourLady(); + InitLilycoveFavourLady(); break; case LILYCOVE_LADY_CONTEST: - SetLilycoveContestLady(); + InitLilycoveContestLady(); break; } } -void sub_818DAEC(void) +void Script_GetLilycoveLadyId(void) { gSpecialVar_Result = GetLilycoveLadyId(); } -static u8 sub_818DB04(const u16 *data) +static u8 GetNumAcceptedItems(const u16 *itemsArray) { - u8 len; + u8 items; - for (len = 0; *data != 0; len ++, data ++); - return len; + for (items = 0; *itemsArray != ITEM_NONE; items ++, itemsArray ++); + return items; } static void sub_818DB20(void) @@ -326,40 +618,40 @@ static void sub_818DB20(void) u8 size; u8 idx; - gUnknown_0203CD64->unk_00c = Random() % 6; - size = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c]); + sFavorLadyPtr->favorId = Random() % 6; + size = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]); idx = Random() % size; - gUnknown_0203CD64->unk_010 = gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c][idx]; + sFavorLadyPtr->unk_010 = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][idx]; } -static void SetLilycoveFavourLady(void) +static void InitLilycoveFavourLady(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; - gUnknown_0203CD64->phase = 0; - gUnknown_0203CD64->playerName[0] = EOS; - gUnknown_0203CD64->unk_002 = 0; - gUnknown_0203CD64->unk_003= 0; - gUnknown_0203CD64->itemId = ITEM_NONE; - gUnknown_0203CD64->language = gGameLanguage; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr->id = LILYCOVE_LADY_FAVOUR; + sFavorLadyPtr->phase = 0; + sFavorLadyPtr->playerName[0] = EOS; + sFavorLadyPtr->unk_002 = 0; + sFavorLadyPtr->unk_003= 0; + sFavorLadyPtr->itemId = ITEM_NONE; + sFavorLadyPtr->language = gGameLanguage; sub_818DB20(); } static void sub_818DBC4(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - gUnknown_0203CD64->id = LILYCOVE_LADY_FAVOUR; - gUnknown_0203CD64->phase = 0; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr->id = LILYCOVE_LADY_FAVOUR; + sFavorLadyPtr->phase = 0; } u8 sub_818DBE8(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - if (gUnknown_0203CD64->phase == 2) + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + if (sFavorLadyPtr->phase == 2) { return 2; } - else if (gUnknown_0203CD64->phase == 1) + else if (sFavorLadyPtr->phase == 1) { return 1; } @@ -369,38 +661,38 @@ u8 sub_818DBE8(void) } } -static const u8 *sub_818DC1C(u8 idx) +static const u8 *GetFavorLadyDescription(u8 idx) { - return gUnknown_0860B224[idx]; + return sFavorLadyDescriptions[idx]; } -void sub_818DC2C(void) +void BufferFavorLadyDescription(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - StringCopy(gStringVar1, sub_818DC1C(gUnknown_0203CD64->unk_00c)); + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + StringCopy(gStringVar1, GetFavorLadyDescription(sFavorLadyPtr->favorId)); } bool8 sub_818DC60(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - if (gUnknown_0203CD64->playerName[0] != EOS) + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + if (sFavorLadyPtr->playerName[0] != EOS) { - StringCopy7(gStringVar3, gUnknown_0203CD64->playerName); - ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); + StringCopy7(gStringVar3, sFavorLadyPtr->playerName); + ConvertInternationalString(gStringVar3, sFavorLadyPtr->language); return TRUE; } return FALSE; } -static void sub_818DCAC(u8 *dest, u16 itemId) +static void BufferItemName(u8 *dest, u16 itemId) { StringCopy(dest, ItemId_GetName(itemId)); } void sub_818DCC8(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - sub_818DCAC(gStringVar2, gUnknown_0203CD64->itemId); + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + BufferItemName(gStringVar2, sFavorLadyPtr->itemId); } static void sub_818DCF4(const u8 *src, u8 *dest) @@ -411,50 +703,50 @@ static void sub_818DCF4(const u8 *src, u8 *dest) void sub_818DD14(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - sub_818DCF4(gUnknown_0203CD64->playerName, gStringVar3); - ConvertInternationalString(gStringVar3, gUnknown_0203CD64->language); + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sub_818DCF4(sFavorLadyPtr->playerName, gStringVar3); + ConvertInternationalString(gStringVar3, sFavorLadyPtr->language); } bool8 sub_818DD54(void) { - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - return gUnknown_0203CD64->unk_002 ? TRUE : FALSE; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + return sFavorLadyPtr->unk_002 ? TRUE : FALSE; } -void sub_818DD78(void) +void OpenBagMenuForFavorLady(void) { sub_81AAC50(); } static bool8 sub_818DD84(u16 itemId) { - u8 len; + u8 numItems; u8 i; bool8 response; - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - len = sub_818DB04(gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c]); - gUnknown_0203CD64->phase = 1; - sub_818DCAC(gStringVar2, itemId); - gUnknown_0203CD64->itemId = itemId; - sub_818DCF4(gSaveBlock2Ptr->playerName, gUnknown_0203CD64->playerName); - gUnknown_0203CD64->language = gGameLanguage; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + numItems = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]); + sFavorLadyPtr->phase = 1; + BufferItemName(gStringVar2, itemId); + sFavorLadyPtr->itemId = itemId; + sub_818DCF4(gSaveBlock2Ptr->playerName, sFavorLadyPtr->playerName); + sFavorLadyPtr->language = gGameLanguage; response = FALSE; - for (i = 0; i < len; i ++) + for (i = 0; i < numItems; i ++) { - if (gUnknown_0860B2EC[gUnknown_0203CD64->unk_00c][i] == itemId) + if (sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][i] == itemId) { response = TRUE; - gUnknown_0203CD64->unk_003 ++; - gUnknown_0203CD64->unk_002 = 1; - if (gUnknown_0203CD64->unk_010 == itemId) + sFavorLadyPtr->unk_003 ++; + sFavorLadyPtr->unk_002 = 1; + if (sFavorLadyPtr->unk_010 == itemId) { - gUnknown_0203CD64->unk_003 = 5; + sFavorLadyPtr->unk_003 = 5; } break; } - gUnknown_0203CD64->unk_002 = 0; + sFavorLadyPtr->unk_002 = 0; } return response; } @@ -468,31 +760,31 @@ bool8 sub_818DE5C(void) { u8 checkval; - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - checkval = gUnknown_0203CD64->unk_003; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + checkval = sFavorLadyPtr->unk_003; return checkval < 5 ? FALSE : TRUE; } -static void sub_818DE88(u16 itemId) +static void BufferPrizeName(u16 itemId) { - sub_818DCAC(gStringVar2, itemId); + BufferItemName(gStringVar2, itemId); } u16 sub_818DEA0(void) { u16 itemId; - gUnknown_0203CD64 = &gSaveBlock1Ptr->lilycoveLady.favour; - itemId = sUnknown_0860B304[gUnknown_0203CD64->unk_00c]; - sub_818DE88(itemId); - gUnknown_0203CD64->phase = 2; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + itemId = sFavorLadyPrizes[sFavorLadyPtr->favorId]; + BufferPrizeName(itemId); + sFavorLadyPtr->phase = 2; return itemId; } void sub_818DEDC(void) { - SetLilycoveFavourLady(); - gUnknown_0203CD64->phase = 1; + InitLilycoveFavourLady(); + sFavorLadyPtr->phase = 1; } void sub_818DEF4(void) @@ -500,105 +792,108 @@ void sub_818DEF4(void) EnableBothScriptContexts(); } -static void sub_818DF00(void) +static void PickQuizQuestion(void) { - u8 v0; + u8 questionId; u8 i; - v0 = Random() % 16; - for (i = 0; i < 9; i ++) + questionId = Random() % QUIZ_QUESTION_NUM; + for (i = 0; i < QUIZ_QUESTION_LEN; i ++) { - gUnknown_0203CD68->unk_002[i] = gUnknown_0860B1A4[v0][i]; + sQuizLadyPtr->question[i] = sQuizLadyQuizQuestions[questionId][i]; } - gUnknown_0203CD68->unk_014 = sUnknown_0860B1E4[v0]; - gUnknown_0203CD68->itemId = sUnknown_0860B204[v0]; - gUnknown_0203CD68->unk_02b = v0; - gUnknown_0203CD68->playerName[0] = EOS; + sQuizLadyPtr->answer = sQuizLadyQuizAnswers[questionId]; + sQuizLadyPtr->itemId = sQuizLadyPrizes[questionId]; + sQuizLadyPtr->questionId = questionId; + sQuizLadyPtr->playerName[0] = EOS; } -static void SetLilycoveQuizLady(void) +static void InitLilycoveQuizLady(void) { u8 i; - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; - gUnknown_0203CD68->phase = 0; - for (i = 0; i < 9; i ++) + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr->id = LILYCOVE_LADY_QUIZ; + sQuizLadyPtr->phase = QUIZ_PHASE_ATTEMPT_QUIZ; + for (i = 0; i < QUIZ_QUESTION_LEN; i ++) { - gUnknown_0203CD68->unk_002[i] = -1; + sQuizLadyPtr->question[i] = -1; } - gUnknown_0203CD68->unk_014 = -1; - gUnknown_0203CD68->unk_016 = -1; + sQuizLadyPtr->answer = -1; + sQuizLadyPtr->response = -1; for (i = 0; i < 4; i ++) { - gUnknown_0203CD68->playerTrainerId[i] = 0; + sQuizLadyPtr->playerTrainerId[i] = 0; } - gUnknown_0203CD68->itemId = ITEM_NONE; - gUnknown_0203CD68->unk_02a = 0; - gUnknown_0203CD68->unk_02c = 0x10; - gUnknown_0203CD68->language = gGameLanguage; - sub_818DF00(); + sQuizLadyPtr->itemId = ITEM_NONE; + sQuizLadyPtr->waitingForChallenger = FALSE; + sQuizLadyPtr->prevQuestionId = QUIZ_QUESTION_NUM; + sQuizLadyPtr->language = gGameLanguage; + PickQuizQuestion(); } static void sub_818E004(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->id = LILYCOVE_LADY_QUIZ; - gUnknown_0203CD68->phase = 0; - gUnknown_0203CD68->unk_02a = 0; - gUnknown_0203CD68->unk_016 = -1; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr->id = LILYCOVE_LADY_QUIZ; + sQuizLadyPtr->phase = QUIZ_PHASE_ATTEMPT_QUIZ; + sQuizLadyPtr->waitingForChallenger = FALSE; + sQuizLadyPtr->response = -1; } -u8 sub_818E038(void) +u8 GetQuizLadyPhase(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (gUnknown_0203CD68->phase == 2) + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (sQuizLadyPtr->phase == QUIZ_PHASE_GIVE_PRIZE) { - return 2; + return QUIZ_PHASE_GIVE_PRIZE; } - else if (gUnknown_0203CD68->phase == 1) + else if (sQuizLadyPtr->phase == QUIZ_PHASE_MAKE_YOUR_OWN) { - return 1; + return QUIZ_PHASE_MAKE_YOUR_OWN; } else { - return 0; + return QUIZ_PHASE_ATTEMPT_QUIZ; } } -u8 sub_818E06C(void) +// 0: waiting for someone to attempt player's quiz +// 1: ready to attempt other player's quiz +// 2: ready to attempt lady's quiz +u8 sub_818E06C(void) //sub_818E06C { int i; int j; - u8 rv; + u8 author; struct LilycoveLadyQuiz *quiz; quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (sub_811F8D8(quiz->unk_014) == 0) - { - i = quiz->unk_02b; + if (sub_811F8D8(quiz->answer) == 0) + { + i = quiz->questionId; do { - if (++ i >= 16) + if (++ i >= QUIZ_QUESTION_NUM) { i = 0; } - } while (sub_811F8D8(sUnknown_0860B1E4[i]) == 0); - for (j = 0; j < 9; j ++) + } while (sub_811F8D8(sQuizLadyQuizAnswers[i]) == 0); + for (j = 0; j < QUIZ_QUESTION_LEN; j ++) { - quiz->unk_002[j] = gUnknown_0860B1A4[i][j]; + quiz->question[j] = sQuizLadyQuizQuestions[i][j]; } - quiz->unk_014 = sUnknown_0860B1E4[i]; - quiz->itemId = sUnknown_0860B204[i]; - quiz->unk_02b = i; + quiz->answer = sQuizLadyQuizAnswers[i]; + quiz->itemId = sQuizLadyPrizes[i]; + quiz->questionId = i; quiz->playerName[0] = EOS; } - rv = sub_818E13C(); - if (rv == 0) + author = BufferAuthorName(); + if (author == QUIZ_AUTHOR_LADY) { return 2; } - else if (rv == 2 || sub_818E1F4()) + else if (author == QUIZ_AUTHOR_OTHER_PLAYER || IsQuizTrainerIdNotPlayer()) { return 1; } @@ -608,126 +903,126 @@ u8 sub_818E06C(void) } } -static u8 sub_818E13C(void) +static u8 BufferAuthorName(void) { - u8 retval; - u8 len; + u8 author; + u8 nameLen; u8 i; - retval = 1; - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (gUnknown_0203CD68->playerName[0] == EOS) + author = QUIZ_AUTHOR_PLAYER; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (sQuizLadyPtr->playerName[0] == EOS) { StringCopy7(gStringVar1, gText_Lady2); - retval = 0; + author = QUIZ_AUTHOR_LADY; } else { - StringCopy7(gStringVar1, gUnknown_0203CD68->playerName); - ConvertInternationalString(gStringVar1, gUnknown_0203CD68->language); - len = sub_818E258(gUnknown_0203CD68->playerName); - if (len == sub_818E258(gSaveBlock2Ptr->playerName)) + StringCopy7(gStringVar1, sQuizLadyPtr->playerName); + ConvertInternationalString(gStringVar1, sQuizLadyPtr->language); + nameLen = GetPlayerNameLength(sQuizLadyPtr->playerName); + if (nameLen == GetPlayerNameLength(gSaveBlock2Ptr->playerName)) { - u8 *name = gUnknown_0203CD68->playerName; - for (i = 0; i < len; i ++) + u8 *name = sQuizLadyPtr->playerName; + for (i = 0; i < nameLen; i ++) { - name = gUnknown_0203CD68->playerName; + name = sQuizLadyPtr->playerName; if (name[i] != gSaveBlock2Ptr->playerName[i]) { - retval = 2; + author = QUIZ_AUTHOR_OTHER_PLAYER; break; } } } } - return retval; + return author; } -static u8 sub_818E1F4(void) +static bool8 IsQuizTrainerIdNotPlayer(void) { - bool8 response; + bool8 notPlayer; u8 i; - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - response = FALSE; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + notPlayer = FALSE; for (i = 0; i < 4; i ++) { - if (gUnknown_0203CD68->playerTrainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) + if (sQuizLadyPtr->playerTrainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) { - response = TRUE; + notPlayer = TRUE; break; } } - return response; + return notPlayer; } -static u8 sub_818E258(const u8 *str) +static u8 GetPlayerNameLength(const u8 *playerName) { u8 len; const u8 *ptr; - for (len = 0, ptr = str; *ptr != EOS; len ++, ptr ++); + for (len = 0, ptr = playerName; *ptr != EOS; len ++, ptr ++); return len; } void sub_818E274(void) { - StringCopy(gStringVar1, ItemId_GetName(gUnknown_0203CD68->itemId)); + StringCopy(gStringVar1, ItemId_GetName(sQuizLadyPtr->itemId)); } bool8 sub_818E298(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (!sub_818E13C()) + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (BufferAuthorName() == QUIZ_AUTHOR_LADY) { - gUnknown_0203CD68->language = gGameLanguage; + sQuizLadyPtr->language = gGameLanguage; return TRUE; } return FALSE; } -u8 sub_818E2D8(void) +bool8 IsQuizLadyWaitingForChallenger(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - return gUnknown_0203CD68->unk_02a; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + return sQuizLadyPtr->waitingForChallenger; } -void sub_818E2FC(void) +void sub_818E2FC(void) //sub_818E2FC { ShowEasyChatScreen(); } bool8 sub_818E308(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar1, gUnknown_0203CD68->unk_014); - CopyEasyChatWord(gStringVar2, gUnknown_0203CD68->unk_016); + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + CopyEasyChatWord(gStringVar1, sQuizLadyPtr->answer); + CopyEasyChatWord(gStringVar2, sQuizLadyPtr->response); return StringCompare(gStringVar1, gStringVar2) ? FALSE : TRUE; } -void sub_818E358(void) +void BufferQuizPrizeItem(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gSpecialVar_0x8005 = gUnknown_0203CD68->itemId; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + gSpecialVar_0x8005 = sQuizLadyPtr->itemId; } -void sub_818E37C(void) +void SetQuizLadyPhase_MakeYourOwn(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->phase = 1; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr->phase = QUIZ_PHASE_MAKE_YOUR_OWN; } -void sub_818E39C(void) +void SetQuizLadyPhase_GivePrize(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->phase = 2; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr->phase = QUIZ_PHASE_GIVE_PRIZE; } -void sub_818E3BC(void) +void ClearQuizLadyResponse(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->unk_016 = -1; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr->response = -1; } void sub_818E3E0(void) @@ -737,28 +1032,28 @@ void sub_818E3E0(void) void sub_818E3EC(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; if (sub_818E298()) { - gUnknown_0203CD68->unk_02c = gUnknown_0203CD68->unk_02b; + sQuizLadyPtr->prevQuestionId = sQuizLadyPtr->questionId; } else { - gUnknown_0203CD68->unk_02c = 0x10; + sQuizLadyPtr->prevQuestionId = QUIZ_QUESTION_NUM; } - sub_818DF00(); + PickQuizQuestion(); } void sub_818E430(void) { u8 i; - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - for (i = 0; i < 9; i ++) + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + for (i = 0; i < QUIZ_QUESTION_LEN; i ++) { - gUnknown_0203CD68->unk_002[i] = -1; + sQuizLadyPtr->question[i] = -1; } - gUnknown_0203CD68->unk_014 = -1; + sQuizLadyPtr->answer = -1; } void sub_818E47C(void) @@ -776,26 +1071,26 @@ void sub_818E4A4(void) { u8 i; - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->itemId = gSpecialVar_ItemId; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr->itemId = gSpecialVar_ItemId; for (i = 0; i < 4; i ++) { - gUnknown_0203CD68->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; + sQuizLadyPtr->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; } - StringCopy7(gUnknown_0203CD68->playerName, gSaveBlock2Ptr->playerName); - gUnknown_0203CD68->language = gGameLanguage; + StringCopy7(sQuizLadyPtr->playerName, gSaveBlock2Ptr->playerName); + sQuizLadyPtr->language = gGameLanguage; } void sub_818E510(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - gUnknown_0203CD68->unk_02a = 1; + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + sQuizLadyPtr->waitingForChallenger = TRUE; } void sub_818E538(void) { - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar3, gUnknown_0203CD68->unk_014); + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + CopyEasyChatWord(gStringVar3, sQuizLadyPtr->answer); } void sub_818E564(void) @@ -807,63 +1102,64 @@ void sub_818E570(const LilycoveLady *lilycoveLady) { u8 i; - gUnknown_0203CD68 = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (lilycoveLady->quiz.unk_02c < 16 && gUnknown_0203CD68->id == LILYCOVE_LADY_QUIZ) + sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; + if (lilycoveLady->quiz.prevQuestionId < QUIZ_QUESTION_NUM && sQuizLadyPtr->id == LILYCOVE_LADY_QUIZ) { for (i = 0; i < 4; i ++) { - if (lilycoveLady->quiz.unk_02c != gUnknown_0203CD68->unk_02b) + if (lilycoveLady->quiz.prevQuestionId != sQuizLadyPtr->questionId) { break; } - gUnknown_0203CD68->unk_02b = Random() % 16; + sQuizLadyPtr->questionId = Random() % QUIZ_QUESTION_NUM; } - if (lilycoveLady->quiz.unk_02c == gUnknown_0203CD68->unk_02b) + if (lilycoveLady->quiz.prevQuestionId == sQuizLadyPtr->questionId) { - gUnknown_0203CD68->unk_02b = (gUnknown_0203CD68->unk_02b + 1) % 16; + sQuizLadyPtr->questionId = (sQuizLadyPtr->questionId + 1) % QUIZ_QUESTION_NUM; } - gUnknown_0203CD68->unk_02c = lilycoveLady->quiz.unk_02c; + sQuizLadyPtr->prevQuestionId = lilycoveLady->quiz.prevQuestionId; } } -static void sub_818E604(void) +static void ResetContestLadyContestData(void) { - gUnknown_0203CD6C->playerName[0] = EOS; - gUnknown_0203CD6C->fave_pkblk = 0; - gUnknown_0203CD6C->other_pkblk = 0; - gUnknown_0203CD6C->max_sheen = 0; - gUnknown_0203CD6C->category = Random() % 5; + sContestLadyPtr->playerName[0] = EOS; + sContestLadyPtr->fave_pkblk = 0; + sContestLadyPtr->other_pkblk = 0; + sContestLadyPtr->max_sheen = 0; + sContestLadyPtr->category = Random() % CONTEST_CATEGORIES_COUNT; } -static void SetLilycoveContestLady(void) +static void InitLilycoveContestLady(void) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; - gUnknown_0203CD6C->phase = 0; - sub_818E604(); - gUnknown_0203CD6C->language = gGameLanguage; + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + sContestLadyPtr->id = LILYCOVE_LADY_CONTEST; + sContestLadyPtr->phase = 0; + ResetContestLadyContestData(); + sContestLadyPtr->language = gGameLanguage; } static void sub_818E674(void) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - gUnknown_0203CD6C->id = LILYCOVE_LADY_CONTEST; - gUnknown_0203CD6C->phase = 0; - if (gUnknown_0203CD6C->fave_pkblk == 5 || gUnknown_0203CD6C->other_pkblk == 5) + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + sContestLadyPtr->id = LILYCOVE_LADY_CONTEST; + sContestLadyPtr->phase = 0; + if (sContestLadyPtr->fave_pkblk == FLAVOR_COUNT + || sContestLadyPtr->other_pkblk == FLAVOR_COUNT) { - sub_818E604(); + ResetContestLadyContestData(); } } static void sub_818E6B0(u8 sheen) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - if (gUnknown_0203CD6C->max_sheen <= sheen) + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + if (sContestLadyPtr->max_sheen <= sheen) { - gUnknown_0203CD6C->max_sheen = sheen; - memset(gUnknown_0203CD6C->playerName, EOS, sizeof(gUnknown_0203CD6C->playerName)); - memcpy(gUnknown_0203CD6C->playerName, gSaveBlock2Ptr->playerName, sizeof(gUnknown_0203CD6C->playerName)); - gUnknown_0203CD6C->language = gGameLanguage; + sContestLadyPtr->max_sheen = sheen; + memset(sContestLadyPtr->playerName, EOS, sizeof(sContestLadyPtr->playerName)); + memcpy(sContestLadyPtr->playerName, gSaveBlock2Ptr->playerName, sizeof(sContestLadyPtr->playerName)); + sContestLadyPtr->language = gGameLanguage; } } @@ -874,38 +1170,38 @@ bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock) sheen = 0; response = FALSE; - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - switch (gUnknown_0203CD6C->category) + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + switch (sContestLadyPtr->category) { - case 0: + case CONTEST_CATEGORY_COOL: if (pokeblock->spicy != 0) { sheen = pokeblock->spicy; response = TRUE; } break; - case 1: + case CONTEST_CATEGORY_BEAUTY: if (pokeblock->dry != 0) { sheen = pokeblock->dry; response = TRUE; } break; - case 2: + case CONTEST_CATEGORY_CUTE: if (pokeblock->sweet != 0) { sheen = pokeblock->sweet; response = TRUE; } break; - case 3: + case CONTEST_CATEGORY_SMART: if (pokeblock->bitter != 0) { sheen = pokeblock->bitter; response = TRUE; } break; - case 4: + case CONTEST_CATEGORY_TOUGH: if (pokeblock->sour != 0) { sheen = pokeblock->sour; @@ -916,54 +1212,54 @@ bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock) if (response == TRUE) { sub_818E6B0(sheen); - gUnknown_0203CD6C->fave_pkblk ++; + sContestLadyPtr->fave_pkblk ++; } else { - gUnknown_0203CD6C->other_pkblk ++; + sContestLadyPtr->other_pkblk ++; } return response; } -static void sub_818E794(u8 *dest1, u8 *dest2) +static void sub_818E794(u8 *dest1, u8 *dest2) //sub_818E794 { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - StringCopy(dest1, gUnknown_0860B324[gUnknown_0203CD6C->category]); - StringCopy10(dest2, gUnknown_0860B310[gUnknown_0203CD6C->category]); + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + StringCopy(dest1, sContestLadyCategoryNames[sContestLadyPtr->category]); + StringCopy10(dest2, sContestLadyMonNames[sContestLadyPtr->category]); } void sub_818E7E0(u8 *dest1, u8 *dest2) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - *dest1 = gUnknown_0203CD6C->category; - StringCopy(dest2, gUnknown_0860B310[gUnknown_0203CD6C->category]); + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + *dest1 = sContestLadyPtr->category; + StringCopy(dest2, sContestLadyMonNames[sContestLadyPtr->category]); } void sub_818E81C(u8 *dest) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - StringCopy(dest, gUnknown_0203CD6C->playerName); + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + StringCopy(dest, sContestLadyPtr->playerName); } void sub_818E848(u8 *dest) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - *dest = gUnknown_0203CD6C->language; + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + *dest = sContestLadyPtr->language; } -void sub_818E868(u8 *dest, u8 category) +void BufferContestName(u8 *dest, u8 category) { - StringCopy(dest, gUnknown_0860B338[category]); + StringCopy(dest, sContestNames[category]); } u8 sub_818E880(void) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - if (gUnknown_0203CD6C->fave_pkblk >= 5) + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + if (sContestLadyPtr->fave_pkblk >= FLAVOR_COUNT) { return 1; } - else if (gUnknown_0203CD6C->fave_pkblk == 0) + else if (sContestLadyPtr->fave_pkblk == 0) { return 2; } @@ -975,8 +1271,8 @@ u8 sub_818E880(void) bool8 sub_818E8B4(void) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - if (gUnknown_0203CD6C->phase == 1) + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + if (sContestLadyPtr->phase == 1) { return TRUE; } @@ -988,8 +1284,9 @@ bool8 sub_818E8E0(void) bool8 response; response = FALSE; - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - if (gUnknown_0203CD6C->fave_pkblk >= 5 || gUnknown_0203CD6C->other_pkblk >= 5) + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + if (sContestLadyPtr->fave_pkblk >= FLAVOR_COUNT + || sContestLadyPtr->other_pkblk >= FLAVOR_COUNT) { response = TRUE; } @@ -1008,18 +1305,18 @@ void sub_818E92C(void) void sub_818E940(void) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - gUnknown_0203CD6C->phase = 1; + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + sContestLadyPtr->phase = 1; } void sub_818E960(void) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - gSpecialVar_0x8005 = sUnknown_0860B34C[gUnknown_0203CD6C->category]; + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + gSpecialVar_0x8005 = sContestLadyMonSpecies[sContestLadyPtr->category]; } u8 sub_818E990(void) { - gUnknown_0203CD6C = &gSaveBlock1Ptr->lilycoveLady.contest; - return gUnknown_0203CD6C->category; + sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; + return sContestLadyPtr->category; } diff --git a/src/scrcmd.c b/src/scrcmd.c index e31be848a3..0326a56a41 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1633,7 +1633,7 @@ bool8 ScrCmd_buffercontesttype(struct ScriptContext *ctx) u8 stringVarIndex = ScriptReadByte(ctx); u16 index = VarGet(ScriptReadHalfword(ctx)); - sub_818E868(sScriptStringVars[stringVarIndex], index); + BufferContestName(sScriptStringVars[stringVarIndex], index); return FALSE; } diff --git a/src/strings.c b/src/strings.c index 8463cfacb0..8134265f31 100644 --- a/src/strings.c +++ b/src/strings.c @@ -610,11 +610,11 @@ const u8 gUnknown_085EAD72[] = _("What's a CONTEST?"); const u8 gUnknown_085EAD84[] = _("Types of CONTESTS"); const u8 gUnknown_085EAD96[] = _("Ranks"); const u8 gUnknown_085EAD9C[] = _("Judging"); -const u8 gUnknown_085EADA4[] = _("COOLNESS CONTEST"); -const u8 gUnknown_085EADB5[] = _("BEAUTY CONTEST"); -const u8 gUnknown_085EADC4[] = _("CUTENESS CONTEST"); -const u8 gUnknown_085EADD5[] = _("SMARTNESS CONTEST"); -const u8 gUnknown_085EADE7[] = _("TOUGHNESS CONTEST"); +const u8 gText_CoolnessContest[] = _("COOLNESS CONTEST"); +const u8 gText_BeautyContest[] = _("BEAUTY CONTEST"); +const u8 gText_CutenessContest[] = _("CUTENESS CONTEST"); +const u8 gText_SmartnessContest[] = _("SMARTNESS CONTEST"); +const u8 gText_ToughnessContest[] = _("TOUGHNESS CONTEST"); const u8 gUnknown_085EADF9[] = _("DECORATION"); const u8 gUnknown_085EAE04[] = _("PACK UP"); const u8 gUnknown_085EAE0C[] = _("COUNT"); @@ -1591,23 +1591,23 @@ const u8 gText_PkmnsNickname[] = _("{STR_VAR_1}'s nickname?"); const u8 gText_TellHimTheWords[] = _("Tell him the words."); const u8 gText_MoveOkBack[] = _("{DPAD_NONE}MOVE {A_BUTTON}OK {B_BUTTON}BACK"); const u8 gText_CallCantBeMadeHere[] = _("A call can't be made from here."); -const u8 gUnknown_085EEB2B[] = _("HANDSOME"); -const u8 gUnknown_085EEB34[] = _("VINNY"); -const u8 gUnknown_085EEB3A[] = _("MOREME"); -const u8 gUnknown_085EEB41[] = _("IRONHARD"); -const u8 gUnknown_085EEB4A[] = _("MUSCLE"); -const u8 gUnknown_085EEB51[] = _("coolness"); -const u8 gUnknown_085EEB5A[] = _("beauty"); -const u8 gUnknown_085EEB61[] = _("cuteness"); -const u8 gUnknown_085EEB6A[] = _("smartness"); -const u8 gUnknown_085EEB74[] = _("toughness"); +const u8 gText_Handsome[] = _("HANDSOME"); +const u8 gText_Vinny[] = _("VINNY"); +const u8 gText_Moreme[] = _("MOREME"); +const u8 gText_Ironhard[] = _("IRONHARD"); +const u8 gText_Muscle[] = _("MUSCLE"); +const u8 gText_Coolness[] = _("coolness"); +const u8 gText_Beauty[] = _("beauty"); +const u8 gText_Cuteness[] = _("cuteness"); +const u8 gText_Smartness[] = _("smartness"); +const u8 gText_Toughness[] = _("toughness"); const u8 gText_Lady2[] = _("Lady"); -const u8 gUnknown_085EEB83[] = _("slippery"); -const u8 gUnknown_085EEB8C[] = _("roundish"); -const u8 gUnknown_085EEB95[] = _("wham-ish"); -const u8 gUnknown_085EEB9E[] = _("shiny"); -const u8 gUnknown_085EEBA4[] = _("sticky"); -const u8 gUnknown_085EEBAB[] = _("pointy"); +const u8 gText_Slippery[] = _("slippery"); +const u8 gText_Roundish[] = _("roundish"); +const u8 gText_Whamish[] = _("wham-ish"); +const u8 gText_Shiny[] = _("shiny"); +const u8 gText_Sticky[] = _("sticky"); +const u8 gText_Pointy[] = _("pointy"); const u8 gText_RentalPkmn2[] = _("RENTAL POKéMON"); const u8 gText_SelectFirstPkmn[] = _("Select the first POKéMON."); const u8 gText_SelectSecondPkmn[] = _("Select the second POKéMON."); diff --git a/src/tv.c b/src/tv.c index b4c8463fde..ad3a4f3153 100644 --- a/src/tv.c +++ b/src/tv.c @@ -5600,7 +5600,7 @@ static void DoTVShowPokemonContestLiveUpdates(void) switch (state) { case 0: - sub_818E868(gStringVar1, show->contestLiveUpdates.category); + BufferContestName(gStringVar1, show->contestLiveUpdates.category); StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); if (show->contestLiveUpdates.round1Rank == show->contestLiveUpdates.round2Rank) @@ -7720,7 +7720,7 @@ static void DoTVShowPokemonContestLiveUpdates2(void) switch (state) { case 0: - sub_818E868(gStringVar1, show->contestLiveUpdates2.contestCategory); + BufferContestName(gStringVar1, show->contestLiveUpdates2.contestCategory); if (show->contestLiveUpdates2.pokeblockState == 1) { sTVShowState = 1; From fc467a9d52e200a9ffae663161c8b2b2b7c79689 Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Sun, 4 Aug 2019 04:38:59 -0400 Subject: [PATCH 15/29] standardize favour/favor --- include/global.h | 4 ++-- src/lilycove_lady.c | 42 +++++++++++++++++++++--------------------- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/global.h b/include/global.h index db80d81a0d..f6a701ab86 100644 --- a/include/global.h +++ b/include/global.h @@ -740,7 +740,7 @@ struct RecordMixingDayCareMail enum { LILYCOVE_LADY_QUIZ, - LILYCOVE_LADY_FAVOUR, + LILYCOVE_LADY_FAVOR, LILYCOVE_LADY_CONTEST }; @@ -788,7 +788,7 @@ struct LilycoveLadyContest typedef union // 3b58 { struct LilycoveLadyQuiz quiz; - struct LilycoveLadyFavour favour; + struct LilycoveLadyFavor favor; struct LilycoveLadyContest contest; u8 id; u8 pad[0x40]; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index b4557f1c05..a3ab2228d1 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -39,7 +39,7 @@ enum //TODO name phases static void InitLilycoveQuizLady(void); -static void InitLilycoveFavourLady(void); +static void InitLilycoveFavorLady(void); static void InitLilycoveContestLady(void); static void sub_818E004(void); static void sub_818DBC4(void); @@ -556,8 +556,8 @@ void SetLilycoveLady(void) case LILYCOVE_LADY_QUIZ: InitLilycoveQuizLady(); break; - case LILYCOVE_LADY_FAVOUR: - InitLilycoveFavourLady(); + case LILYCOVE_LADY_FAVOR: + InitLilycoveFavorLady(); break; case LILYCOVE_LADY_CONTEST: InitLilycoveContestLady(); @@ -572,7 +572,7 @@ void sub_818DA78(void) case LILYCOVE_LADY_QUIZ: sub_818E004(); break; - case LILYCOVE_LADY_FAVOUR: + case LILYCOVE_LADY_FAVOR: sub_818DBC4(); break; case LILYCOVE_LADY_CONTEST: @@ -591,8 +591,8 @@ void SetLilycoveLadyRandomly(void) case LILYCOVE_LADY_QUIZ: InitLilycoveQuizLady(); break; - case LILYCOVE_LADY_FAVOUR: - InitLilycoveFavourLady(); + case LILYCOVE_LADY_FAVOR: + InitLilycoveFavorLady(); break; case LILYCOVE_LADY_CONTEST: InitLilycoveContestLady(); @@ -624,10 +624,10 @@ static void sub_818DB20(void) sFavorLadyPtr->unk_010 = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][idx]; } -static void InitLilycoveFavourLady(void) +static void InitLilycoveFavorLady(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; - sFavorLadyPtr->id = LILYCOVE_LADY_FAVOUR; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; + sFavorLadyPtr->id = LILYCOVE_LADY_FAVOR; sFavorLadyPtr->phase = 0; sFavorLadyPtr->playerName[0] = EOS; sFavorLadyPtr->unk_002 = 0; @@ -639,14 +639,14 @@ static void InitLilycoveFavourLady(void) static void sub_818DBC4(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; - sFavorLadyPtr->id = LILYCOVE_LADY_FAVOUR; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; + sFavorLadyPtr->id = LILYCOVE_LADY_FAVOR; sFavorLadyPtr->phase = 0; } u8 sub_818DBE8(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; if (sFavorLadyPtr->phase == 2) { return 2; @@ -668,13 +668,13 @@ static const u8 *GetFavorLadyDescription(u8 idx) void BufferFavorLadyDescription(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; StringCopy(gStringVar1, GetFavorLadyDescription(sFavorLadyPtr->favorId)); } bool8 sub_818DC60(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; if (sFavorLadyPtr->playerName[0] != EOS) { StringCopy7(gStringVar3, sFavorLadyPtr->playerName); @@ -691,7 +691,7 @@ static void BufferItemName(u8 *dest, u16 itemId) void sub_818DCC8(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; BufferItemName(gStringVar2, sFavorLadyPtr->itemId); } @@ -703,14 +703,14 @@ static void sub_818DCF4(const u8 *src, u8 *dest) void sub_818DD14(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; sub_818DCF4(sFavorLadyPtr->playerName, gStringVar3); ConvertInternationalString(gStringVar3, sFavorLadyPtr->language); } bool8 sub_818DD54(void) { - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; return sFavorLadyPtr->unk_002 ? TRUE : FALSE; } @@ -725,7 +725,7 @@ static bool8 sub_818DD84(u16 itemId) u8 i; bool8 response; - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; numItems = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]); sFavorLadyPtr->phase = 1; BufferItemName(gStringVar2, itemId); @@ -760,7 +760,7 @@ bool8 sub_818DE5C(void) { u8 checkval; - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; checkval = sFavorLadyPtr->unk_003; return checkval < 5 ? FALSE : TRUE; } @@ -774,7 +774,7 @@ u16 sub_818DEA0(void) { u16 itemId; - sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favour; + sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; itemId = sFavorLadyPrizes[sFavorLadyPtr->favorId]; BufferPrizeName(itemId); sFavorLadyPtr->phase = 2; @@ -783,7 +783,7 @@ u16 sub_818DEA0(void) void sub_818DEDC(void) { - InitLilycoveFavourLady(); + InitLilycoveFavorLady(); sFavorLadyPtr->phase = 1; } From 5d96a0cc97431d4935042fa58e0ff06f4db8a43d Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Sun, 4 Aug 2019 10:15:50 -0400 Subject: [PATCH 16/29] minor fixes --- include/strings.h | 34 +++++++++++++++++----------------- src/easy_chat.c | 20 ++++++++++---------- src/lilycove_lady.c | 40 +++++++++++++++++++++------------------- src/script_menu.c | 10 +++++----- src/strings.c | 34 +++++++++++++++++----------------- 5 files changed, 70 insertions(+), 68 deletions(-) diff --git a/include/strings.h b/include/strings.h index d6a2395591..78ae2c1402 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2745,23 +2745,23 @@ extern const u8 gText_BestScore2[]; extern const u8 gText_ExcellentsInARow[]; // Lilycove Lady -extern const u8 gText_Handsome[]; -extern const u8 gText_Vinny[]; -extern const u8 gText_Moreme[]; -extern const u8 gText_Ironhard[]; -extern const u8 gText_Muscle[]; -extern const u8 gText_Coolness[]; -extern const u8 gText_Beauty[]; -extern const u8 gText_Cuteness[]; -extern const u8 gText_Smartness[]; -extern const u8 gText_Toughness[]; -extern const u8 gText_Lady2[]; -extern const u8 gText_Slippery[]; -extern const u8 gText_Roundish[]; -extern const u8 gText_Whamish[]; -extern const u8 gText_Shiny[]; -extern const u8 gText_Sticky[]; -extern const u8 gText_Pointy[]; +extern const u8 gText_ContestLady_Handsome[]; +extern const u8 gText_ContestLady_Vinny[]; +extern const u8 gText_ContestLady_Moreme[]; +extern const u8 gText_ContestLady_Ironhard[]; +extern const u8 gText_ContestLady_Muscle[]; +extern const u8 gText_ContestLady_Coolness[]; +extern const u8 gText_ContestLady_Beauty[]; +extern const u8 gText_ContestLady_Cuteness[]; +extern const u8 gText_ContestLady_Smartness[]; +extern const u8 gText_ContestLady_Toughness[]; +extern const u8 gText_QuizLady_Lady[]; +extern const u8 gText_FavorLady_Slippery[]; +extern const u8 gText_FavorLady_Roundish[]; +extern const u8 gText_FavorLady_Whamish[]; +extern const u8 gText_FavorLady_Shiny[]; +extern const u8 gText_FavorLady_Sticky[]; +extern const u8 gText_FavorLady_Pointy[]; extern const u8 gText_CoolnessContest[]; extern const u8 gText_BeautyContest[]; diff --git a/src/easy_chat.c b/src/easy_chat.c index 93456631aa..9a529afe36 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -1305,15 +1305,15 @@ void ShowEasyChatScreen(void) displayedPersonType = EASY_CHAT_PERSON_BOY; break; case EASY_CHAT_TYPE_QUIZ_ANSWER: - words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; + words = &gSaveBlock1Ptr->lilycoveLady.quiz.response; break; case EASY_CHAT_TYPE_QUIZ_QUESTION: return; case EASY_CHAT_TYPE_QUIZ_SET_QUESTION: - words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; + words = gSaveBlock1Ptr->lilycoveLady.quiz.question; break; case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: - words = &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; + words = &gSaveBlock1Ptr->lilycoveLady.quiz.answer; break; case EASY_CHAT_TYPE_APPRENTICE: words = gSaveBlock2Ptr->apprentices[0].easyChatWords; @@ -1343,7 +1343,7 @@ static void sub_811A7E4(void) if (!gPaletteFade.active) { lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; - lilycoveLady->quiz.unk_016 = -1; + lilycoveLady->quiz.response = -1; CleanupOverworldWindowsAndTilemaps(); DoQuizQuestionEasyChatScreen(); } @@ -1387,7 +1387,7 @@ static void DoQuizAnswerEasyChatScreen(void) { DoEasyChatScreen( EASY_CHAT_TYPE_QUIZ_ANSWER, - &gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, + &gSaveBlock1Ptr->lilycoveLady.quiz.response, CB2_ReturnToFieldContinueScript, EASY_CHAT_PERSON_DISPLAY_NONE); } @@ -1395,7 +1395,7 @@ static void DoQuizAnswerEasyChatScreen(void) static void DoQuizQuestionEasyChatScreen(void) { DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_QUESTION, - gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + gSaveBlock1Ptr->lilycoveLady.quiz.question, CB2_ReturnToFieldContinueScript, EASY_CHAT_PERSON_DISPLAY_NONE); } @@ -1403,7 +1403,7 @@ static void DoQuizQuestionEasyChatScreen(void) static void DoQuizSetAnswerEasyChatScreen(void) { DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_ANSWER, - &gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, + &gSaveBlock1Ptr->lilycoveLady.quiz.answer, CB2_ReturnToFieldContinueScript, EASY_CHAT_PERSON_DISPLAY_NONE); } @@ -1411,7 +1411,7 @@ static void DoQuizSetAnswerEasyChatScreen(void) static void DoQuizSetQuestionEasyChatScreen(void) { DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_QUESTION, - gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, + gSaveBlock1Ptr->lilycoveLady.quiz.question, CB2_ReturnToFieldContinueScript, EASY_CHAT_PERSON_DISPLAY_NONE); } @@ -2662,7 +2662,7 @@ static int sub_811BD64(void) saveBlock1 = gSaveBlock1Ptr; for (i = 0; i < 9; i++) { - if (saveBlock1->lilycoveLady.quiz.unk_002[i] != 0xFFFF) + if (saveBlock1->lilycoveLady.quiz.question[i] != 0xFFFF) return 0; } @@ -2676,7 +2676,7 @@ static int sub_811BDB0(void) return sub_811BCF4(); quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - return quiz->unk_014 == 0xFFFF ? 1 : 0; + return quiz->answer == 0xFFFF ? 1 : 0; } static void sub_811BDF0(u8 *arg0) diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index a3ab2228d1..fe1129dd1a 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -20,6 +20,8 @@ #include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/items.h" +#include "constants/species.h" +#include "constants/moves.h" enum { @@ -339,12 +341,12 @@ static const u16 sQuizLadyPrizes[] = // Favor Lady data static const u8 *const sFavorLadyDescriptions[] = { - gText_Slippery, - gText_Roundish, - gText_Whamish, - gText_Shiny, - gText_Sticky, - gText_Pointy + gText_FavorLady_Slippery, + gText_FavorLady_Roundish, + gText_FavorLady_Whamish, + gText_FavorLady_Shiny, + gText_FavorLady_Sticky, + gText_FavorLady_Pointy }; static const u16 sFavorLadyAcceptedItems_Slippery[] = @@ -356,8 +358,8 @@ static const u16 sFavorLadyAcceptedItems_Slippery[] = ITEM_PARALYZE_HEAL, ITEM_BURN_HEAL, ITEM_BELUE_BERRY, - ITEM_LUXURY_BALL, - ITEM_TIMER_BALL, + ITEM_AWAKENING, + ITEM_ICE_HEAL, ITEM_REVIVE, ITEM_MAX_REVIVE, ITEM_ENERGY_POWDER, @@ -482,20 +484,20 @@ static const u16 sFavorLadyPrizes[] = static const u8 *const sContestLadyMonNames[] = { - gText_Handsome, - gText_Vinny, - gText_Moreme, - gText_Ironhard, - gText_Muscle + gText_ContestLady_Handsome, + gText_ContestLady_Vinny, + gText_ContestLady_Moreme, + gText_ContestLady_Ironhard, + gText_ContestLady_Muscle }; static const u8 *const sContestLadyCategoryNames[] = { - gText_Coolness, - gText_Beauty, - gText_Cuteness, - gText_Smartness, - gText_Toughness + gText_ContestLady_Coolness, + gText_ContestLady_Beauty, + gText_ContestLady_Cuteness, + gText_ContestLady_Smartness, + gText_ContestLady_Toughness }; static const u8 *const sContestNames[] = @@ -913,7 +915,7 @@ static u8 BufferAuthorName(void) sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; if (sQuizLadyPtr->playerName[0] == EOS) { - StringCopy7(gStringVar1, gText_Lady2); + StringCopy7(gStringVar1, gText_QuizLady_Lady); author = QUIZ_AUTHOR_LADY; } else diff --git a/src/script_menu.c b/src/script_menu.c index b17d3df38a..b0e0ec9201 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -41,11 +41,11 @@ const struct MenuAction MultichoiceList_003[] = const struct MenuAction MultichoiceList_004[] = { - {gUnknown_085EADA4, NULL}, - {gUnknown_085EADB5, NULL}, - {gUnknown_085EADC4, NULL}, - {gUnknown_085EADD5, NULL}, - {gUnknown_085EADE7, NULL}, + {gText_CoolnessContest, NULL}, + {gText_BeautyContest, NULL}, + {gText_CutenessContest, NULL}, + {gText_SmartnessContest, NULL}, + {gText_ToughnessContest, NULL}, {gText_Exit, NULL}, }; diff --git a/src/strings.c b/src/strings.c index 8134265f31..ebc995f133 100644 --- a/src/strings.c +++ b/src/strings.c @@ -1591,23 +1591,23 @@ const u8 gText_PkmnsNickname[] = _("{STR_VAR_1}'s nickname?"); const u8 gText_TellHimTheWords[] = _("Tell him the words."); const u8 gText_MoveOkBack[] = _("{DPAD_NONE}MOVE {A_BUTTON}OK {B_BUTTON}BACK"); const u8 gText_CallCantBeMadeHere[] = _("A call can't be made from here."); -const u8 gText_Handsome[] = _("HANDSOME"); -const u8 gText_Vinny[] = _("VINNY"); -const u8 gText_Moreme[] = _("MOREME"); -const u8 gText_Ironhard[] = _("IRONHARD"); -const u8 gText_Muscle[] = _("MUSCLE"); -const u8 gText_Coolness[] = _("coolness"); -const u8 gText_Beauty[] = _("beauty"); -const u8 gText_Cuteness[] = _("cuteness"); -const u8 gText_Smartness[] = _("smartness"); -const u8 gText_Toughness[] = _("toughness"); -const u8 gText_Lady2[] = _("Lady"); -const u8 gText_Slippery[] = _("slippery"); -const u8 gText_Roundish[] = _("roundish"); -const u8 gText_Whamish[] = _("wham-ish"); -const u8 gText_Shiny[] = _("shiny"); -const u8 gText_Sticky[] = _("sticky"); -const u8 gText_Pointy[] = _("pointy"); +const u8 gText_ContestLady_Handsome[] = _("HANDSOME"); +const u8 gText_ContestLady_Vinny[] = _("VINNY"); +const u8 gText_ContestLady_Moreme[] = _("MOREME"); +const u8 gText_ContestLady_Ironhard[] = _("IRONHARD"); +const u8 gText_ContestLady_Muscle[] = _("MUSCLE"); +const u8 gText_ContestLady_Coolness[] = _("coolness"); +const u8 gText_ContestLady_Beauty[] = _("beauty"); +const u8 gText_ContestLady_Cuteness[] = _("cuteness"); +const u8 gText_ContestLady_Smartness[] = _("smartness"); +const u8 gText_ContestLady_Toughness[] = _("toughness"); +const u8 gText_QuizLady_Lady[] = _("Lady"); +const u8 gText_FavorLady_Slippery[] = _("slippery"); +const u8 gText_FavorLady_Roundish[] = _("roundish"); +const u8 gText_FavorLady_Whamish[] = _("wham-ish"); +const u8 gText_FavorLady_Shiny[] = _("shiny"); +const u8 gText_FavorLady_Sticky[] = _("sticky"); +const u8 gText_FavorLady_Pointy[] = _("pointy"); const u8 gText_RentalPkmn2[] = _("RENTAL POKéMON"); const u8 gText_SelectFirstPkmn[] = _("Select the first POKéMON."); const u8 gText_SelectSecondPkmn[] = _("Select the second POKéMON."); From 009caa21c860bcf704c1c156ba54dbeb99728f8b Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Sun, 4 Aug 2019 12:00:42 -0400 Subject: [PATCH 17/29] some contest lady funcs --- data/event_scripts.s | 10 +++++----- data/specials.inc | 8 ++++---- include/global.h | 2 +- src/lilycove_lady.c | 21 +++++++++++---------- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 1952fae939..50eb0dac05 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -4701,7 +4701,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A88B0:: @ 82A88B0 LilycoveCity_PokemonCenter_1F_EventScript_2A88BA:: @ 82A88BA fadescreen 1 - special sub_818E92C + special OpenPokeblockCaseForContestLady waitstate compare VAR_RESULT, 65535 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A88D7 @@ -4719,8 +4719,8 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A88D7:: @ 82A88D7 LilycoveCity_PokemonCenter_1F_EventScript_2A88F6:: @ 82A88F6 msgbox LilycoveCity_PokemonCenter_1F_Text_2A9571, MSGBOX_DEFAULT - special sub_818E940 - special sub_818E960 + special ContestLadyGivenPokeblock + special GetContestLadyMonSpecies goto LilycoveCity_PokemonCenter_1F_EventScript_2A890A end @@ -4810,9 +4810,9 @@ LilycoveCity_PokemonCenter_1F_Movement_2A89C2: @ 82A89C2 step_end LilycoveCity_PokemonCenter_1F_EventScript_2A89C7:: @ 82A89C7 - specialvar VAR_RESULT, sub_818E990 + specialvar VAR_RESULT, GetContestLadyCategory special sub_818E914 - special sub_818E960 + special GetContestLadyMonSpecies compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A0A compare VAR_RESULT, 1 diff --git a/data/specials.inc b/data/specials.inc index bf2d6621e9..5c2eaa7601 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -409,10 +409,10 @@ gSpecials:: @ 81DBA64 def_special sub_818E8E0 def_special sub_818E8B4 def_special sub_818E914 - def_special sub_818E92C - def_special sub_818E940 - def_special sub_818E960 - def_special sub_818E990 + def_special OpenPokeblockCaseForContestLady + def_special ContestLadyGivenPokeblock + def_special GetContestLadyMonSpecies + def_special GetContestLadyCategory def_special PutLilycoveContestLadyShowOnTheAir def_special sub_813B880 def_special CallApprenticeFunction diff --git a/include/global.h b/include/global.h index f6a701ab86..a25100bd9b 100644 --- a/include/global.h +++ b/include/global.h @@ -776,7 +776,7 @@ struct LilycoveLadyFavor struct LilycoveLadyContest { /*0x000*/ u8 id; - /*0x001*/ u8 phase; + /*0x001*/ bool8 givenPokeblock; /*0x002*/ u8 fave_pkblk; /*0x003*/ u8 other_pkblk; /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index fe1129dd1a..ef43841ef6 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -335,8 +335,8 @@ static const u16 sQuizLadyPrizes[] = ITEM_PREMIER_BALL }; -#define QUIZ_QUESTION_LEN ARRAY_COUNT(sQuizLadyQuestion1) // -#define QUIZ_QUESTION_NUM ARRAY_COUNT(sQuizLadyQuizQuestions) +#define QUIZ_QUESTION_LEN 9 +#define QUIZ_QUESTION_NUM 16 // Favor Lady data static const u8 *const sFavorLadyDescriptions[] = @@ -1136,7 +1136,7 @@ static void InitLilycoveContestLady(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; sContestLadyPtr->id = LILYCOVE_LADY_CONTEST; - sContestLadyPtr->phase = 0; + sContestLadyPtr->givenPokeblock = FALSE; ResetContestLadyContestData(); sContestLadyPtr->language = gGameLanguage; } @@ -1145,7 +1145,7 @@ static void sub_818E674(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; sContestLadyPtr->id = LILYCOVE_LADY_CONTEST; - sContestLadyPtr->phase = 0; + sContestLadyPtr->givenPokeblock = FALSE; if (sContestLadyPtr->fave_pkblk == FLAVOR_COUNT || sContestLadyPtr->other_pkblk == FLAVOR_COUNT) { @@ -1274,7 +1274,7 @@ u8 sub_818E880(void) bool8 sub_818E8B4(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; - if (sContestLadyPtr->phase == 1) + if (sContestLadyPtr->givenPokeblock == TRUE) { return TRUE; } @@ -1295,29 +1295,30 @@ bool8 sub_818E8E0(void) return response; } +// called when mon enjoys pokeblock void sub_818E914(void) { sub_818E794(gStringVar2, gStringVar1); } -void sub_818E92C(void) +void OpenPokeblockCaseForContestLady(void) { OpenPokeblockCase(3, CB2_ReturnToField); } -void sub_818E940(void) +void ContestLadyGivenPokeblock(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; - sContestLadyPtr->phase = 1; + sContestLadyPtr->givenPokeblock = TRUE; } -void sub_818E960(void) +void GetContestLadyMonSpecies(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; gSpecialVar_0x8005 = sContestLadyMonSpecies[sContestLadyPtr->category]; } -u8 sub_818E990(void) +u8 GetContestLadyCategory(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; return sContestLadyPtr->category; From 771a7b25faf62748ef82534a6838dbf32377ebef Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Sun, 4 Aug 2019 14:23:54 -0400 Subject: [PATCH 18/29] move data, more contest lady funcs --- include/lilycove_lady.h | 6 +- src/data/lilycove_lady.h | 470 +++++++++++++++++++++++++++++++++++++ src/lilycove_lady.c | 487 +-------------------------------------- src/tv.c | 6 +- 4 files changed, 486 insertions(+), 483 deletions(-) create mode 100644 src/data/lilycove_lady.h diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index 09a1b0c185..dde78b8d84 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -8,9 +8,9 @@ void sub_818DEF4(void); void sub_818E564(void); void sub_818E570(const LilycoveLady *lilycoveLady); bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock); -void sub_818E7E0(u8 *dest1, u8 *dest2); -void sub_818E81C(u8 *dest); -void sub_818E848(u8 *dest); +void BufferContestLadyMonName(u8 *dest1, u8 *dest2); +void BufferContestLadyPlayerName(u8 *dest); +void BufferContestLadyLanguage(u8 *dest); void BufferContestName(u8 *dest, u8 category); u8 sub_818E880(void); diff --git a/src/data/lilycove_lady.h b/src/data/lilycove_lady.h new file mode 100644 index 0000000000..36bd94e553 --- /dev/null +++ b/src/data/lilycove_lady.h @@ -0,0 +1,470 @@ +#include "constants/easy_chat.h" +#include "constants/event_objects.h" +#include "constants/items.h" +#include "constants/species.h" +#include "constants/moves.h" + +static const u16 sContestLadyMonGfxId[] = +{ + EVENT_OBJ_GFX_ZIGZAGOON_1, + EVENT_OBJ_GFX_SKITTY, + EVENT_OBJ_GFX_POOCHYENA, + EVENT_OBJ_GFX_KECLEON_1, + EVENT_OBJ_GFX_PIKACHU +}; + +static const u16 sLilycoveLadyGfxId[] = +{ + EVENT_OBJ_GFX_WOMAN_4, + EVENT_OBJ_GFX_WOMAN_2, + EVENT_OBJ_GFX_GIRL_2 +}; + +// Quiz Lady data +static const u16 sQuizLadyQuestion1[] = +{ + EC_WORD_WHICH, + EC_WORD_STORES, + EC_WORD_INFORMATION, + EC_WORD_ON, + EC_WORD_POKEMON, + EC_WORD_QUES, + EC_WORD_CAMERA, + EC_WORD_POKEDEX, + EC_WORD_POKENAV +}; + +static const u16 sQuizLadyQuestion2[] = +{ + EC_WORD_WHICH, + EC_WORD_ISN_T, + EC_WORD_A, + EC_WORD_GAME, + EC_WORD_VERSION, + EC_WORD_QUES, + EC_WORD_RUBY, + EC_WORD_SAPPHIRE, + EC_WORD_DARK +}; + +static const u16 sQuizLadyQuestion3[] = +{ + EC_WORD_HOW, + EC_WORD_DO, + EC_WORD_POKEMON, + EC_WORD_EVOLVE, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_LEVEL, + EC_WORD_INSOMNIA, + EC_WORD_CUTE_CHARM +}; + +static const u16 sQuizLadyQuestion4[] = +{ + EC_WORD_WHICH, + EC_WORD_IS, + EC_WORD_THE, + EC_WORD_PRETTY, + EC_WORD_ITEM, + EC_WORD_QUES, + EC_WORD_COLD, + EC_WORD_FLOWERS, + EC_WORD_MACHINE +}; + +static const u16 sQuizLadyQuestion5[] = +{ + EC_WORD_WHICH, + EC_WORD_ITEM, + EC_WORD_DO, + EC_WORD_YOU, + EC_WORD_BREAK, + EC_WORD_QUES, + EC_WORD_EGG, + EC_WORD_MAIL, + EC_WORD_PHONE +}; + +static const u16 sQuizLadyQuestion6[] = +{ + EC_WORD_WHICH, + EC_WORD_WILL, + EC_WORD_STOP, + EC_MOVE2(CONFUSION), + EC_WORD_QUES, + 0xFFFF, + EC_WORD_ILLUMINATE, + EC_WORD_OWN_TEMPO, + EC_WORD_SWIFT_SWIM +}; + +static const u16 sQuizLadyQuestion7[] = +{ + EC_WORD_WHICH, + EC_WORD_OF, + EC_WORD_THESE, + EC_WORD_IS, + EC_WORD_MUSIC, + EC_WORD_QUES, + EC_WORD_FLYING, + EC_WORD_STEEL, + EC_WORD_ROCK +}; + +static const u16 sQuizLadyQuestion8[] = +{ + EC_WORD_WHICH, + EC_WORD_WILL, + EC_MOVE2(BLOCK), + EC_WORD_ESCAPE, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_RUN_AWAY, + EC_WORD_SHADOW_TAG, + EC_WORD_WONDER_GUARD +}; + +static const u16 sQuizLadyQuestion9[] = +{ + EC_WORD_WHICH, + EC_WORD_WILL, + EC_WORD_STOP, + EC_WORD_POISON, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_GUTS, + EC_WORD_IMMUNITY, + EC_WORD_SHED_SKIN +}; + +static const u16 sQuizLadyQuestion10[] = +{ + EC_WORD_WHICH, + EC_WORD_GOES, + EC_WORD_WITH, + EC_WORD_CENTER, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_POKEDEX, + EC_WORD_POKEMON, + EC_WORD_POKENAV +}; + +static const u16 sQuizLadyQuestion11[] = +{ + EC_WORD_WHICH, + EC_WORD_STORES, + EC_WORD_YOUR, + EC_WORD_POKEMON, + EC_WORD_QUES, + 0xFFFF, + EC_WORD_PC, + EC_WORD_DEPT_STORE, + EC_WORD_TELEVISION +}; + +static const u16 sQuizLadyQuestion12[] = +{ + EC_WORD_WHICH, + EC_WORD_MACHINE, + EC_WORD_GIVES, + EC_WORD_YOU, + EC_WORD_INFORMATION, + EC_WORD_QUES, + EC_WORD_BIKE, + EC_WORD_LOCOMOTIVE, + EC_WORD_TELEVISION +}; + +static const u16 sQuizLadyQuestion13[] = +{ + EC_WORD_A, + EC_WORD_POKEMON, + EC_WORD_WAS, + EC_WORD_ONCE, + EC_WORD_THIS, + EC_WORD_QUES, + EC_WORD_PHONE, + EC_WORD_PLUSH_DOLL, + EC_WORD_LETTER +}; + +static const u16 sQuizLadyQuestion14[] = +{ + EC_WORD_STEEL, + EC_WORD_IS, + EC_WORD_STRONG, + EC_WORD_VERSUS, + EC_WORD_WHICH, + EC_WORD_QUES, + EC_WORD_ICE, + EC_WORD_GROUND, + 0xFFFF +}; + +static const u16 sQuizLadyQuestion15[] = +{ + EC_WORD_DARK, + EC_WORD_IS, + EC_WORD_WEAK, + EC_WORD_VERSUS, + EC_WORD_WHICH, + EC_WORD_QUES, + EC_WORD_PSYCHIC, + EC_WORD_FIGHTING, + 0xFFFF +}; + +static const u16 sQuizLadyQuestion16[] = +{ + EC_WORD_GHOST, + EC_WORD_IS, + EC_WORD_WEAK, + EC_WORD_VERSUS, + EC_WORD_WHICH, + EC_WORD_QUES, + EC_WORD_NORMAL, + EC_WORD_DARK, + 0xFFFF +}; + +static const u16 *const sQuizLadyQuizQuestions[] = +{ + sQuizLadyQuestion1, + sQuizLadyQuestion2, + sQuizLadyQuestion3, + sQuizLadyQuestion4, + sQuizLadyQuestion5, + sQuizLadyQuestion6, + sQuizLadyQuestion7, + sQuizLadyQuestion8, + sQuizLadyQuestion9, + sQuizLadyQuestion10, + sQuizLadyQuestion11, + sQuizLadyQuestion12, + sQuizLadyQuestion13, + sQuizLadyQuestion14, + sQuizLadyQuestion15, + sQuizLadyQuestion16 +}; + +static const u16 sQuizLadyQuizAnswers[] = +{ + EC_WORD_POKEDEX, + EC_WORD_DARK, + EC_WORD_LEVEL, + EC_WORD_FLOWERS, + EC_WORD_EGG, + EC_WORD_OWN_TEMPO, + EC_WORD_ROCK, + EC_WORD_SHADOW_TAG, + EC_WORD_IMMUNITY, + EC_WORD_POKEMON, + EC_WORD_PC, + EC_WORD_TELEVISION, + EC_WORD_PLUSH_DOLL, + EC_WORD_ICE, + EC_WORD_FIGHTING, + EC_WORD_DARK // DARK is accepted as the correct answer despite the fact that it's wrong +}; + +static const u16 sQuizLadyPrizes[] = +{ + ITEM_GLITTER_MAIL, + ITEM_BEAD_MAIL, + ITEM_TROPIC_MAIL, + ITEM_MAX_ETHER, + ITEM_MAX_ETHER, + ITEM_MAX_ETHER, + ITEM_WATMEL_BERRY, + ITEM_BELUE_BERRY, + ITEM_DURIN_BERRY, + ITEM_LUXURY_BALL, + ITEM_TM15_HYPER_BEAM, + ITEM_BIG_PEARL, + ITEM_STAR_PIECE, + ITEM_RARE_CANDY, + ITEM_RARE_CANDY, + ITEM_PREMIER_BALL +}; + +// Favor Lady data +static const u8 *const sFavorLadyDescriptions[] = +{ + gText_FavorLady_Slippery, + gText_FavorLady_Roundish, + gText_FavorLady_Whamish, + gText_FavorLady_Shiny, + gText_FavorLady_Sticky, + gText_FavorLady_Pointy +}; + +static const u16 sFavorLadyAcceptedItems_Slippery[] = +{ + ITEM_REPEL, + ITEM_SUPER_REPEL, + ITEM_MAX_REPEL, + ITEM_ANTIDOTE, + ITEM_PARALYZE_HEAL, + ITEM_BURN_HEAL, + ITEM_BELUE_BERRY, + ITEM_AWAKENING, + ITEM_ICE_HEAL, + ITEM_REVIVE, + ITEM_MAX_REVIVE, + ITEM_ENERGY_POWDER, + ITEM_NONE +}; + +static const u16 sFavorLadyAcceptedItems_Roundish[] = +{ + ITEM_FLUFFY_TAIL, + ITEM_PEARL, + ITEM_BIG_PEARL, + ITEM_HARD_STONE, + ITEM_SMOKE_BALL, + ITEM_SHOAL_SHELL, + ITEM_TINY_MUSHROOM, + ITEM_BIG_MUSHROOM, + ITEM_PECHA_BERRY, + ITEM_ASPEAR_BERRY, + ITEM_ORAN_BERRY, + ITEM_GREPA_BERRY, + ITEM_MAGOST_BERRY, + ITEM_WATMEL_BERRY, + ITEM_POKE_BALL, + ITEM_ULTRA_BALL, + ITEM_NONE +}; + +static const u16 sFavorLadyAcceptedItems_Whamish[] = +{ + ITEM_REVIVAL_HERB, + ITEM_POTION, + ITEM_FRESH_WATER, + ITEM_SODA_POP, + ITEM_LEMONADE, + ITEM_HARD_STONE, + ITEM_LIGHT_BALL, + ITEM_LAVA_COOKIE, + ITEM_CHESTO_BERRY, + ITEM_NANAB_BERRY, + ITEM_WEPEAR_BERRY, + ITEM_KELPSY_BERRY, + ITEM_NOMEL_BERRY, + ITEM_DURIN_BERRY, + ITEM_NONE +}; + +static const u16 sFavorLadyAcceptedItems_Shiny[] = +{ + ITEM_HEAL_POWDER, + ITEM_X_SPEED, + ITEM_X_ATTACK, + ITEM_X_DEFEND, + ITEM_BLUE_FLUTE, + ITEM_YELLOW_FLUTE, + ITEM_RED_FLUTE, + ITEM_BLACK_FLUTE, + ITEM_WHITE_FLUTE, + ITEM_NUGGET, + ITEM_SUN_STONE, + ITEM_STARDUST, + ITEM_STAR_PIECE, + ITEM_PEARL, + ITEM_BIG_PEARL, + ITEM_TWISTED_SPOON, + ITEM_SILVER_POWDER, + ITEM_BRIGHT_POWDER, + ITEM_LUXURY_BALL, + ITEM_PREMIER_BALL, + ITEM_NONE +}; + +static const u16 sFavorLadyAcceptedItems_Sticky[] = +{ + ITEM_ENERGY_ROOT, + ITEM_FULL_RESTORE, + ITEM_MAX_POTION, + ITEM_DIRE_HIT, + ITEM_X_ACCURACY, + ITEM_GUARD_SPEC, + ITEM_WATMEL_BERRY, + ITEM_LEFTOVERS, + ITEM_TINY_MUSHROOM, + ITEM_HEART_SCALE, + ITEM_NONE +}; + +static const u16 sFavorLadyAcceptedItems_Pointy[] = +{ + ITEM_QUICK_CLAW, + ITEM_POISON_BARB, + ITEM_SHARP_BEAK, + ITEM_DRAGON_FANG, + ITEM_TAMATO_BERRY, + ITEM_DURIN_BERRY, + ITEM_PETAYA_BERRY, + ITEM_SALAC_BERRY, + ITEM_STARDUST, + ITEM_STAR_PIECE, + ITEM_NONE +}; + +static const u16 *const sFavorLadyAcceptedItemLists[] = +{ + sFavorLadyAcceptedItems_Slippery, + sFavorLadyAcceptedItems_Roundish, + sFavorLadyAcceptedItems_Whamish, + sFavorLadyAcceptedItems_Shiny, + sFavorLadyAcceptedItems_Sticky, + sFavorLadyAcceptedItems_Pointy +}; + +static const u16 sFavorLadyPrizes[] = +{ + ITEM_LUXURY_BALL, + ITEM_NUGGET, + ITEM_PROTEIN, + ITEM_HEART_SCALE, + ITEM_RARE_CANDY, + ITEM_PP_MAX +}; + + +static const u8 *const sContestLadyMonNames[] = +{ + gText_ContestLady_Handsome, + gText_ContestLady_Vinny, + gText_ContestLady_Moreme, + gText_ContestLady_Ironhard, + gText_ContestLady_Muscle +}; + +static const u8 *const sContestLadyCategoryNames[] = +{ + gText_ContestLady_Coolness, + gText_ContestLady_Beauty, + gText_ContestLady_Cuteness, + gText_ContestLady_Smartness, + gText_ContestLady_Toughness +}; + +static const u8 *const sContestNames[] = +{ + gText_CoolnessContest, + gText_BeautyContest, + gText_CutenessContest, + gText_SmartnessContest, + gText_ToughnessContest +}; + +static const u16 sContestLadyMonSpecies[] = +{ + SPECIES_ZIGZAGOON, + SPECIES_SKITTY, + SPECIES_POOCHYENA, + SPECIES_KECLEON, + SPECIES_PIKACHU +}; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index ef43841ef6..b4a056eb39 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -17,11 +17,10 @@ #include "contest.h" #include "berry.h" #include "strings.h" -#include "constants/easy_chat.h" -#include "constants/event_objects.h" -#include "constants/items.h" -#include "constants/species.h" -#include "constants/moves.h" + +// TODO use array count macro? +#define QUIZ_QUESTION_LEN 9 +#define QUIZ_QUESTION_NUM 16 enum { @@ -37,8 +36,8 @@ enum QUIZ_PHASE_GIVE_PRIZE }; +#include "data/lilycove_lady.h" -//TODO name phases static void InitLilycoveQuizLady(void); static void InitLilycoveFavorLady(void); @@ -50,473 +49,7 @@ static u8 BufferAuthorName(void); static bool8 IsQuizTrainerIdNotPlayer(void); static u8 GetPlayerNameLength(const u8 *); -static const u16 sContestLadyMonGfxId[] = -{ - EVENT_OBJ_GFX_ZIGZAGOON_1, - EVENT_OBJ_GFX_SKITTY, - EVENT_OBJ_GFX_POOCHYENA, - EVENT_OBJ_GFX_KECLEON_1, - EVENT_OBJ_GFX_PIKACHU -}; -static const u16 sLilycoveLadyGfxId[] = -{ - EVENT_OBJ_GFX_WOMAN_4, - EVENT_OBJ_GFX_WOMAN_2, - EVENT_OBJ_GFX_GIRL_2 -}; - -// Quiz Lady data -static const u16 sQuizLadyQuestion1[] = -{ - EC_WORD_WHICH, - EC_WORD_STORES, - EC_WORD_INFORMATION, - EC_WORD_ON, - EC_WORD_POKEMON, - EC_WORD_QUES, - EC_WORD_CAMERA, - EC_WORD_POKEDEX, - EC_WORD_POKENAV -}; - -static const u16 sQuizLadyQuestion2[] = -{ - EC_WORD_WHICH, - EC_WORD_ISN_T, - EC_WORD_A, - EC_WORD_GAME, - EC_WORD_VERSION, - EC_WORD_QUES, - EC_WORD_RUBY, - EC_WORD_SAPPHIRE, - EC_WORD_DARK -}; - -static const u16 sQuizLadyQuestion3[] = -{ - EC_WORD_HOW, - EC_WORD_DO, - EC_WORD_POKEMON, - EC_WORD_EVOLVE, - EC_WORD_QUES, - 0xFFFF, - EC_WORD_LEVEL, - EC_WORD_INSOMNIA, - EC_WORD_CUTE_CHARM -}; - -static const u16 sQuizLadyQuestion4[] = -{ - EC_WORD_WHICH, - EC_WORD_IS, - EC_WORD_THE, - EC_WORD_PRETTY, - EC_WORD_ITEM, - EC_WORD_QUES, - EC_WORD_COLD, - EC_WORD_FLOWERS, - EC_WORD_MACHINE -}; - -static const u16 sQuizLadyQuestion5[] = -{ - EC_WORD_WHICH, - EC_WORD_ITEM, - EC_WORD_DO, - EC_WORD_YOU, - EC_WORD_BREAK, - EC_WORD_QUES, - EC_WORD_EGG, - EC_WORD_MAIL, - EC_WORD_PHONE -}; - -static const u16 sQuizLadyQuestion6[] = -{ - EC_WORD_WHICH, - EC_WORD_WILL, - EC_WORD_STOP, - EC_MOVE2(CONFUSION), - EC_WORD_QUES, - 0xFFFF, - EC_WORD_ILLUMINATE, - EC_WORD_OWN_TEMPO, - EC_WORD_SWIFT_SWIM -}; - -static const u16 sQuizLadyQuestion7[] = -{ - EC_WORD_WHICH, - EC_WORD_OF, - EC_WORD_THESE, - EC_WORD_IS, - EC_WORD_MUSIC, - EC_WORD_QUES, - EC_WORD_FLYING, - EC_WORD_STEEL, - EC_WORD_ROCK -}; - -static const u16 sQuizLadyQuestion8[] = -{ - EC_WORD_WHICH, - EC_WORD_WILL, - EC_MOVE2(BLOCK), - EC_WORD_ESCAPE, - EC_WORD_QUES, - 0xFFFF, - EC_WORD_RUN_AWAY, - EC_WORD_SHADOW_TAG, - EC_WORD_WONDER_GUARD -}; - -static const u16 sQuizLadyQuestion9[] = -{ - EC_WORD_WHICH, - EC_WORD_WILL, - EC_WORD_STOP, - EC_WORD_POISON, - EC_WORD_QUES, - 0xFFFF, - EC_WORD_GUTS, - EC_WORD_IMMUNITY, - EC_WORD_SHED_SKIN -}; - -static const u16 sQuizLadyQuestion10[] = -{ - EC_WORD_WHICH, - EC_WORD_GOES, - EC_WORD_WITH, - EC_WORD_CENTER, - EC_WORD_QUES, - 0xFFFF, - EC_WORD_POKEDEX, - EC_WORD_POKEMON, - EC_WORD_POKENAV -}; - -static const u16 sQuizLadyQuestion11[] = -{ - EC_WORD_WHICH, - EC_WORD_STORES, - EC_WORD_YOUR, - EC_WORD_POKEMON, - EC_WORD_QUES, - 0xFFFF, - EC_WORD_PC, - EC_WORD_DEPT_STORE, - EC_WORD_TELEVISION -}; - -static const u16 sQuizLadyQuestion12[] = -{ - EC_WORD_WHICH, - EC_WORD_MACHINE, - EC_WORD_GIVES, - EC_WORD_YOU, - EC_WORD_INFORMATION, - EC_WORD_QUES, - EC_WORD_BIKE, - EC_WORD_LOCOMOTIVE, - EC_WORD_TELEVISION -}; - -static const u16 sQuizLadyQuestion13[] = -{ - EC_WORD_A, - EC_WORD_POKEMON, - EC_WORD_WAS, - EC_WORD_ONCE, - EC_WORD_THIS, - EC_WORD_QUES, - EC_WORD_PHONE, - EC_WORD_PLUSH_DOLL, - EC_WORD_LETTER -}; - -static const u16 sQuizLadyQuestion14[] = -{ - EC_WORD_STEEL, - EC_WORD_IS, - EC_WORD_STRONG, - EC_WORD_VERSUS, - EC_WORD_WHICH, - EC_WORD_QUES, - EC_WORD_ICE, - EC_WORD_GROUND, - 0xFFFF -}; - -static const u16 sQuizLadyQuestion15[] = -{ - EC_WORD_DARK, - EC_WORD_IS, - EC_WORD_WEAK, - EC_WORD_VERSUS, - EC_WORD_WHICH, - EC_WORD_QUES, - EC_WORD_PSYCHIC, - EC_WORD_FIGHTING, - 0xFFFF -}; - -static const u16 sQuizLadyQuestion16[] = -{ - EC_WORD_GHOST, - EC_WORD_IS, - EC_WORD_WEAK, - EC_WORD_VERSUS, - EC_WORD_WHICH, - EC_WORD_QUES, - EC_WORD_NORMAL, - EC_WORD_DARK, - 0xFFFF -}; - -static const u16 *const sQuizLadyQuizQuestions[] = -{ - sQuizLadyQuestion1, - sQuizLadyQuestion2, - sQuizLadyQuestion3, - sQuizLadyQuestion4, - sQuizLadyQuestion5, - sQuizLadyQuestion6, - sQuizLadyQuestion7, - sQuizLadyQuestion8, - sQuizLadyQuestion9, - sQuizLadyQuestion10, - sQuizLadyQuestion11, - sQuizLadyQuestion12, - sQuizLadyQuestion13, - sQuizLadyQuestion14, - sQuizLadyQuestion15, - sQuizLadyQuestion16 -}; - -static const u16 sQuizLadyQuizAnswers[] = -{ - EC_WORD_POKEDEX, - EC_WORD_DARK, - EC_WORD_LEVEL, - EC_WORD_FLOWERS, - EC_WORD_EGG, - EC_WORD_OWN_TEMPO, - EC_WORD_ROCK, - EC_WORD_SHADOW_TAG, - EC_WORD_IMMUNITY, - EC_WORD_POKEMON, - EC_WORD_PC, - EC_WORD_TELEVISION, - EC_WORD_PLUSH_DOLL, - EC_WORD_ICE, - EC_WORD_FIGHTING, - EC_WORD_DARK // DARK is accepted as the correct answer despite the fact that it's wrong -}; - -static const u16 sQuizLadyPrizes[] = -{ - ITEM_GLITTER_MAIL, - ITEM_BEAD_MAIL, - ITEM_TROPIC_MAIL, - ITEM_MAX_ETHER, - ITEM_MAX_ETHER, - ITEM_MAX_ETHER, - ITEM_WATMEL_BERRY, - ITEM_BELUE_BERRY, - ITEM_DURIN_BERRY, - ITEM_LUXURY_BALL, - ITEM_TM15_HYPER_BEAM, - ITEM_BIG_PEARL, - ITEM_STAR_PIECE, - ITEM_RARE_CANDY, - ITEM_RARE_CANDY, - ITEM_PREMIER_BALL -}; - -#define QUIZ_QUESTION_LEN 9 -#define QUIZ_QUESTION_NUM 16 - -// Favor Lady data -static const u8 *const sFavorLadyDescriptions[] = -{ - gText_FavorLady_Slippery, - gText_FavorLady_Roundish, - gText_FavorLady_Whamish, - gText_FavorLady_Shiny, - gText_FavorLady_Sticky, - gText_FavorLady_Pointy -}; - -static const u16 sFavorLadyAcceptedItems_Slippery[] = -{ - ITEM_REPEL, - ITEM_SUPER_REPEL, - ITEM_MAX_REPEL, - ITEM_ANTIDOTE, - ITEM_PARALYZE_HEAL, - ITEM_BURN_HEAL, - ITEM_BELUE_BERRY, - ITEM_AWAKENING, - ITEM_ICE_HEAL, - ITEM_REVIVE, - ITEM_MAX_REVIVE, - ITEM_ENERGY_POWDER, - ITEM_NONE -}; - -static const u16 sFavorLadyAcceptedItems_Roundish[] = -{ - ITEM_FLUFFY_TAIL, - ITEM_PEARL, - ITEM_BIG_PEARL, - ITEM_HARD_STONE, - ITEM_SMOKE_BALL, - ITEM_SHOAL_SHELL, - ITEM_TINY_MUSHROOM, - ITEM_BIG_MUSHROOM, - ITEM_PECHA_BERRY, - ITEM_ASPEAR_BERRY, - ITEM_ORAN_BERRY, - ITEM_GREPA_BERRY, - ITEM_MAGOST_BERRY, - ITEM_WATMEL_BERRY, - ITEM_POKE_BALL, - ITEM_ULTRA_BALL, - ITEM_NONE -}; - -static const u16 sFavorLadyAcceptedItems_Whamish[] = -{ - ITEM_REVIVAL_HERB, - ITEM_POTION, - ITEM_FRESH_WATER, - ITEM_SODA_POP, - ITEM_LEMONADE, - ITEM_HARD_STONE, - ITEM_LIGHT_BALL, - ITEM_LAVA_COOKIE, - ITEM_CHESTO_BERRY, - ITEM_NANAB_BERRY, - ITEM_WEPEAR_BERRY, - ITEM_KELPSY_BERRY, - ITEM_NOMEL_BERRY, - ITEM_DURIN_BERRY, - ITEM_NONE -}; - -static const u16 sFavorLadyAcceptedItems_Shiny[] = -{ - ITEM_HEAL_POWDER, - ITEM_X_SPEED, - ITEM_X_ATTACK, - ITEM_X_DEFEND, - ITEM_BLUE_FLUTE, - ITEM_YELLOW_FLUTE, - ITEM_RED_FLUTE, - ITEM_BLACK_FLUTE, - ITEM_WHITE_FLUTE, - ITEM_NUGGET, - ITEM_SUN_STONE, - ITEM_STARDUST, - ITEM_STAR_PIECE, - ITEM_PEARL, - ITEM_BIG_PEARL, - ITEM_TWISTED_SPOON, - ITEM_SILVER_POWDER, - ITEM_BRIGHT_POWDER, - ITEM_LUXURY_BALL, - ITEM_PREMIER_BALL, - ITEM_NONE -}; - -static const u16 sFavorLadyAcceptedItems_Sticky[] = -{ - ITEM_ENERGY_ROOT, - ITEM_FULL_RESTORE, - ITEM_MAX_POTION, - ITEM_DIRE_HIT, - ITEM_X_ACCURACY, - ITEM_GUARD_SPEC, - ITEM_WATMEL_BERRY, - ITEM_LEFTOVERS, - ITEM_TINY_MUSHROOM, - ITEM_HEART_SCALE, - ITEM_NONE -}; - -static const u16 sFavorLadyAcceptedItems_Pointy[] = -{ - ITEM_QUICK_CLAW, - ITEM_POISON_BARB, - ITEM_SHARP_BEAK, - ITEM_DRAGON_FANG, - ITEM_TAMATO_BERRY, - ITEM_DURIN_BERRY, - ITEM_PETAYA_BERRY, - ITEM_SALAC_BERRY, - ITEM_STARDUST, - ITEM_STAR_PIECE, - ITEM_NONE -}; - -static const u16 *const sFavorLadyAcceptedItemLists[] = -{ - sFavorLadyAcceptedItems_Slippery, - sFavorLadyAcceptedItems_Roundish, - sFavorLadyAcceptedItems_Whamish, - sFavorLadyAcceptedItems_Shiny, - sFavorLadyAcceptedItems_Sticky, - sFavorLadyAcceptedItems_Pointy -}; - -static const u16 sFavorLadyPrizes[] = -{ - ITEM_LUXURY_BALL, - ITEM_NUGGET, - ITEM_PROTEIN, - ITEM_HEART_SCALE, - ITEM_RARE_CANDY, - ITEM_PP_MAX -}; - - -static const u8 *const sContestLadyMonNames[] = -{ - gText_ContestLady_Handsome, - gText_ContestLady_Vinny, - gText_ContestLady_Moreme, - gText_ContestLady_Ironhard, - gText_ContestLady_Muscle -}; - -static const u8 *const sContestLadyCategoryNames[] = -{ - gText_ContestLady_Coolness, - gText_ContestLady_Beauty, - gText_ContestLady_Cuteness, - gText_ContestLady_Smartness, - gText_ContestLady_Toughness -}; - -static const u8 *const sContestNames[] = -{ - gText_CoolnessContest, - gText_BeautyContest, - gText_CutenessContest, - gText_SmartnessContest, - gText_ToughnessContest -}; - -static const u16 sContestLadyMonSpecies[] = -{ - SPECIES_ZIGZAGOON, - SPECIES_SKITTY, - SPECIES_POOCHYENA, - SPECIES_KECLEON, - SPECIES_PIKACHU -}; static EWRAM_DATA struct LilycoveLadyFavor *sFavorLadyPtr = NULL; static EWRAM_DATA struct LilycoveLadyQuiz *sQuizLadyPtr = NULL; @@ -1223,27 +756,27 @@ bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock) return response; } -static void sub_818E794(u8 *dest1, u8 *dest2) //sub_818E794 +static void BufferContestLadyCategoryAndMonName(u8 *dest1, u8 *dest2) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; StringCopy(dest1, sContestLadyCategoryNames[sContestLadyPtr->category]); StringCopy10(dest2, sContestLadyMonNames[sContestLadyPtr->category]); } -void sub_818E7E0(u8 *dest1, u8 *dest2) +void BufferContestLadyMonName(u8 *dest1, u8 *dest2) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; *dest1 = sContestLadyPtr->category; StringCopy(dest2, sContestLadyMonNames[sContestLadyPtr->category]); } -void sub_818E81C(u8 *dest) +void BufferContestLadyPlayerName(u8 *dest) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; StringCopy(dest, sContestLadyPtr->playerName); } -void sub_818E848(u8 *dest) +void BufferContestLadyLanguage(u8 *dest) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; *dest = sContestLadyPtr->language; @@ -1298,7 +831,7 @@ bool8 sub_818E8E0(void) // called when mon enjoys pokeblock void sub_818E914(void) { - sub_818E794(gStringVar2, gStringVar1); + BufferContestLadyCategoryAndMonName(gStringVar2, gStringVar1); } void OpenPokeblockCaseForContestLady(void) diff --git a/src/tv.c b/src/tv.c index ad3a4f3153..ef826a4afd 100644 --- a/src/tv.c +++ b/src/tv.c @@ -1657,12 +1657,12 @@ void PutLilycoveContestLadyShowOnTheAir(void) if (gSpecialVar_Result != TRUE) { show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; - sub_818E848(&show->contestLiveUpdates2.language); + BufferContestLadyLanguage(&show->contestLiveUpdates2.language); show->contestLiveUpdates2.pokemonNameLanguage = LANGUAGE_ENGLISH; show->contestLiveUpdates2.kind = TVSHOW_CONTEST_LIVE_UPDATES_2; show->contestLiveUpdates2.active = TRUE; - sub_818E81C(show->contestLiveUpdates2.playerName); - sub_818E7E0(&show->contestLiveUpdates2.contestCategory, show->contestLiveUpdates2.nickname); + BufferContestLadyPlayerName(show->contestLiveUpdates2.playerName); + BufferContestLadyMonName(&show->contestLiveUpdates2.contestCategory, show->contestLiveUpdates2.nickname); show->contestLiveUpdates2.pokeblockState = sub_818E880(); tv_store_id_2x(show); } From 7fc99f39525a89aa0f3158b98bc61e709bebdfa2 Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Sun, 4 Aug 2019 23:12:49 -0400 Subject: [PATCH 19/29] favor lady funcs --- data/event_scripts.s | 30 +++---- data/specials.inc | 28 +++--- include/global.h | 13 +-- include/lilycove_lady.h | 4 +- src/lilycove_lady.c | 186 +++++++++++++++++++++------------------- src/new_game.c | 2 +- src/record_mixing.c | 2 +- 7 files changed, 138 insertions(+), 127 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 50eb0dac05..397cbd5037 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -4292,7 +4292,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8395:: @ 82A8395 lock faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_2A8A69, MSGBOX_DEFAULT - specialvar VAR_RESULT, sub_818DBE8 + specialvar VAR_RESULT, GetFavorLadyState compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A83D0 compare VAR_RESULT, 1 @@ -4317,9 +4317,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A83D0:: @ 82A83D0 end LilycoveCity_PokemonCenter_1F_EventScript_2A83F7:: @ 82A83F7 - special sub_818DCC8 - special sub_818DD14 - specialvar VAR_RESULT, sub_818DD54 + special BufferFavorLadyItemName + special BufferFavorLadyPlayerName + specialvar VAR_RESULT, DidFavorLadyLikeItem compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8419 compare VAR_RESULT, 1 @@ -4357,7 +4357,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A845E:: @ 82A845E LilycoveCity_PokemonCenter_1F_EventScript_2A846C:: @ 82A846C fadescreen 1 setvar VAR_RESULT, 0 - special OpenBagMenuForFavorLady + special FavorLadyOpenBagMenu waitstate compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A848E @@ -4374,7 +4374,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A848E:: @ 82A848E end LilycoveCity_PokemonCenter_1F_EventScript_2A84AD:: @ 82A84AD - specialvar VAR_RESULT, sub_818DE44 + specialvar VAR_RESULT, Script_ShowFavorLadyItem compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A84C9 compare VAR_RESULT, 1 @@ -4388,7 +4388,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84C9:: @ 82A84C9 end LilycoveCity_PokemonCenter_1F_EventScript_2A84D6:: @ 82A84D6 - specialvar VAR_RESULT, sub_818DE5C + specialvar VAR_RESULT, DidFavorLadyLoveItem compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A84F2 compare VAR_RESULT, 1 @@ -4409,7 +4409,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84FF:: @ 82A84FF LilycoveCity_PokemonCenter_1F_EventScript_2A8510:: @ 82A8510 setvar VAR_0x8004, 0 - specialvar VAR_0x8004, sub_818DEA0 + specialvar VAR_0x8004, FavorLadyGetPrize msgbox LilycoveCity_PokemonCenter_1F_Text_2A8D5D, MSGBOX_DEFAULT giveitem_std VAR_0x8004 compare VAR_RESULT, 0 @@ -4424,7 +4424,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8545:: @ 82A8545 end LilycoveCity_PokemonCenter_1F_EventScript_2A854F:: @ 82A854F - special sub_818DEDC + special SetFavorLadyState_Complete release end @@ -4432,7 +4432,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8554:: @ 82A8554 lock faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_2A8E2B, MSGBOX_DEFAULT - specialvar VAR_RESULT, GetQuizLadyPhase + specialvar VAR_RESULT, GetQuizLadyState compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8585 compare VAR_RESULT, 1 @@ -4442,7 +4442,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8554:: @ 82A8554 end LilycoveCity_PokemonCenter_1F_EventScript_2A8585:: @ 82A8585 - specialvar VAR_RESULT, sub_818E06C + specialvar VAR_RESULT, GetQuizAuthor compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A85C8 compare VAR_RESULT, 1 @@ -4509,7 +4509,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A864C:: @ 82A864C end LilycoveCity_PokemonCenter_1F_EventScript_2A8656:: @ 82A8656 - special sub_818E2FC + special QuizLadyShowEasyChatScreen waitstate goto LilycoveCity_PokemonCenter_1F_EventScript_2A8635 end @@ -4528,7 +4528,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A867F:: @ 82A867F end LilycoveCity_PokemonCenter_1F_EventScript_2A8689:: @ 82A8689 - special SetQuizLadyPhase_MakeYourOwn + special SetQuizLadyState_Complete msgbox LilycoveCity_PokemonCenter_1F_Text_2A8F4D, MSGBOX_DEFAULT specialvar VAR_RESULT, sub_818E308 compare VAR_RESULT, 0 @@ -4577,7 +4577,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8716:: @ 82A8716 LilycoveCity_PokemonCenter_1F_EventScript_2A8724:: @ 82A8724 setvar VAR_0x8005, 0 special BufferQuizPrizeItem - special SetQuizLadyPhase_MakeYourOwn + special SetQuizLadyState_Complete giveitem_std VAR_0x8005 compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A874C @@ -4586,7 +4586,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8724:: @ 82A8724 LilycoveCity_PokemonCenter_1F_EventScript_2A874C:: @ 82A874C msgbox LilycoveCity_PokemonCenter_1F_Text_2A906A, MSGBOX_DEFAULT - special SetQuizLadyPhase_GivePrize + special SetQuizLadyState_GivePrize release end diff --git a/data/specials.inc b/data/specials.inc index 5c2eaa7601..ac25698e49 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -374,27 +374,27 @@ gSpecials:: @ 81DBA64 def_special SetSecretBaseSecretsTvFlags_Poster def_special SetLilycoveLadyGfx def_special Script_GetLilycoveLadyId - def_special sub_818DBE8 + def_special GetFavorLadyState def_special BufferFavorLadyDescription def_special sub_818DC60 - def_special sub_818DCC8 - def_special sub_818DD14 - def_special sub_818DD54 - def_special OpenBagMenuForFavorLady - def_special sub_818DE44 - def_special sub_818DE5C - def_special sub_818DEA0 - def_special sub_818DEDC - def_special GetQuizLadyPhase - def_special sub_818E06C + def_special BufferFavorLadyItemName + def_special BufferFavorLadyPlayerName + def_special DidFavorLadyLikeItem + def_special FavorLadyOpenBagMenu + def_special Script_ShowFavorLadyItem + def_special DidFavorLadyLoveItem + def_special FavorLadyGetPrize + def_special SetFavorLadyState_Complete + def_special GetQuizLadyState + def_special GetQuizAuthor def_special IsQuizLadyWaitingForChallenger def_special sub_811A858 - def_special sub_818E2FC + def_special QuizLadyShowEasyChatScreen def_special sub_818E308 def_special BufferQuizPrizeItem - def_special SetQuizLadyPhase_MakeYourOwn + def_special SetQuizLadyState_Complete def_special sub_818E298 - def_special SetQuizLadyPhase_GivePrize + def_special SetQuizLadyState_GivePrize def_special ClearQuizLadyResponse def_special sub_818E3E0 def_special sub_818E430 diff --git a/include/global.h b/include/global.h index a25100bd9b..a055cb2c09 100644 --- a/include/global.h +++ b/include/global.h @@ -741,13 +741,14 @@ enum { LILYCOVE_LADY_QUIZ, LILYCOVE_LADY_FAVOR, - LILYCOVE_LADY_CONTEST + LILYCOVE_LADY_CONTEST, + LILYCOVE_LADY_COUNT }; struct LilycoveLadyQuiz { /*0x000*/ u8 id; - /*0x001*/ u8 phase; + /*0x001*/ u8 state; /*0x002*/ u16 question[9]; /*0x014*/ u16 answer; /*0x016*/ u16 response; @@ -763,13 +764,13 @@ struct LilycoveLadyQuiz struct LilycoveLadyFavor { /*0x000*/ u8 id; - /*0x001*/ u8 phase; - /*0x002*/ u8 unk_002; - /*0x003*/ u8 unk_003; + /*0x001*/ u8 state; + /*0x002*/ bool8 likedItem; + /*0x003*/ u8 numItemsGiven; /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x00c*/ u8 favorId; /*0x00e*/ u16 itemId; - /*0x010*/ u16 unk_010; + /*0x010*/ u16 bestItem; /*0x012*/ u8 language; }; diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index dde78b8d84..959878ac94 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -2,8 +2,8 @@ #define GUARD_LILYCOVE_LADY_H u8 GetLilycoveLadyId(void); -void SetLilycoveLady(void); -void sub_818DA78(void); +void InitLilycoveLady(void); +void ReadyLilycoveLady(void); void sub_818DEF4(void); void sub_818E564(void); void sub_818E570(const LilycoveLady *lilycoveLady); diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index b4a056eb39..77641b98fc 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -18,9 +18,16 @@ #include "berry.h" #include "strings.h" -// TODO use array count macro? -#define QUIZ_QUESTION_LEN 9 -#define QUIZ_QUESTION_NUM 16 +// TODO use array count macro? +#define QUIZ_QUESTION_LEN 9 //len of sQuizLadyQuestion# +#define NUM_QUIZ_QUESTIONS 16 //len of sQuizLadyQuizQuestions +#define FAVOR_DESCRIPTION_NUM 6 //len of sFavorLadyDescriptions + +// TODO not a great name? The number of successes required to receive +// an item from the favor lady. Reached automatically if the randomly +// selected 'best' item is given to her +#define FAVOR_GIFT_MAX 5 + enum { @@ -31,26 +38,24 @@ enum enum { - QUIZ_PHASE_ATTEMPT_QUIZ, - QUIZ_PHASE_MAKE_YOUR_OWN, - QUIZ_PHASE_GIVE_PRIZE + LILYCOVE_LADY_STATE_READY, + LILYCOVE_LADY_STATE_COMPLETED, + LILYCOVE_LADY_STATE_PRIZE }; -#include "data/lilycove_lady.h" +#include "data/lilycove_lady.h" static void InitLilycoveQuizLady(void); static void InitLilycoveFavorLady(void); static void InitLilycoveContestLady(void); -static void sub_818E004(void); -static void sub_818DBC4(void); -static void sub_818E674(void); +static void ReadyQuizLady(void); +static void ReadyFavorLady(void); +static void ReadyContestLady(void); static u8 BufferAuthorName(void); static bool8 IsQuizTrainerIdNotPlayer(void); static u8 GetPlayerNameLength(const u8 *); - - static EWRAM_DATA struct LilycoveLadyFavor *sFavorLadyPtr = NULL; static EWRAM_DATA struct LilycoveLadyQuiz *sQuizLadyPtr = NULL; static EWRAM_DATA struct LilycoveLadyContest *sContestLadyPtr = NULL; @@ -79,12 +84,12 @@ void SetLilycoveLadyGfx(void) } } -void SetLilycoveLady(void) +void InitLilycoveLady(void) { u16 id; id = ((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]); - id %= 6; + id %= 6; //TODO num lilycove ladies * 2. constant? id >>= 1; switch (id) { @@ -100,28 +105,30 @@ void SetLilycoveLady(void) } } -void sub_818DA78(void) +// Used after mixing records +void ReadyLilycoveLady(void) { switch (GetLilycoveLadyId()) { case LILYCOVE_LADY_QUIZ: - sub_818E004(); + ReadyQuizLady(); break; case LILYCOVE_LADY_FAVOR: - sub_818DBC4(); + ReadyFavorLady(); break; case LILYCOVE_LADY_CONTEST: - sub_818E674(); + ReadyContestLady(); break; } } -void SetLilycoveLadyRandomly(void) +// Unused? +void InitLilycoveLadyRandomly(void) { - u8 id; + u8 lady; - id = Random() % 3; - switch (id) + lady = Random() % LILYCOVE_LADY_COUNT; + switch (lady) { case LILYCOVE_LADY_QUIZ: InitLilycoveQuizLady(); @@ -148,51 +155,51 @@ static u8 GetNumAcceptedItems(const u16 *itemsArray) return items; } -static void sub_818DB20(void) +static void FavorLadyPickFavorAndBestItem(void) { u8 size; u8 idx; - sFavorLadyPtr->favorId = Random() % 6; + sFavorLadyPtr->favorId = Random() % FAVOR_DESCRIPTION_NUM; size = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]); idx = Random() % size; - sFavorLadyPtr->unk_010 = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][idx]; + sFavorLadyPtr->bestItem = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][idx]; } static void InitLilycoveFavorLady(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; sFavorLadyPtr->id = LILYCOVE_LADY_FAVOR; - sFavorLadyPtr->phase = 0; + sFavorLadyPtr->state = LILYCOVE_LADY_STATE_READY; sFavorLadyPtr->playerName[0] = EOS; - sFavorLadyPtr->unk_002 = 0; - sFavorLadyPtr->unk_003= 0; + sFavorLadyPtr->likedItem = FALSE; + sFavorLadyPtr->numItemsGiven = 0; sFavorLadyPtr->itemId = ITEM_NONE; sFavorLadyPtr->language = gGameLanguage; - sub_818DB20(); + FavorLadyPickFavorAndBestItem(); } -static void sub_818DBC4(void) +static void ReadyFavorLady(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; sFavorLadyPtr->id = LILYCOVE_LADY_FAVOR; - sFavorLadyPtr->phase = 0; + sFavorLadyPtr->state = LILYCOVE_LADY_STATE_READY; } -u8 sub_818DBE8(void) +u8 GetFavorLadyState(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; - if (sFavorLadyPtr->phase == 2) + if (sFavorLadyPtr->state == LILYCOVE_LADY_STATE_PRIZE) { - return 2; + return LILYCOVE_LADY_STATE_PRIZE; } - else if (sFavorLadyPtr->phase == 1) + else if (sFavorLadyPtr->state == LILYCOVE_LADY_STATE_COMPLETED) { - return 1; + return LILYCOVE_LADY_STATE_COMPLETED; } else { - return 0; + return LILYCOVE_LADY_STATE_READY; } } @@ -224,80 +231,82 @@ static void BufferItemName(u8 *dest, u16 itemId) StringCopy(dest, ItemId_GetName(itemId)); } -void sub_818DCC8(void) +void BufferFavorLadyItemName(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; BufferItemName(gStringVar2, sFavorLadyPtr->itemId); } -static void sub_818DCF4(const u8 *src, u8 *dest) +static void SetFavorLadyPlayerName(const u8 *src, u8 *dest) { memset(dest, 0xFF, 8); StringCopy7(dest, src); } -void sub_818DD14(void) +void BufferFavorLadyPlayerName(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; - sub_818DCF4(sFavorLadyPtr->playerName, gStringVar3); + SetFavorLadyPlayerName(sFavorLadyPtr->playerName, gStringVar3); ConvertInternationalString(gStringVar3, sFavorLadyPtr->language); } -bool8 sub_818DD54(void) +bool8 DidFavorLadyLikeItem(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; - return sFavorLadyPtr->unk_002 ? TRUE : FALSE; + return sFavorLadyPtr->likedItem ? TRUE : FALSE; } -void OpenBagMenuForFavorLady(void) +void FavorLadyOpenBagMenu(void) { sub_81AAC50(); } -static bool8 sub_818DD84(u16 itemId) +//TODO rename? +static bool8 ShowFavorLadyItem(u16 itemId) { u8 numItems; u8 i; - bool8 response; + bool8 likedItem; sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; numItems = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]); - sFavorLadyPtr->phase = 1; + sFavorLadyPtr->state = LILYCOVE_LADY_STATE_COMPLETED; BufferItemName(gStringVar2, itemId); sFavorLadyPtr->itemId = itemId; - sub_818DCF4(gSaveBlock2Ptr->playerName, sFavorLadyPtr->playerName); + SetFavorLadyPlayerName(gSaveBlock2Ptr->playerName, sFavorLadyPtr->playerName); sFavorLadyPtr->language = gGameLanguage; - response = FALSE; + likedItem = FALSE; for (i = 0; i < numItems; i ++) { if (sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][i] == itemId) { - response = TRUE; - sFavorLadyPtr->unk_003 ++; - sFavorLadyPtr->unk_002 = 1; - if (sFavorLadyPtr->unk_010 == itemId) + likedItem = TRUE; + sFavorLadyPtr->numItemsGiven++; + sFavorLadyPtr->likedItem = TRUE; + if (sFavorLadyPtr->bestItem == itemId) { - sFavorLadyPtr->unk_003 = 5; + sFavorLadyPtr->numItemsGiven = FAVOR_GIFT_MAX; } break; } - sFavorLadyPtr->unk_002 = 0; + sFavorLadyPtr->likedItem = FALSE; } - return response; + return likedItem; } -bool8 sub_818DE44(void) +bool8 Script_ShowFavorLadyItem(void) { - return sub_818DD84(gSpecialVar_ItemId); + return ShowFavorLadyItem(gSpecialVar_ItemId); } -bool8 sub_818DE5C(void) +//was item given the best item / have they given her 5 items +bool8 DidFavorLadyLoveItem(void) { u8 checkval; sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; - checkval = sFavorLadyPtr->unk_003; - return checkval < 5 ? FALSE : TRUE; + checkval = sFavorLadyPtr->numItemsGiven; + return checkval < FAVOR_GIFT_MAX ? FALSE : TRUE; } static void BufferPrizeName(u16 itemId) @@ -305,21 +314,21 @@ static void BufferPrizeName(u16 itemId) BufferItemName(gStringVar2, itemId); } -u16 sub_818DEA0(void) +u16 FavorLadyGetPrize(void) { u16 itemId; sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; itemId = sFavorLadyPrizes[sFavorLadyPtr->favorId]; BufferPrizeName(itemId); - sFavorLadyPtr->phase = 2; + sFavorLadyPtr->state = LILYCOVE_LADY_STATE_PRIZE; return itemId; } -void sub_818DEDC(void) +void SetFavorLadyState_Complete(void) { InitLilycoveFavorLady(); - sFavorLadyPtr->phase = 1; + sFavorLadyPtr->state = LILYCOVE_LADY_STATE_COMPLETED; } void sub_818DEF4(void) @@ -332,7 +341,7 @@ static void PickQuizQuestion(void) u8 questionId; u8 i; - questionId = Random() % QUIZ_QUESTION_NUM; + questionId = Random() % NUM_QUIZ_QUESTIONS; for (i = 0; i < QUIZ_QUESTION_LEN; i ++) { sQuizLadyPtr->question[i] = sQuizLadyQuizQuestions[questionId][i]; @@ -349,7 +358,7 @@ static void InitLilycoveQuizLady(void) sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; sQuizLadyPtr->id = LILYCOVE_LADY_QUIZ; - sQuizLadyPtr->phase = QUIZ_PHASE_ATTEMPT_QUIZ; + sQuizLadyPtr->state = LILYCOVE_LADY_STATE_READY; for (i = 0; i < QUIZ_QUESTION_LEN; i ++) { sQuizLadyPtr->question[i] = -1; @@ -362,41 +371,42 @@ static void InitLilycoveQuizLady(void) } sQuizLadyPtr->itemId = ITEM_NONE; sQuizLadyPtr->waitingForChallenger = FALSE; - sQuizLadyPtr->prevQuestionId = QUIZ_QUESTION_NUM; + sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS; sQuizLadyPtr->language = gGameLanguage; PickQuizQuestion(); } -static void sub_818E004(void) +static void ReadyQuizLady(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; sQuizLadyPtr->id = LILYCOVE_LADY_QUIZ; - sQuizLadyPtr->phase = QUIZ_PHASE_ATTEMPT_QUIZ; + sQuizLadyPtr->state = LILYCOVE_LADY_STATE_READY; sQuizLadyPtr->waitingForChallenger = FALSE; sQuizLadyPtr->response = -1; } -u8 GetQuizLadyPhase(void) +u8 GetQuizLadyState(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (sQuizLadyPtr->phase == QUIZ_PHASE_GIVE_PRIZE) + if (sQuizLadyPtr->state == LILYCOVE_LADY_STATE_PRIZE) { - return QUIZ_PHASE_GIVE_PRIZE; + return LILYCOVE_LADY_STATE_PRIZE; } - else if (sQuizLadyPtr->phase == QUIZ_PHASE_MAKE_YOUR_OWN) + else if (sQuizLadyPtr->state == LILYCOVE_LADY_STATE_COMPLETED) { - return QUIZ_PHASE_MAKE_YOUR_OWN; + return LILYCOVE_LADY_STATE_COMPLETED; } else { - return QUIZ_PHASE_ATTEMPT_QUIZ; + return LILYCOVE_LADY_STATE_READY; } } +// TODO enum? another enum might be excessive. why did GF swap the order from AUTHOR // 0: waiting for someone to attempt player's quiz // 1: ready to attempt other player's quiz // 2: ready to attempt lady's quiz -u8 sub_818E06C(void) //sub_818E06C +u8 GetQuizAuthor(void) { int i; int j; @@ -409,7 +419,7 @@ u8 sub_818E06C(void) //sub_818E06C i = quiz->questionId; do { - if (++ i >= QUIZ_QUESTION_NUM) + if (++ i >= NUM_QUIZ_QUESTIONS) { i = 0; } @@ -523,7 +533,7 @@ bool8 IsQuizLadyWaitingForChallenger(void) return sQuizLadyPtr->waitingForChallenger; } -void sub_818E2FC(void) //sub_818E2FC +void QuizLadyShowEasyChatScreen(void) { ShowEasyChatScreen(); } @@ -542,16 +552,16 @@ void BufferQuizPrizeItem(void) gSpecialVar_0x8005 = sQuizLadyPtr->itemId; } -void SetQuizLadyPhase_MakeYourOwn(void) +void SetQuizLadyState_Complete(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - sQuizLadyPtr->phase = QUIZ_PHASE_MAKE_YOUR_OWN; + sQuizLadyPtr->state = LILYCOVE_LADY_STATE_COMPLETED; } -void SetQuizLadyPhase_GivePrize(void) +void SetQuizLadyState_GivePrize(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - sQuizLadyPtr->phase = QUIZ_PHASE_GIVE_PRIZE; + sQuizLadyPtr->state = LILYCOVE_LADY_STATE_PRIZE; } void ClearQuizLadyResponse(void) @@ -574,7 +584,7 @@ void sub_818E3EC(void) } else { - sQuizLadyPtr->prevQuestionId = QUIZ_QUESTION_NUM; + sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS; } PickQuizQuestion(); } @@ -638,7 +648,7 @@ void sub_818E570(const LilycoveLady *lilycoveLady) u8 i; sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (lilycoveLady->quiz.prevQuestionId < QUIZ_QUESTION_NUM && sQuizLadyPtr->id == LILYCOVE_LADY_QUIZ) + if (lilycoveLady->quiz.prevQuestionId < NUM_QUIZ_QUESTIONS && sQuizLadyPtr->id == LILYCOVE_LADY_QUIZ) { for (i = 0; i < 4; i ++) { @@ -646,11 +656,11 @@ void sub_818E570(const LilycoveLady *lilycoveLady) { break; } - sQuizLadyPtr->questionId = Random() % QUIZ_QUESTION_NUM; + sQuizLadyPtr->questionId = Random() % NUM_QUIZ_QUESTIONS; } if (lilycoveLady->quiz.prevQuestionId == sQuizLadyPtr->questionId) { - sQuizLadyPtr->questionId = (sQuizLadyPtr->questionId + 1) % QUIZ_QUESTION_NUM; + sQuizLadyPtr->questionId = (sQuizLadyPtr->questionId + 1) % NUM_QUIZ_QUESTIONS; } sQuizLadyPtr->prevQuestionId = lilycoveLady->quiz.prevQuestionId; } @@ -674,7 +684,7 @@ static void InitLilycoveContestLady(void) sContestLadyPtr->language = gGameLanguage; } -static void sub_818E674(void) +static void ReadyContestLady(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; sContestLadyPtr->id = LILYCOVE_LADY_CONTEST; diff --git a/src/new_game.c b/src/new_game.c index ee67da9bed..b4d9ba9b39 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -198,7 +198,7 @@ void NewGameInitData(void) ScriptContext2_RunNewScript(EventScript_ResetAllMapFlags); ResetMiniGamesResults(); copy_strings_to_sav1(); - SetLilycoveLady(); + InitLilycoveLady(); ResetAllApprenticeData(); ClearRankingHallRecords(); InitMatchCallCounters(); diff --git a/src/record_mixing.c b/src/record_mixing.c index 6cb145c80b..44cf8044c1 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -701,7 +701,7 @@ static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSiz } memcpy(sLilycoveLadySave, (void *)lilycoveLady + recordSize * mixIndices[which], sizeof(LilycoveLady)); - sub_818DA78(); + ReadyLilycoveLady(); if (dest != NULL) { sub_818E570(dest); From d931ba96020397ec9a9740a9d67aac8a99bf11f6 Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Mon, 5 Aug 2019 20:37:09 -0400 Subject: [PATCH 20/29] document remaining funcs --- data/event_scripts.s | 90 +++++----- data/specials.inc | 44 ++--- include/constants/lilycove_lady.h | 30 ++++ include/global.h | 20 +-- include/item_menu.h | 4 +- include/lilycove_lady.h | 8 +- src/data/lilycove_lady.h | 4 +- src/easy_chat.c | 15 +- src/item_menu.c | 24 +-- src/lilycove_lady.c | 288 +++++++++++++----------------- src/record_mixing.c | 4 +- 11 files changed, 263 insertions(+), 268 deletions(-) create mode 100644 include/constants/lilycove_lady.h diff --git a/data/event_scripts.s b/data/event_scripts.s index 397cbd5037..5ad4fa7786 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -19,6 +19,7 @@ #include "constants/vars.h" #include "constants/weather.h" #include "constants/trainer_hill.h" +#include "constants/lilycove_lady.h" #include "constants/battle.h" #include "constants/metatile_labels.h" .include "asm/macros.inc" @@ -4283,9 +4284,9 @@ GraniteCave_B1F_Movement_2A8369: @ 82A8369 LilycoveCity_PokemonCenter_1F_EventScript_2A836B:: @ 82A836B special Script_GetLilycoveLadyId switch VAR_RESULT - case 0, LilycoveCity_PokemonCenter_1F_EventScript_2A8554 - case 1, LilycoveCity_PokemonCenter_1F_EventScript_2A8395 - case 2, LilycoveCity_PokemonCenter_1F_EventScript_2A882A + case LILYCOVE_LADY_QUIZ, LilycoveCity_PokemonCenter_1F_EventScript_2A8554 + case LILYCOVE_LADY_FAVOR, LilycoveCity_PokemonCenter_1F_EventScript_2A8395 + case LILYCOVE_LADY_CONTEST, LilycoveCity_PokemonCenter_1F_EventScript_2A882A end LilycoveCity_PokemonCenter_1F_EventScript_2A8395:: @ 82A8395 @@ -4293,11 +4294,11 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8395:: @ 82A8395 faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_2A8A69, MSGBOX_DEFAULT specialvar VAR_RESULT, GetFavorLadyState - compare VAR_RESULT, 0 + compare VAR_RESULT, LILYCOVE_LADY_STATE_READY goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A83D0 - compare VAR_RESULT, 1 + compare VAR_RESULT, LILYCOVE_LADY_STATE_COMPLETED goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A83C6 - compare VAR_RESULT, 2 + compare VAR_RESULT, LILYCOVE_LADY_STATE_PRIZE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8510 end @@ -4307,9 +4308,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A83C6:: @ 82A83C6 end LilycoveCity_PokemonCenter_1F_EventScript_2A83D0:: @ 82A83D0 - special BufferFavorLadyDescription + special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_2A8A7D, MSGBOX_DEFAULT - specialvar VAR_RESULT, sub_818DC60 + specialvar VAR_RESULT, HasAnotherPlayerGivenFavorLadyItem compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8435 compare VAR_RESULT, 1 @@ -4357,7 +4358,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A845E:: @ 82A845E LilycoveCity_PokemonCenter_1F_EventScript_2A846C:: @ 82A846C fadescreen 1 setvar VAR_RESULT, 0 - special FavorLadyOpenBagMenu + special Script_FavorLadyOpenBagMenu waitstate compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A848E @@ -4374,7 +4375,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A848E:: @ 82A848E end LilycoveCity_PokemonCenter_1F_EventScript_2A84AD:: @ 82A84AD - specialvar VAR_RESULT, Script_ShowFavorLadyItem + specialvar VAR_RESULT, Script_DoesFavorLadyLikeItem compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A84C9 compare VAR_RESULT, 1 @@ -4382,13 +4383,13 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84AD:: @ 82A84AD end LilycoveCity_PokemonCenter_1F_EventScript_2A84C9:: @ 82A84C9 - special BufferFavorLadyDescription + special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_2A8C0F, MSGBOX_DEFAULT release end LilycoveCity_PokemonCenter_1F_EventScript_2A84D6:: @ 82A84D6 - specialvar VAR_RESULT, DidFavorLadyLoveItem + specialvar VAR_RESULT, IsFavorLadyThresholdMet compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A84F2 compare VAR_RESULT, 1 @@ -4396,13 +4397,13 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A84D6:: @ 82A84D6 end LilycoveCity_PokemonCenter_1F_EventScript_2A84F2:: @ 82A84F2 - special BufferFavorLadyDescription + special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_2A8C6F, MSGBOX_DEFAULT release end LilycoveCity_PokemonCenter_1F_EventScript_2A84FF:: @ 82A84FF - special BufferFavorLadyDescription + special BufferFavorLadyRequest msgbox LilycoveCity_PokemonCenter_1F_Text_2A8CC8, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_2A8510 end @@ -4433,21 +4434,21 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8554:: @ 82A8554 faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_2A8E2B, MSGBOX_DEFAULT specialvar VAR_RESULT, GetQuizLadyState - compare VAR_RESULT, 0 + compare VAR_RESULT, LILYCOVE_LADY_STATE_READY goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8585 - compare VAR_RESULT, 1 + compare VAR_RESULT, LILYCOVE_LADY_STATE_COMPLETED goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A85AC - compare VAR_RESULT, 2 + compare VAR_RESULT, LILYCOVE_LADY_STATE_PRIZE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A86EC end LilycoveCity_PokemonCenter_1F_EventScript_2A8585:: @ 82A8585 specialvar VAR_RESULT, GetQuizAuthor - compare VAR_RESULT, 0 + compare VAR_RESULT, QUIZ_AUTHOR_PLAYER goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A85C8 - compare VAR_RESULT, 1 + compare VAR_RESULT, QUIZ_AUTHOR_OTHER_PLAYER goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A85D2 - compare VAR_RESULT, 2 + compare VAR_RESULT, QUIZ_AUTHOR_LADY goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A85E0 end @@ -4489,7 +4490,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8612:: @ 82A8612 end LilycoveCity_PokemonCenter_1F_EventScript_2A861C:: @ 82A861C - special ClearQuizLadyResponse + special ClearQuizLadyPlayerAnswer compare VAR_0x8004, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A864C compare VAR_0x8004, EASY_CHAT_TYPE_QUIZ_ANSWER @@ -4509,7 +4510,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A864C:: @ 82A864C end LilycoveCity_PokemonCenter_1F_EventScript_2A8656:: @ 82A8656 - special QuizLadyShowEasyChatScreen + special QuizLadyGetPlayerAnswer waitstate goto LilycoveCity_PokemonCenter_1F_EventScript_2A8635 end @@ -4530,7 +4531,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A867F:: @ 82A867F LilycoveCity_PokemonCenter_1F_EventScript_2A8689:: @ 82A8689 special SetQuizLadyState_Complete msgbox LilycoveCity_PokemonCenter_1F_Text_2A8F4D, MSGBOX_DEFAULT - specialvar VAR_RESULT, sub_818E308 + specialvar VAR_RESULT, IsQuizAnswerCorrect compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A86C7 compare VAR_RESULT, 1 @@ -4546,8 +4547,8 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A86B0:: @ 82A86B0 end LilycoveCity_PokemonCenter_1F_EventScript_2A86C7:: @ 82A86C7 - special sub_818E538 - special sub_818E274 + special BufferQuizCorrectAnswer + special BufferQuizPrizeName playse SE_HAZURE delay 10 playse SE_HAZURE @@ -4556,8 +4557,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A86C7:: @ 82A86C7 goto LilycoveCity_PokemonCenter_1F_EventScript_2A8759 end +@VAR_RESULT is essentially ignored, both scripts are identical LilycoveCity_PokemonCenter_1F_EventScript_2A86EC:: @ 82A86EC - specialvar VAR_RESULT, sub_818E298 + specialvar VAR_RESULT, BufferQuizAuthorNameAndCheckIfLady compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8708 compare VAR_RESULT, 0 @@ -4599,7 +4601,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8759:: @ 82A8759 end LilycoveCity_PokemonCenter_1F_EventScript_2A8778:: @ 82A8778 - special sub_818E3EC + special QuizLadyPickNewQuestion msgbox LilycoveCity_PokemonCenter_1F_Text_2A9131, MSGBOX_DEFAULT release end @@ -4610,7 +4612,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8785:: @ 82A8785 LilycoveCity_PokemonCenter_1F_EventScript_2A878D:: @ 82A878D fadescreen 1 setvar VAR_RESULT, 0 - special sub_818E3E0 + special Script_QuizLadyOpenBagMenu waitstate compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A87AF @@ -4628,13 +4630,13 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A87AF:: @ 82A87AF LilycoveCity_PokemonCenter_1F_EventScript_2A87CE:: @ 82A87CE msgbox LilycoveCity_PokemonCenter_1F_Text_2A9270, MSGBOX_DEFAULT - special sub_818E430 - special ClearQuizLadyResponse - setvar VAR_0x8004, 16 + special ClearQuizLadyQuestionAndAnswer + special ClearQuizLadyPlayerAnswer + setvar VAR_0x8004, EASY_CHAT_TYPE_QUIZ_QUESTION LilycoveCity_PokemonCenter_1F_EventScript_2A87E1:: @ 82A87E1 fadescreen 1 - special sub_818E47C + special QuizLadySetCustomQuestion waitstate compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A87F8 @@ -4650,9 +4652,9 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A87F8:: @ 82A87F8 end LilycoveCity_PokemonCenter_1F_EventScript_2A8817:: @ 82A8817 - special sub_818E490 - special sub_818E4A4 - special sub_818E510 + special QuizLadyTakePrizeForCustomQuiz + special QuizLadyRecordCustomQuizData + special QuizLadySetWaitingForChallenger msgbox LilycoveCity_PokemonCenter_1F_Text_2A9336, MSGBOX_DEFAULT release end @@ -4661,15 +4663,16 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A882A:: @ 82A882A lock faceplayer msgbox LilycoveCity_PokemonCenter_1F_Text_2A93A7, MSGBOX_DEFAULT - specialvar VAR_RESULT, sub_818E8B4 + specialvar VAR_RESULT, HasPlayerGivenContestLadyPokeblock compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8850 compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A886C end +@ Redundant with above script, VAR_RESULT will always be 0 here LilycoveCity_PokemonCenter_1F_EventScript_2A8850:: @ 82A8850 - specialvar VAR_RESULT, sub_818E8E0 + specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8876 compare VAR_RESULT, 1 @@ -4682,7 +4685,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A886C:: @ 82A886C end LilycoveCity_PokemonCenter_1F_EventScript_2A8876:: @ 82A8876 - special sub_818E914 + special Script_BufferContestLadyCategoryAndMonName msgbox LilycoveCity_PokemonCenter_1F_Text_2A93F4, MSGBOX_DEFAULT checkitem ITEM_POKEBLOCK_CASE, 1 compare VAR_RESULT, 0 @@ -4719,11 +4722,12 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A88D7:: @ 82A88D7 LilycoveCity_PokemonCenter_1F_EventScript_2A88F6:: @ 82A88F6 msgbox LilycoveCity_PokemonCenter_1F_Text_2A9571, MSGBOX_DEFAULT - special ContestLadyGivenPokeblock + special SetContestLadyGivenPokeblock special GetContestLadyMonSpecies goto LilycoveCity_PokemonCenter_1F_EventScript_2A890A end +@VAR_0x8004 here is the return value from GivePokeblockToContestLady LilycoveCity_PokemonCenter_1F_EventScript_2A890A:: @ 82A890A applymovement 4, LilycoveCity_PokemonCenter_1F_Movement_2A89B8 waitmovement 0 @@ -4745,6 +4749,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A893F:: @ 82A893F waitmovement 0 delay 60 +@VAR_0x8004 here is the return value from GivePokeblockToContestLady LilycoveCity_PokemonCenter_1F_EventScript_2A894C:: @ 82A894C applymovement 4, LilycoveCity_PokemonCenter_1F_Movement_2A89C0 waitmovement 0 @@ -4761,13 +4766,13 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8970:: @ 82A8970 end LilycoveCity_PokemonCenter_1F_EventScript_2A897E:: @ 82A897E - special sub_818E914 + special Script_BufferContestLadyCategoryAndMonName msgbox LilycoveCity_PokemonCenter_1F_Text_2A9605, MSGBOX_DEFAULT goto LilycoveCity_PokemonCenter_1F_EventScript_2A898F end LilycoveCity_PokemonCenter_1F_EventScript_2A898F:: @ 82A898F - specialvar VAR_RESULT, sub_818E8E0 + specialvar VAR_RESULT, ShouldContestLadyShowGoOnAir compare VAR_RESULT, 1 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A89A1 release @@ -4809,9 +4814,10 @@ LilycoveCity_PokemonCenter_1F_Movement_2A89C2: @ 82A89C2 jump_in_place_left step_end +@TODO, these are CONTEST_CATEGORY_ constants, move into a new constants/contest.h? LilycoveCity_PokemonCenter_1F_EventScript_2A89C7:: @ 82A89C7 specialvar VAR_RESULT, GetContestLadyCategory - special sub_818E914 + special Script_BufferContestLadyCategoryAndMonName special GetContestLadyMonSpecies compare VAR_RESULT, 0 goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A0A diff --git a/data/specials.inc b/data/specials.inc index ac25698e49..eaf6611946 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -375,42 +375,42 @@ gSpecials:: @ 81DBA64 def_special SetLilycoveLadyGfx def_special Script_GetLilycoveLadyId def_special GetFavorLadyState - def_special BufferFavorLadyDescription - def_special sub_818DC60 + def_special BufferFavorLadyRequest + def_special HasAnotherPlayerGivenFavorLadyItem def_special BufferFavorLadyItemName def_special BufferFavorLadyPlayerName def_special DidFavorLadyLikeItem - def_special FavorLadyOpenBagMenu - def_special Script_ShowFavorLadyItem - def_special DidFavorLadyLoveItem + def_special Script_FavorLadyOpenBagMenu + def_special Script_DoesFavorLadyLikeItem + def_special IsFavorLadyThresholdMet def_special FavorLadyGetPrize def_special SetFavorLadyState_Complete def_special GetQuizLadyState def_special GetQuizAuthor def_special IsQuizLadyWaitingForChallenger def_special sub_811A858 - def_special QuizLadyShowEasyChatScreen - def_special sub_818E308 + def_special QuizLadyGetPlayerAnswer + def_special IsQuizAnswerCorrect def_special BufferQuizPrizeItem def_special SetQuizLadyState_Complete - def_special sub_818E298 + def_special BufferQuizAuthorNameAndCheckIfLady def_special SetQuizLadyState_GivePrize - def_special ClearQuizLadyResponse - def_special sub_818E3E0 - def_special sub_818E430 - def_special sub_818E47C - def_special sub_818E490 + def_special ClearQuizLadyPlayerAnswer + def_special Script_QuizLadyOpenBagMenu + def_special ClearQuizLadyQuestionAndAnswer + def_special QuizLadySetCustomQuestion + def_special QuizLadyTakePrizeForCustomQuiz def_special sub_813986C - def_special sub_818E4A4 - def_special sub_818E510 - def_special sub_818E538 - def_special sub_818E274 - def_special sub_818E3EC - def_special sub_818E8E0 - def_special sub_818E8B4 - def_special sub_818E914 + def_special QuizLadyRecordCustomQuizData + def_special QuizLadySetWaitingForChallenger + def_special BufferQuizCorrectAnswer + def_special BufferQuizPrizeName + def_special QuizLadyPickNewQuestion + def_special ShouldContestLadyShowGoOnAir + def_special HasPlayerGivenContestLadyPokeblock + def_special Script_BufferContestLadyCategoryAndMonName def_special OpenPokeblockCaseForContestLady - def_special ContestLadyGivenPokeblock + def_special SetContestLadyGivenPokeblock def_special GetContestLadyMonSpecies def_special GetContestLadyCategory def_special PutLilycoveContestLadyShowOnTheAir diff --git a/include/constants/lilycove_lady.h b/include/constants/lilycove_lady.h new file mode 100644 index 0000000000..6ef70d8a7f --- /dev/null +++ b/include/constants/lilycove_lady.h @@ -0,0 +1,30 @@ +#ifndef GUARD_LILYCOVE_LADY_CONSTANTS_H +#define GUARD_LILYCOVE_LADY_CONSTANTS_H + +#define LILYCOVE_LADY_QUIZ 0 +#define LILYCOVE_LADY_FAVOR 1 +#define LILYCOVE_LADY_CONTEST 2 +#define LILYCOVE_LADY_COUNT 3 + +#define LILYCOVE_LADY_STATE_READY 0 +#define LILYCOVE_LADY_STATE_COMPLETED 1 +#define LILYCOVE_LADY_STATE_PRIZE 2 + +#define QUIZ_AUTHOR_PLAYER 0 +#define QUIZ_AUTHOR_OTHER_PLAYER 1 +#define QUIZ_AUTHOR_LADY 2 + +// Would be redundant with the above set if GF hadn't mixed the order +#define QUIZ_AUTHOR_NAME_LADY 0 +#define QUIZ_AUTHOR_NAME_PLAYER 1 +#define QUIZ_AUTHOR_NAME_OTHER_PLAYER 2 + +// TODO use array count macro? +#define QUIZ_QUESTION_LEN 9 //ARRAY_COUNT(sQuizLadyQuestion#) +#define NUM_QUIZ_QUESTIONS 16 //ARRAY_COUNT(sQuizLadyQuizQuestions) +#define FAVOR_DESCRIPTION_NUM 6 //ARRAY_COUNT(sFavorLadyDescriptions) + +#define LILYCOVE_LADY_GIFT_THRESHOLD 5 + + +#endif diff --git a/include/global.h b/include/global.h index a055cb2c09..df0d0c1ea7 100644 --- a/include/global.h +++ b/include/global.h @@ -737,24 +737,16 @@ struct RecordMixingDayCareMail bool16 holdsItem[DAYCARE_MON_COUNT]; }; -enum -{ - LILYCOVE_LADY_QUIZ, - LILYCOVE_LADY_FAVOR, - LILYCOVE_LADY_CONTEST, - LILYCOVE_LADY_COUNT -}; - struct LilycoveLadyQuiz { /*0x000*/ u8 id; /*0x001*/ u8 state; /*0x002*/ u16 question[9]; - /*0x014*/ u16 answer; - /*0x016*/ u16 response; + /*0x014*/ u16 correctAnswer; + /*0x016*/ u16 playerAnswer; /*0x018*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x020*/ u16 playerTrainerId[4]; - /*0x028*/ u16 itemId; + /*0x028*/ u16 prize; /*0x02a*/ bool8 waitingForChallenger; /*0x02b*/ u8 questionId; /*0x02c*/ u8 prevQuestionId; @@ -778,10 +770,10 @@ struct LilycoveLadyContest { /*0x000*/ u8 id; /*0x001*/ bool8 givenPokeblock; - /*0x002*/ u8 fave_pkblk; - /*0x003*/ u8 other_pkblk; + /*0x002*/ u8 numGoodPokeblocksGiven; + /*0x003*/ u8 numOtherPokeblocksGiven; /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; - /*0x00c*/ u8 max_sheen; + /*0x00c*/ u8 maxSheen; /*0x00d*/ u8 category; /*0x00e*/ u8 language; }; diff --git a/include/item_menu.h b/include/item_menu.h index 5580fa4b45..b1275549da 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -69,8 +69,8 @@ extern u16 gSpecialVar_ItemId; // Exported ROM declarations void sub_81AAC14(void); -void sub_81AAC50(void); -void sub_81AAC70(void); +void FavorLadyOpenBagMenu(void); +void QuizLadyOpenBagMenu(void); void sub_81AAC28(void); void sub_81AABB0(void); void SetInitialScrollAndCursorPositions(u8 pocketId); diff --git a/include/lilycove_lady.h b/include/lilycove_lady.h index 959878ac94..1ec327be9d 100644 --- a/include/lilycove_lady.h +++ b/include/lilycove_lady.h @@ -3,10 +3,10 @@ u8 GetLilycoveLadyId(void); void InitLilycoveLady(void); -void ReadyLilycoveLady(void); -void sub_818DEF4(void); -void sub_818E564(void); -void sub_818E570(const LilycoveLady *lilycoveLady); +void ResetLilycoveLadyForRecordMix(void); +void FieldCallback_FavorLadyEnableScriptContexts(void); +void FieldCallback_QuizLadyEnableScriptContexts(void); +void QuizLadyClearQuestionForRecordMix(const LilycoveLady *lilycoveLady); bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock); void BufferContestLadyMonName(u8 *dest1, u8 *dest2); void BufferContestLadyPlayerName(u8 *dest); diff --git a/src/data/lilycove_lady.h b/src/data/lilycove_lady.h index 36bd94e553..f60e527a5b 100644 --- a/src/data/lilycove_lady.h +++ b/src/data/lilycove_lady.h @@ -266,7 +266,7 @@ static const u16 sQuizLadyQuizAnswers[] = EC_WORD_PLUSH_DOLL, EC_WORD_ICE, EC_WORD_FIGHTING, - EC_WORD_DARK // DARK is accepted as the correct answer despite the fact that it's wrong + EC_WORD_DARK }; static const u16 sQuizLadyPrizes[] = @@ -290,7 +290,7 @@ static const u16 sQuizLadyPrizes[] = }; // Favor Lady data -static const u8 *const sFavorLadyDescriptions[] = +static const u8 *const sFavorLadyRequests[] = { gText_FavorLady_Slippery, gText_FavorLady_Roundish, diff --git a/src/easy_chat.c b/src/easy_chat.c index 9a529afe36..b95b43aea2 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -30,6 +30,7 @@ #include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/flags.h" +#include "constants/lilycove_lady.h" #include "constants/songs.h" #include "constants/species.h" #include "constants/rgb.h" @@ -1305,7 +1306,7 @@ void ShowEasyChatScreen(void) displayedPersonType = EASY_CHAT_PERSON_BOY; break; case EASY_CHAT_TYPE_QUIZ_ANSWER: - words = &gSaveBlock1Ptr->lilycoveLady.quiz.response; + words = &gSaveBlock1Ptr->lilycoveLady.quiz.playerAnswer; break; case EASY_CHAT_TYPE_QUIZ_QUESTION: return; @@ -1313,7 +1314,7 @@ void ShowEasyChatScreen(void) words = gSaveBlock1Ptr->lilycoveLady.quiz.question; break; case EASY_CHAT_TYPE_QUIZ_SET_ANSWER: - words = &gSaveBlock1Ptr->lilycoveLady.quiz.answer; + words = &gSaveBlock1Ptr->lilycoveLady.quiz.correctAnswer; break; case EASY_CHAT_TYPE_APPRENTICE: words = gSaveBlock2Ptr->apprentices[0].easyChatWords; @@ -1343,7 +1344,7 @@ static void sub_811A7E4(void) if (!gPaletteFade.active) { lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; - lilycoveLady->quiz.response = -1; + lilycoveLady->quiz.playerAnswer = -1; CleanupOverworldWindowsAndTilemaps(); DoQuizQuestionEasyChatScreen(); } @@ -1387,7 +1388,7 @@ static void DoQuizAnswerEasyChatScreen(void) { DoEasyChatScreen( EASY_CHAT_TYPE_QUIZ_ANSWER, - &gSaveBlock1Ptr->lilycoveLady.quiz.response, + &gSaveBlock1Ptr->lilycoveLady.quiz.playerAnswer, CB2_ReturnToFieldContinueScript, EASY_CHAT_PERSON_DISPLAY_NONE); } @@ -1403,7 +1404,7 @@ static void DoQuizQuestionEasyChatScreen(void) static void DoQuizSetAnswerEasyChatScreen(void) { DoEasyChatScreen(EASY_CHAT_TYPE_QUIZ_SET_ANSWER, - &gSaveBlock1Ptr->lilycoveLady.quiz.answer, + &gSaveBlock1Ptr->lilycoveLady.quiz.correctAnswer, CB2_ReturnToFieldContinueScript, EASY_CHAT_PERSON_DISPLAY_NONE); } @@ -2660,7 +2661,7 @@ static int sub_811BD64(void) return sub_811BCF4(); saveBlock1 = gSaveBlock1Ptr; - for (i = 0; i < 9; i++) + for (i = 0; i < QUIZ_QUESTION_LEN; i++) { if (saveBlock1->lilycoveLady.quiz.question[i] != 0xFFFF) return 0; @@ -2676,7 +2677,7 @@ static int sub_811BDB0(void) return sub_811BCF4(); quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - return quiz->answer == 0xFFFF ? 1 : 0; + return quiz->correctAnswer == 0xFFFF ? 1 : 0; } static void sub_811BDF0(u8 *arg0) diff --git a/src/item_menu.c b/src/item_menu.c index 5b47a567b4..12f03b3283 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -118,9 +118,9 @@ void sub_81AD9C0(u8); void sub_81ADB14(u8); void sub_81ADA7C(u8); void sub_81ADC0C(u8); -void bag_menu_leave_maybe_3(void); -void bag_menu_leave_maybe_2(void); void bag_menu_leave_maybe(void); +void CB2_FavorLadyExitBagMenu(void); +void CB2_QuizLadyExitBagMenu(void); void sub_81ABA6C(void); static void SetPocketListPositions(void); void sub_81ABAE0(void); @@ -493,20 +493,20 @@ void sub_81AAC14(void) void sub_81AAC28(void) { - GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe_3); + GoToBagMenu(RETURN_LOCATION_FIELD_6, POCKETS_COUNT, bag_menu_leave_maybe); gSpecialVar_0x8005 = 0; gSpecialVar_Result = 0; } -void sub_81AAC50(void) +void FavorLadyOpenBagMenu(void) { - GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, bag_menu_leave_maybe_2); + GoToBagMenu(RETURN_LOCATION_FIELD_4, POCKETS_COUNT, CB2_FavorLadyExitBagMenu); gSpecialVar_Result = 0; } -void sub_81AAC70(void) +void QuizLadyOpenBagMenu(void) { - GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, bag_menu_leave_maybe); + GoToBagMenu(RETURN_LOCATION_FIELD_5, POCKETS_COUNT, CB2_QuizLadyExitBagMenu); gSpecialVar_Result = 0; } @@ -2202,7 +2202,7 @@ void unknown_ItemMenu_Show(u8 taskId) unknown_ItemMenu_Confirm(taskId); } -void bag_menu_leave_maybe_3(void) +void bag_menu_leave_maybe(void) { gFieldCallback = Apprentice_EnableBothScriptContexts; SetMainCallback2(CB2_ReturnToField); @@ -2216,9 +2216,9 @@ void unknown_ItemMenu_Give2(u8 taskId) unknown_ItemMenu_Confirm(taskId); } -void bag_menu_leave_maybe_2(void) +void CB2_FavorLadyExitBagMenu(void) { - gFieldCallback = sub_818DEF4; + gFieldCallback = FieldCallback_FavorLadyEnableScriptContexts; SetMainCallback2(CB2_ReturnToField); } @@ -2229,9 +2229,9 @@ void unknown_ItemMenu_Confirm2(u8 taskId) unknown_ItemMenu_Confirm(taskId); } -void bag_menu_leave_maybe(void) +void CB2_QuizLadyExitBagMenu(void) { - gFieldCallback = sub_818E564; + gFieldCallback = FieldCallback_QuizLadyEnableScriptContexts; SetMainCallback2(CB2_ReturnToField); } diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 77641b98fc..339e918470 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -15,44 +15,17 @@ #include "easy_chat.h" #include "lilycove_lady.h" #include "contest.h" -#include "berry.h" #include "strings.h" - -// TODO use array count macro? -#define QUIZ_QUESTION_LEN 9 //len of sQuizLadyQuestion# -#define NUM_QUIZ_QUESTIONS 16 //len of sQuizLadyQuizQuestions -#define FAVOR_DESCRIPTION_NUM 6 //len of sFavorLadyDescriptions - -// TODO not a great name? The number of successes required to receive -// an item from the favor lady. Reached automatically if the randomly -// selected 'best' item is given to her -#define FAVOR_GIFT_MAX 5 - - -enum -{ - QUIZ_AUTHOR_LADY, - QUIZ_AUTHOR_PLAYER, - QUIZ_AUTHOR_OTHER_PLAYER -}; - -enum -{ - LILYCOVE_LADY_STATE_READY, - LILYCOVE_LADY_STATE_COMPLETED, - LILYCOVE_LADY_STATE_PRIZE -}; - - +#include "constants/lilycove_lady.h" #include "data/lilycove_lady.h" static void InitLilycoveQuizLady(void); static void InitLilycoveFavorLady(void); static void InitLilycoveContestLady(void); -static void ReadyQuizLady(void); -static void ReadyFavorLady(void); -static void ReadyContestLady(void); -static u8 BufferAuthorName(void); +static void ResetQuizLadyForRecordMix(void); +static void ResetFavorLadyForRecordMix(void); +static void ResetContestLadyForRecordMix(void); +static u8 BufferQuizAuthorName(void); static bool8 IsQuizTrainerIdNotPlayer(void); static u8 GetPlayerNameLength(const u8 *); @@ -86,10 +59,8 @@ void SetLilycoveLadyGfx(void) void InitLilycoveLady(void) { - u16 id; - - id = ((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]); - id %= 6; //TODO num lilycove ladies * 2. constant? + u16 id = ((gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]); + id %= 6; id >>= 1; switch (id) { @@ -105,29 +76,27 @@ void InitLilycoveLady(void) } } -// Used after mixing records -void ReadyLilycoveLady(void) +void ResetLilycoveLadyForRecordMix(void) { switch (GetLilycoveLadyId()) { case LILYCOVE_LADY_QUIZ: - ReadyQuizLady(); + ResetQuizLadyForRecordMix(); break; case LILYCOVE_LADY_FAVOR: - ReadyFavorLady(); + ResetFavorLadyForRecordMix(); break; case LILYCOVE_LADY_CONTEST: - ReadyContestLady(); + ResetContestLadyForRecordMix(); break; } } -// Unused? +// Unused void InitLilycoveLadyRandomly(void) { - u8 lady; + u8 lady = Random() % LILYCOVE_LADY_COUNT; - lady = Random() % LILYCOVE_LADY_COUNT; switch (lady) { case LILYCOVE_LADY_QUIZ: @@ -179,7 +148,7 @@ static void InitLilycoveFavorLady(void) FavorLadyPickFavorAndBestItem(); } -static void ReadyFavorLady(void) +static void ResetFavorLadyForRecordMix(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; sFavorLadyPtr->id = LILYCOVE_LADY_FAVOR; @@ -203,18 +172,18 @@ u8 GetFavorLadyState(void) } } -static const u8 *GetFavorLadyDescription(u8 idx) +static const u8 *GetFavorLadyRequest(u8 idx) { - return sFavorLadyDescriptions[idx]; + return sFavorLadyRequests[idx]; } -void BufferFavorLadyDescription(void) +void BufferFavorLadyRequest(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; - StringCopy(gStringVar1, GetFavorLadyDescription(sFavorLadyPtr->favorId)); + StringCopy(gStringVar1, GetFavorLadyRequest(sFavorLadyPtr->favorId)); } -bool8 sub_818DC60(void) +bool8 HasAnotherPlayerGivenFavorLadyItem(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; if (sFavorLadyPtr->playerName[0] != EOS) @@ -250,19 +219,19 @@ void BufferFavorLadyPlayerName(void) ConvertInternationalString(gStringVar3, sFavorLadyPtr->language); } +// Only used to determine if a record-mixed player had given her an item she liked bool8 DidFavorLadyLikeItem(void) { sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; return sFavorLadyPtr->likedItem ? TRUE : FALSE; } -void FavorLadyOpenBagMenu(void) +void Script_FavorLadyOpenBagMenu(void) { - sub_81AAC50(); + FavorLadyOpenBagMenu(); } -//TODO rename? -static bool8 ShowFavorLadyItem(u16 itemId) +static bool8 DoesFavorLadyLikeItem(u16 itemId) { u8 numItems; u8 i; @@ -285,7 +254,7 @@ static bool8 ShowFavorLadyItem(u16 itemId) sFavorLadyPtr->likedItem = TRUE; if (sFavorLadyPtr->bestItem == itemId) { - sFavorLadyPtr->numItemsGiven = FAVOR_GIFT_MAX; + sFavorLadyPtr->numItemsGiven = LILYCOVE_LADY_GIFT_THRESHOLD; } break; } @@ -294,35 +263,34 @@ static bool8 ShowFavorLadyItem(u16 itemId) return likedItem; } -bool8 Script_ShowFavorLadyItem(void) +bool8 Script_DoesFavorLadyLikeItem(void) { - return ShowFavorLadyItem(gSpecialVar_ItemId); + return DoesFavorLadyLikeItem(gSpecialVar_ItemId); } -//was item given the best item / have they given her 5 items -bool8 DidFavorLadyLoveItem(void) +bool8 IsFavorLadyThresholdMet(void) { - u8 checkval; + u8 numItemsGiven; sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; - checkval = sFavorLadyPtr->numItemsGiven; - return checkval < FAVOR_GIFT_MAX ? FALSE : TRUE; + numItemsGiven = sFavorLadyPtr->numItemsGiven; + return numItemsGiven < LILYCOVE_LADY_GIFT_THRESHOLD ? FALSE : TRUE; } -static void BufferPrizeName(u16 itemId) +static void FavorLadyBufferPrizeName(u16 prize) { - BufferItemName(gStringVar2, itemId); + BufferItemName(gStringVar2, prize); } u16 FavorLadyGetPrize(void) { - u16 itemId; + u16 prize; sFavorLadyPtr = &gSaveBlock1Ptr->lilycoveLady.favor; - itemId = sFavorLadyPrizes[sFavorLadyPtr->favorId]; - BufferPrizeName(itemId); + prize = sFavorLadyPrizes[sFavorLadyPtr->favorId]; + FavorLadyBufferPrizeName(prize); sFavorLadyPtr->state = LILYCOVE_LADY_STATE_PRIZE; - return itemId; + return prize; } void SetFavorLadyState_Complete(void) @@ -331,12 +299,12 @@ void SetFavorLadyState_Complete(void) sFavorLadyPtr->state = LILYCOVE_LADY_STATE_COMPLETED; } -void sub_818DEF4(void) +void FieldCallback_FavorLadyEnableScriptContexts(void) { EnableBothScriptContexts(); } -static void PickQuizQuestion(void) +static void QuizLadyPickQuestion(void) { u8 questionId; u8 i; @@ -346,8 +314,8 @@ static void PickQuizQuestion(void) { sQuizLadyPtr->question[i] = sQuizLadyQuizQuestions[questionId][i]; } - sQuizLadyPtr->answer = sQuizLadyQuizAnswers[questionId]; - sQuizLadyPtr->itemId = sQuizLadyPrizes[questionId]; + sQuizLadyPtr->correctAnswer = sQuizLadyQuizAnswers[questionId]; + sQuizLadyPtr->prize = sQuizLadyPrizes[questionId]; sQuizLadyPtr->questionId = questionId; sQuizLadyPtr->playerName[0] = EOS; } @@ -363,26 +331,26 @@ static void InitLilycoveQuizLady(void) { sQuizLadyPtr->question[i] = -1; } - sQuizLadyPtr->answer = -1; - sQuizLadyPtr->response = -1; + sQuizLadyPtr->correctAnswer = -1; + sQuizLadyPtr->playerAnswer = -1; for (i = 0; i < 4; i ++) { sQuizLadyPtr->playerTrainerId[i] = 0; } - sQuizLadyPtr->itemId = ITEM_NONE; + sQuizLadyPtr->prize = ITEM_NONE; sQuizLadyPtr->waitingForChallenger = FALSE; sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS; sQuizLadyPtr->language = gGameLanguage; - PickQuizQuestion(); + QuizLadyPickQuestion(); } -static void ReadyQuizLady(void) +static void ResetQuizLadyForRecordMix(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; sQuizLadyPtr->id = LILYCOVE_LADY_QUIZ; sQuizLadyPtr->state = LILYCOVE_LADY_STATE_READY; sQuizLadyPtr->waitingForChallenger = FALSE; - sQuizLadyPtr->response = -1; + sQuizLadyPtr->playerAnswer = -1; } u8 GetQuizLadyState(void) @@ -402,19 +370,15 @@ u8 GetQuizLadyState(void) } } -// TODO enum? another enum might be excessive. why did GF swap the order from AUTHOR -// 0: waiting for someone to attempt player's quiz -// 1: ready to attempt other player's quiz -// 2: ready to attempt lady's quiz u8 GetQuizAuthor(void) { int i; int j; - u8 author; + u8 authorNameId; struct LilycoveLadyQuiz *quiz; quiz = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (sub_811F8D8(quiz->answer) == 0) + if (sub_811F8D8(quiz->correctAnswer) == 0) { i = quiz->questionId; do @@ -428,38 +392,38 @@ u8 GetQuizAuthor(void) { quiz->question[j] = sQuizLadyQuizQuestions[i][j]; } - quiz->answer = sQuizLadyQuizAnswers[i]; - quiz->itemId = sQuizLadyPrizes[i]; + quiz->correctAnswer = sQuizLadyQuizAnswers[i]; + quiz->prize = sQuizLadyPrizes[i]; quiz->questionId = i; quiz->playerName[0] = EOS; } - author = BufferAuthorName(); - if (author == QUIZ_AUTHOR_LADY) + authorNameId = BufferQuizAuthorName(); + if (authorNameId == QUIZ_AUTHOR_NAME_LADY) { - return 2; + return QUIZ_AUTHOR_LADY; } - else if (author == QUIZ_AUTHOR_OTHER_PLAYER || IsQuizTrainerIdNotPlayer()) + else if (authorNameId == QUIZ_AUTHOR_NAME_OTHER_PLAYER || IsQuizTrainerIdNotPlayer()) { - return 1; + return QUIZ_AUTHOR_OTHER_PLAYER; } else { - return 0; + return QUIZ_AUTHOR_PLAYER; } } -static u8 BufferAuthorName(void) +static u8 BufferQuizAuthorName(void) { - u8 author; + u8 authorNameId; u8 nameLen; u8 i; - author = QUIZ_AUTHOR_PLAYER; + authorNameId = QUIZ_AUTHOR_NAME_PLAYER; sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; if (sQuizLadyPtr->playerName[0] == EOS) { StringCopy7(gStringVar1, gText_QuizLady_Lady); - author = QUIZ_AUTHOR_LADY; + authorNameId = QUIZ_AUTHOR_NAME_LADY; } else { @@ -474,14 +438,14 @@ static u8 BufferAuthorName(void) name = sQuizLadyPtr->playerName; if (name[i] != gSaveBlock2Ptr->playerName[i]) { - author = QUIZ_AUTHOR_OTHER_PLAYER; + authorNameId = QUIZ_AUTHOR_NAME_OTHER_PLAYER; break; } } } } - return author; + return authorNameId; } static bool8 IsQuizTrainerIdNotPlayer(void) @@ -511,15 +475,15 @@ static u8 GetPlayerNameLength(const u8 *playerName) return len; } -void sub_818E274(void) +void BufferQuizPrizeName(void) { - StringCopy(gStringVar1, ItemId_GetName(sQuizLadyPtr->itemId)); + StringCopy(gStringVar1, ItemId_GetName(sQuizLadyPtr->prize)); } -bool8 sub_818E298(void) +bool8 BufferQuizAuthorNameAndCheckIfLady(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (BufferAuthorName() == QUIZ_AUTHOR_LADY) + if (BufferQuizAuthorName() == QUIZ_AUTHOR_NAME_LADY) { sQuizLadyPtr->language = gGameLanguage; return TRUE; @@ -533,23 +497,23 @@ bool8 IsQuizLadyWaitingForChallenger(void) return sQuizLadyPtr->waitingForChallenger; } -void QuizLadyShowEasyChatScreen(void) +void QuizLadyGetPlayerAnswer(void) { ShowEasyChatScreen(); } -bool8 sub_818E308(void) +bool8 IsQuizAnswerCorrect(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar1, sQuizLadyPtr->answer); - CopyEasyChatWord(gStringVar2, sQuizLadyPtr->response); + CopyEasyChatWord(gStringVar1, sQuizLadyPtr->correctAnswer); + CopyEasyChatWord(gStringVar2, sQuizLadyPtr->playerAnswer); return StringCompare(gStringVar1, gStringVar2) ? FALSE : TRUE; } void BufferQuizPrizeItem(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - gSpecialVar_0x8005 = sQuizLadyPtr->itemId; + gSpecialVar_0x8005 = sQuizLadyPtr->prize; } void SetQuizLadyState_Complete(void) @@ -564,21 +528,21 @@ void SetQuizLadyState_GivePrize(void) sQuizLadyPtr->state = LILYCOVE_LADY_STATE_PRIZE; } -void ClearQuizLadyResponse(void) +void ClearQuizLadyPlayerAnswer(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - sQuizLadyPtr->response = -1; + sQuizLadyPtr->playerAnswer = -1; } -void sub_818E3E0(void) +void Script_QuizLadyOpenBagMenu(void) { - sub_81AAC70(); + QuizLadyOpenBagMenu(); } -void sub_818E3EC(void) +void QuizLadyPickNewQuestion(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (sub_818E298()) + if (BufferQuizAuthorNameAndCheckIfLady()) { sQuizLadyPtr->prevQuestionId = sQuizLadyPtr->questionId; } @@ -586,10 +550,10 @@ void sub_818E3EC(void) { sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS; } - PickQuizQuestion(); + QuizLadyPickQuestion(); } -void sub_818E430(void) +void ClearQuizLadyQuestionAndAnswer(void) { u8 i; @@ -598,26 +562,26 @@ void sub_818E430(void) { sQuizLadyPtr->question[i] = -1; } - sQuizLadyPtr->answer = -1; + sQuizLadyPtr->correctAnswer = -1; } -void sub_818E47C(void) +void QuizLadySetCustomQuestion(void) { gSpecialVar_0x8004 = EASY_CHAT_TYPE_QUIZ_SET_QUESTION; ShowEasyChatScreen(); } -void sub_818E490(void) +void QuizLadyTakePrizeForCustomQuiz(void) { RemoveBagItem(gSpecialVar_ItemId, 1); } -void sub_818E4A4(void) +void QuizLadyRecordCustomQuizData(void) { u8 i; sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - sQuizLadyPtr->itemId = gSpecialVar_ItemId; + sQuizLadyPtr->prize = gSpecialVar_ItemId; for (i = 0; i < 4; i ++) { sQuizLadyPtr->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; @@ -626,24 +590,25 @@ void sub_818E4A4(void) sQuizLadyPtr->language = gGameLanguage; } -void sub_818E510(void) +void QuizLadySetWaitingForChallenger(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; sQuizLadyPtr->waitingForChallenger = TRUE; } -void sub_818E538(void) +void BufferQuizCorrectAnswer(void) { sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - CopyEasyChatWord(gStringVar3, sQuizLadyPtr->answer); + CopyEasyChatWord(gStringVar3, sQuizLadyPtr->correctAnswer); } -void sub_818E564(void) + +void FieldCallback_QuizLadyEnableScriptContexts(void) { EnableBothScriptContexts(); } -void sub_818E570(const LilycoveLady *lilycoveLady) +void QuizLadyClearQuestionForRecordMix(const LilycoveLady *lilycoveLady) { u8 i; @@ -669,9 +634,9 @@ void sub_818E570(const LilycoveLady *lilycoveLady) static void ResetContestLadyContestData(void) { sContestLadyPtr->playerName[0] = EOS; - sContestLadyPtr->fave_pkblk = 0; - sContestLadyPtr->other_pkblk = 0; - sContestLadyPtr->max_sheen = 0; + sContestLadyPtr->numGoodPokeblocksGiven = 0; + sContestLadyPtr->numOtherPokeblocksGiven = 0; + sContestLadyPtr->maxSheen = 0; sContestLadyPtr->category = Random() % CONTEST_CATEGORIES_COUNT; } @@ -684,24 +649,24 @@ static void InitLilycoveContestLady(void) sContestLadyPtr->language = gGameLanguage; } -static void ReadyContestLady(void) +static void ResetContestLadyForRecordMix(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; sContestLadyPtr->id = LILYCOVE_LADY_CONTEST; sContestLadyPtr->givenPokeblock = FALSE; - if (sContestLadyPtr->fave_pkblk == FLAVOR_COUNT - || sContestLadyPtr->other_pkblk == FLAVOR_COUNT) + if (sContestLadyPtr->numGoodPokeblocksGiven == LILYCOVE_LADY_GIFT_THRESHOLD + || sContestLadyPtr->numOtherPokeblocksGiven == LILYCOVE_LADY_GIFT_THRESHOLD) { ResetContestLadyContestData(); } } -static void sub_818E6B0(u8 sheen) +static void ContestLadySavePlayerNameIfHighSheen(u8 sheen) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; - if (sContestLadyPtr->max_sheen <= sheen) + if (sContestLadyPtr->maxSheen <= sheen) { - sContestLadyPtr->max_sheen = sheen; + sContestLadyPtr->maxSheen = sheen; memset(sContestLadyPtr->playerName, EOS, sizeof(sContestLadyPtr->playerName)); memcpy(sContestLadyPtr->playerName, gSaveBlock2Ptr->playerName, sizeof(sContestLadyPtr->playerName)); sContestLadyPtr->language = gGameLanguage; @@ -710,11 +675,9 @@ static void sub_818E6B0(u8 sheen) bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock) { - u8 sheen; - bool8 response; + u8 sheen = 0; + bool8 correctFlavor = FALSE; - sheen = 0; - response = FALSE; sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; switch (sContestLadyPtr->category) { @@ -722,48 +685,48 @@ bool8 GivePokeblockToContestLady(struct Pokeblock *pokeblock) if (pokeblock->spicy != 0) { sheen = pokeblock->spicy; - response = TRUE; + correctFlavor = TRUE; } break; case CONTEST_CATEGORY_BEAUTY: if (pokeblock->dry != 0) { sheen = pokeblock->dry; - response = TRUE; + correctFlavor = TRUE; } break; case CONTEST_CATEGORY_CUTE: if (pokeblock->sweet != 0) { sheen = pokeblock->sweet; - response = TRUE; + correctFlavor = TRUE; } break; case CONTEST_CATEGORY_SMART: if (pokeblock->bitter != 0) { sheen = pokeblock->bitter; - response = TRUE; + correctFlavor = TRUE; } break; case CONTEST_CATEGORY_TOUGH: if (pokeblock->sour != 0) { sheen = pokeblock->sour; - response = TRUE; + correctFlavor = TRUE; } break; } - if (response == TRUE) + if (correctFlavor == TRUE) { - sub_818E6B0(sheen); - sContestLadyPtr->fave_pkblk ++; + ContestLadySavePlayerNameIfHighSheen(sheen); + sContestLadyPtr->numGoodPokeblocksGiven++; } else { - sContestLadyPtr->other_pkblk ++; + sContestLadyPtr->numOtherPokeblocksGiven++; } - return response; + return correctFlavor; } static void BufferContestLadyCategoryAndMonName(u8 *dest1, u8 *dest2) @@ -797,14 +760,18 @@ void BufferContestName(u8 *dest, u8 category) StringCopy(dest, sContestNames[category]); } +// used in tv.c to determine sTVShowState for Contest Lady show +// if return val is 1, sTVShowState is 1 +// if return val is 2, sTVShowState is 3 +// if return val is 0, sTVShowState is 2 u8 sub_818E880(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; - if (sContestLadyPtr->fave_pkblk >= FLAVOR_COUNT) + if (sContestLadyPtr->numGoodPokeblocksGiven >= LILYCOVE_LADY_GIFT_THRESHOLD) { return 1; } - else if (sContestLadyPtr->fave_pkblk == 0) + else if (sContestLadyPtr->numGoodPokeblocksGiven == 0) { return 2; } @@ -814,7 +781,8 @@ u8 sub_818E880(void) } } -bool8 sub_818E8B4(void) + +bool8 HasPlayerGivenContestLadyPokeblock(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; if (sContestLadyPtr->givenPokeblock == TRUE) @@ -824,22 +792,20 @@ bool8 sub_818E8B4(void) return FALSE; } -bool8 sub_818E8E0(void) +bool8 ShouldContestLadyShowGoOnAir(void) { - bool8 response; + bool8 putOnAir = FALSE; - response = FALSE; sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; - if (sContestLadyPtr->fave_pkblk >= FLAVOR_COUNT - || sContestLadyPtr->other_pkblk >= FLAVOR_COUNT) + if (sContestLadyPtr->numGoodPokeblocksGiven >= LILYCOVE_LADY_GIFT_THRESHOLD + || sContestLadyPtr->numOtherPokeblocksGiven >= LILYCOVE_LADY_GIFT_THRESHOLD) { - response = TRUE; + putOnAir = TRUE; } - return response; + return putOnAir; } -// called when mon enjoys pokeblock -void sub_818E914(void) +void Script_BufferContestLadyCategoryAndMonName(void) { BufferContestLadyCategoryAndMonName(gStringVar2, gStringVar1); } @@ -849,7 +815,7 @@ void OpenPokeblockCaseForContestLady(void) OpenPokeblockCase(3, CB2_ReturnToField); } -void ContestLadyGivenPokeblock(void) +void SetContestLadyGivenPokeblock(void) { sContestLadyPtr = &gSaveBlock1Ptr->lilycoveLady.contest; sContestLadyPtr->givenPokeblock = TRUE; diff --git a/src/record_mixing.c b/src/record_mixing.c index 44cf8044c1..32e0404b96 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -701,10 +701,10 @@ static void ReceiveLilycoveLadyData(LilycoveLady *lilycoveLady, size_t recordSiz } memcpy(sLilycoveLadySave, (void *)lilycoveLady + recordSize * mixIndices[which], sizeof(LilycoveLady)); - ReadyLilycoveLady(); + ResetLilycoveLadyForRecordMix(); if (dest != NULL) { - sub_818E570(dest); + QuizLadyClearQuestionForRecordMix(dest); free(dest); } } From 5fb7ab05dd1e0897687ef9eb79bd9769c42c679c Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Tue, 6 Aug 2019 13:52:10 -0400 Subject: [PATCH 21/29] clean up --- data/event_scripts.s | 19 +++++++++--------- data/specials.inc | 2 +- include/constants/global.h | 2 ++ include/constants/lilycove_lady.h | 12 ++++------- include/global.h | 22 ++++++++++----------- src/easy_chat.c | 7 ++++--- src/lilycove_lady.c | 33 ++++++++++++++++--------------- 7 files changed, 48 insertions(+), 49 deletions(-) diff --git a/data/event_scripts.s b/data/event_scripts.s index 5ad4fa7786..563f7fb7bb 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -4504,7 +4504,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A8635:: @ 82A8635 end LilycoveCity_PokemonCenter_1F_EventScript_2A864C:: @ 82A864C - special sub_811A858 + special QuizLadyShowQuizQuestion waitstate goto LilycoveCity_PokemonCenter_1F_EventScript_2A8635 end @@ -4557,7 +4557,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A86C7:: @ 82A86C7 goto LilycoveCity_PokemonCenter_1F_EventScript_2A8759 end -@VAR_RESULT is essentially ignored, both scripts are identical +@ VAR_RESULT is essentially ignored, both jumps are identical LilycoveCity_PokemonCenter_1F_EventScript_2A86EC:: @ 82A86EC specialvar VAR_RESULT, BufferQuizAuthorNameAndCheckIfLady compare VAR_RESULT, 1 @@ -4727,7 +4727,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A88F6:: @ 82A88F6 goto LilycoveCity_PokemonCenter_1F_EventScript_2A890A end -@VAR_0x8004 here is the return value from GivePokeblockToContestLady +@ VAR_0x8004 here is the return value from GivePokeblockToContestLady LilycoveCity_PokemonCenter_1F_EventScript_2A890A:: @ 82A890A applymovement 4, LilycoveCity_PokemonCenter_1F_Movement_2A89B8 waitmovement 0 @@ -4749,7 +4749,7 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A893F:: @ 82A893F waitmovement 0 delay 60 -@VAR_0x8004 here is the return value from GivePokeblockToContestLady +@ VAR_0x8004 here is the return value from GivePokeblockToContestLady LilycoveCity_PokemonCenter_1F_EventScript_2A894C:: @ 82A894C applymovement 4, LilycoveCity_PokemonCenter_1F_Movement_2A89C0 waitmovement 0 @@ -4814,20 +4814,19 @@ LilycoveCity_PokemonCenter_1F_Movement_2A89C2: @ 82A89C2 jump_in_place_left step_end -@TODO, these are CONTEST_CATEGORY_ constants, move into a new constants/contest.h? LilycoveCity_PokemonCenter_1F_EventScript_2A89C7:: @ 82A89C7 specialvar VAR_RESULT, GetContestLadyCategory special Script_BufferContestLadyCategoryAndMonName special GetContestLadyMonSpecies - compare VAR_RESULT, 0 + compare VAR_RESULT, 0 @CONTEST_CATEGORY_COOL goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A0A - compare VAR_RESULT, 1 + compare VAR_RESULT, 1 @CONTEST_CATEGORY_BEAUTY goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A1D - compare VAR_RESULT, 2 + compare VAR_RESULT, 2 @CONTEST_CATEGORY_CUTE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A30 - compare VAR_RESULT, 3 + compare VAR_RESULT, 3 @CONTEST_CATEGORY_SMART goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A43 - compare VAR_RESULT, 4 + compare VAR_RESULT, 4 @CONTEST_CATEGORY_TOUGH goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A56 end diff --git a/data/specials.inc b/data/specials.inc index eaf6611946..ba93b098df 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -388,7 +388,7 @@ gSpecials:: @ 81DBA64 def_special GetQuizLadyState def_special GetQuizAuthor def_special IsQuizLadyWaitingForChallenger - def_special sub_811A858 + def_special QuizLadyShowQuizQuestion def_special QuizLadyGetPlayerAnswer def_special IsQuizAnswerCorrect def_special BufferQuizPrizeItem diff --git a/include/constants/global.h b/include/constants/global.h index ff28d6a4bf..1177f04443 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -50,6 +50,8 @@ #define PYRAMID_BAG_ITEMS_COUNT 10 #define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode. +#define TRAINER_ID_LENGTH 4 + // string lengths #define ITEM_NAME_LENGTH 14 #define POKEMON_NAME_LENGTH 10 diff --git a/include/constants/lilycove_lady.h b/include/constants/lilycove_lady.h index 6ef70d8a7f..01f60ccf44 100644 --- a/include/constants/lilycove_lady.h +++ b/include/constants/lilycove_lady.h @@ -10,6 +10,8 @@ #define LILYCOVE_LADY_STATE_COMPLETED 1 #define LILYCOVE_LADY_STATE_PRIZE 2 +#define LILYCOVE_LADY_GIFT_THRESHOLD 5 + #define QUIZ_AUTHOR_PLAYER 0 #define QUIZ_AUTHOR_OTHER_PLAYER 1 #define QUIZ_AUTHOR_LADY 2 @@ -18,13 +20,7 @@ #define QUIZ_AUTHOR_NAME_LADY 0 #define QUIZ_AUTHOR_NAME_PLAYER 1 #define QUIZ_AUTHOR_NAME_OTHER_PLAYER 2 - -// TODO use array count macro? -#define QUIZ_QUESTION_LEN 9 //ARRAY_COUNT(sQuizLadyQuestion#) -#define NUM_QUIZ_QUESTIONS 16 //ARRAY_COUNT(sQuizLadyQuizQuestions) -#define FAVOR_DESCRIPTION_NUM 6 //ARRAY_COUNT(sFavorLadyDescriptions) - -#define LILYCOVE_LADY_GIFT_THRESHOLD 5 - + +#define QUIZ_QUESTION_LEN 9 #endif diff --git a/include/global.h b/include/global.h index df0d0c1ea7..a82fe58614 100644 --- a/include/global.h +++ b/include/global.h @@ -224,7 +224,7 @@ struct Apprentice u8 number; struct ApprenticeMon party[3]; u16 easyChatWords[6]; - u8 playerId[4]; + u8 playerId[TRAINER_ID_LENGTH]; u8 playerName[PLAYER_NAME_LENGTH]; u8 language; u32 checksum; @@ -263,7 +263,7 @@ struct EmeraldBattleTowerRecord /*0x01*/ u8 facilityClass; /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; - /*0x0C*/ u8 trainerId[4]; + /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; /*0x10*/ u16 greeting[6]; /*0x1C*/ u16 speechWon[6]; /*0x28*/ u16 speechLost[6]; @@ -278,7 +278,7 @@ struct BattleTowerEReaderTrainer /*0x01*/ u8 facilityClass; /*0x02*/ u16 winStreak; /*0x04*/ u8 name[PLAYER_NAME_LENGTH + 1]; - /*0x0C*/ u8 trainerId[4]; + /*0x0C*/ u8 trainerId[TRAINER_ID_LENGTH]; /*0x10*/ u16 greeting[6]; /*0x1C*/ u16 farewellPlayerLost[6]; /*0x28*/ u16 farewellPlayerWon[6]; @@ -425,7 +425,7 @@ struct PlayersApprentice struct RankingHall1P { - u8 id[4]; + u8 id[TRAINER_ID_LENGTH]; u16 winStreak; u8 name[PLAYER_NAME_LENGTH + 1]; u8 language; @@ -433,8 +433,8 @@ struct RankingHall1P struct RankingHall2P { - u8 id1[4]; - u8 id2[4]; + u8 id1[TRAINER_ID_LENGTH]; + u8 id2[TRAINER_ID_LENGTH]; u16 winStreak; u8 name1[PLAYER_NAME_LENGTH + 1]; u8 name2[PLAYER_NAME_LENGTH + 1]; @@ -446,7 +446,7 @@ struct SaveBlock2 /*0x00*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x08*/ u8 playerGender; // MALE, FEMALE /*0x09*/ u8 specialSaveWarpFlags; - /*0x0A*/ u8 playerTrainerId[4]; + /*0x0A*/ u8 playerTrainerId[TRAINER_ID_LENGTH]; /*0x0E*/ u16 playTimeHours; /*0x10*/ u8 playTimeMinutes; /*0x11*/ u8 playTimeSeconds; @@ -495,7 +495,7 @@ struct SecretBase /*0x1A9D*/ u8 battledOwnerToday:1; /*0x1A9D*/ u8 registryStatus:2; /*0x1A9E*/ u8 trainerName[PLAYER_NAME_LENGTH]; - /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class + /*0x1AA5*/ u8 trainerId[TRAINER_ID_LENGTH]; // byte 0 is used for determining trainer class /*0x1AA9*/ u8 language; /*0x1AAA*/ u16 numSecretBasesReceived; /*0x1AAC*/ u8 numTimesEntered; @@ -581,7 +581,7 @@ struct MailStruct { /*0x00*/ u16 words[MAIL_WORDS_COUNT]; /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; - /*0x1A*/ u8 trainerId[4]; + /*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH]; /*0x1E*/ u16 species; /*0x20*/ u16 itemId; }; @@ -598,7 +598,7 @@ struct MauvilleManBard /*0x0E*/ u16 temporaryLyrics[6]; /*0x1A*/ u8 playerName[8]; /*0x22*/ u8 filler_2DB6[0x3]; - /*0x25*/ u8 playerTrainerId[4]; + /*0x25*/ u8 playerTrainerId[TRAINER_ID_LENGTH]; /*0x29*/ bool8 hasChangedSong; /*0x2A*/ u8 language; }; /*size = 0x2C*/ @@ -745,7 +745,7 @@ struct LilycoveLadyQuiz /*0x014*/ u16 correctAnswer; /*0x016*/ u16 playerAnswer; /*0x018*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; - /*0x020*/ u16 playerTrainerId[4]; + /*0x020*/ u16 playerTrainerId[TRAINER_ID_LENGTH]; /*0x028*/ u16 prize; /*0x02a*/ bool8 waitingForChallenger; /*0x02b*/ u8 questionId; diff --git a/src/easy_chat.c b/src/easy_chat.c index b95b43aea2..ba54de783b 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -241,6 +241,7 @@ struct Unk8597530 MainCallback callback; }; +// Lilycove Quiz Lady static const struct Unk8597530 sUnknown_08597530[] = { { .word = 26, @@ -1330,7 +1331,7 @@ void ShowEasyChatScreen(void) DoEasyChatScreen(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, displayedPersonType); } -static void sub_811A7E4(void) +static void CB2_QuizLadyQuestion(void) { LilycoveLady *lilycoveLady; @@ -1353,9 +1354,9 @@ static void sub_811A7E4(void) gMain.state ++; } -void sub_811A858(void) +void QuizLadyShowQuizQuestion(void) { - SetMainCallback2(sub_811A7E4); + SetMainCallback2(CB2_QuizLadyQuestion); } static int sub_811A868(u16 word) diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 339e918470..60ad9de46e 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -126,13 +126,13 @@ static u8 GetNumAcceptedItems(const u16 *itemsArray) static void FavorLadyPickFavorAndBestItem(void) { - u8 size; - u8 idx; + u8 numItems; + u8 bestItem; - sFavorLadyPtr->favorId = Random() % FAVOR_DESCRIPTION_NUM; - size = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]); - idx = Random() % size; - sFavorLadyPtr->bestItem = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][idx]; + sFavorLadyPtr->favorId = Random() % ARRAY_COUNT(sFavorLadyRequests); + numItems = GetNumAcceptedItems(sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId]); + bestItem = Random() % numItems; + sFavorLadyPtr->bestItem = sFavorLadyAcceptedItemLists[sFavorLadyPtr->favorId][bestItem]; } static void InitLilycoveFavorLady(void) @@ -309,7 +309,7 @@ static void QuizLadyPickQuestion(void) u8 questionId; u8 i; - questionId = Random() % NUM_QUIZ_QUESTIONS; + questionId = Random() % ARRAY_COUNT(sQuizLadyQuizQuestions); for (i = 0; i < QUIZ_QUESTION_LEN; i ++) { sQuizLadyPtr->question[i] = sQuizLadyQuizQuestions[questionId][i]; @@ -333,13 +333,13 @@ static void InitLilycoveQuizLady(void) } sQuizLadyPtr->correctAnswer = -1; sQuizLadyPtr->playerAnswer = -1; - for (i = 0; i < 4; i ++) + for (i = 0; i < TRAINER_ID_LENGTH; i ++) { sQuizLadyPtr->playerTrainerId[i] = 0; } sQuizLadyPtr->prize = ITEM_NONE; sQuizLadyPtr->waitingForChallenger = FALSE; - sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS; + sQuizLadyPtr->prevQuestionId = ARRAY_COUNT(sQuizLadyQuizQuestions); sQuizLadyPtr->language = gGameLanguage; QuizLadyPickQuestion(); } @@ -383,7 +383,7 @@ u8 GetQuizAuthor(void) i = quiz->questionId; do { - if (++ i >= NUM_QUIZ_QUESTIONS) + if (++ i >= (int)(ARRAY_COUNT(sQuizLadyQuizQuestions))) { i = 0; } @@ -455,7 +455,7 @@ static bool8 IsQuizTrainerIdNotPlayer(void) sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; notPlayer = FALSE; - for (i = 0; i < 4; i ++) + for (i = 0; i < TRAINER_ID_LENGTH; i ++) { if (sQuizLadyPtr->playerTrainerId[i] != gSaveBlock2Ptr->playerTrainerId[i]) { @@ -548,7 +548,7 @@ void QuizLadyPickNewQuestion(void) } else { - sQuizLadyPtr->prevQuestionId = NUM_QUIZ_QUESTIONS; + sQuizLadyPtr->prevQuestionId = ARRAY_COUNT(sQuizLadyQuizQuestions); } QuizLadyPickQuestion(); } @@ -582,7 +582,7 @@ void QuizLadyRecordCustomQuizData(void) sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; sQuizLadyPtr->prize = gSpecialVar_ItemId; - for (i = 0; i < 4; i ++) + for (i = 0; i < TRAINER_ID_LENGTH; i ++) { sQuizLadyPtr->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; } @@ -613,7 +613,8 @@ void QuizLadyClearQuestionForRecordMix(const LilycoveLady *lilycoveLady) u8 i; sQuizLadyPtr = &gSaveBlock1Ptr->lilycoveLady.quiz; - if (lilycoveLady->quiz.prevQuestionId < NUM_QUIZ_QUESTIONS && sQuizLadyPtr->id == LILYCOVE_LADY_QUIZ) + if (lilycoveLady->quiz.prevQuestionId < ARRAY_COUNT(sQuizLadyQuizQuestions) + && sQuizLadyPtr->id == LILYCOVE_LADY_QUIZ) { for (i = 0; i < 4; i ++) { @@ -621,11 +622,11 @@ void QuizLadyClearQuestionForRecordMix(const LilycoveLady *lilycoveLady) { break; } - sQuizLadyPtr->questionId = Random() % NUM_QUIZ_QUESTIONS; + sQuizLadyPtr->questionId = Random() % ARRAY_COUNT(sQuizLadyQuizQuestions); } if (lilycoveLady->quiz.prevQuestionId == sQuizLadyPtr->questionId) { - sQuizLadyPtr->questionId = (sQuizLadyPtr->questionId + 1) % NUM_QUIZ_QUESTIONS; + sQuizLadyPtr->questionId = (sQuizLadyPtr->questionId + 1) % (int)(ARRAY_COUNT(sQuizLadyQuizQuestions)); } sQuizLadyPtr->prevQuestionId = lilycoveLady->quiz.prevQuestionId; } From f08615881ea84bc441ea1aba4682adc2a6315a29 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 18 Aug 2019 01:35:30 -0400 Subject: [PATCH 22/29] Changes from review --- data/event_scripts.s | 11 ++++++----- include/constants/contest.h | 19 +++++++++++++++++++ include/contest.h | 19 +------------------ src/lilycove_lady.c | 1 + 4 files changed, 27 insertions(+), 23 deletions(-) create mode 100644 include/constants/contest.h diff --git a/data/event_scripts.s b/data/event_scripts.s index 563f7fb7bb..a7c2dc93f1 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,6 +1,7 @@ #include "constants/global.h" #include "constants/battle_frontier.h" #include "constants/battle_setup.h" +#include "constants/contest.h" #include "constants/easy_chat.h" #include "constants/event_objects.h" #include "constants/event_object_movement_constants.h" @@ -4818,15 +4819,15 @@ LilycoveCity_PokemonCenter_1F_EventScript_2A89C7:: @ 82A89C7 specialvar VAR_RESULT, GetContestLadyCategory special Script_BufferContestLadyCategoryAndMonName special GetContestLadyMonSpecies - compare VAR_RESULT, 0 @CONTEST_CATEGORY_COOL + compare VAR_RESULT, CONTEST_CATEGORY_COOL goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A0A - compare VAR_RESULT, 1 @CONTEST_CATEGORY_BEAUTY + compare VAR_RESULT, CONTEST_CATEGORY_BEAUTY goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A1D - compare VAR_RESULT, 2 @CONTEST_CATEGORY_CUTE + compare VAR_RESULT, CONTEST_CATEGORY_CUTE goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A30 - compare VAR_RESULT, 3 @CONTEST_CATEGORY_SMART + compare VAR_RESULT, CONTEST_CATEGORY_SMART goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A43 - compare VAR_RESULT, 4 @CONTEST_CATEGORY_TOUGH + compare VAR_RESULT, CONTEST_CATEGORY_TOUGH goto_if_eq LilycoveCity_PokemonCenter_1F_EventScript_2A8A56 end diff --git a/include/constants/contest.h b/include/constants/contest.h new file mode 100644 index 0000000000..d3296222b1 --- /dev/null +++ b/include/constants/contest.h @@ -0,0 +1,19 @@ +#ifndef GUARD_CONSTANTS_CONTEST_H +#define GUARD_CONSTANTS_CONTEST_H + +#define CONTESTANT_COUNT 4 +#define APPLAUSE_METER_SIZE 5 +#define CONTEST_TURN_COUNT 5 + +#define LINK_CONTEST_FLAG_IS_LINK (1 << 0) +#define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1) +#define LINK_CONTEST_FLAG_HAS_RS_PLAYER (1 << 2) + +#define CONTEST_CATEGORY_COOL 0 +#define CONTEST_CATEGORY_BEAUTY 1 +#define CONTEST_CATEGORY_CUTE 2 +#define CONTEST_CATEGORY_SMART 3 +#define CONTEST_CATEGORY_TOUGH 4 +#define CONTEST_CATEGORIES_COUNT 5 + +#endif // GUARD_CONSTANTS_CONTEST_H diff --git a/include/contest.h b/include/contest.h index a4e209bcb9..8ef208aea3 100644 --- a/include/contest.h +++ b/include/contest.h @@ -2,10 +2,7 @@ #define GUARD_CONTEST_H #include "palette.h" - -#define CONTESTANT_COUNT 4 -#define APPLAUSE_METER_SIZE 5 -#define CONTEST_TURN_COUNT 5 +#include "constants/contest.h" enum { @@ -18,20 +15,6 @@ enum CONTEST_DEBUG_MODE_PRINT_UNK_D }; -#define LINK_CONTEST_FLAG_IS_LINK (1 << 0) -#define LINK_CONTEST_FLAG_IS_WIRELESS (1 << 1) -#define LINK_CONTEST_FLAG_HAS_RS_PLAYER (1 << 2) - -enum -{ - CONTEST_CATEGORY_COOL, - CONTEST_CATEGORY_BEAUTY, - CONTEST_CATEGORY_CUTE, - CONTEST_CATEGORY_SMART, - CONTEST_CATEGORY_TOUGH, - CONTEST_CATEGORIES_COUNT, -}; - enum { CONTEST_EFFECT_HIGHLY_APPEALING, diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 60ad9de46e..011d9fdfdc 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -17,6 +17,7 @@ #include "contest.h" #include "strings.h" #include "constants/lilycove_lady.h" + #include "data/lilycove_lady.h" static void InitLilycoveQuizLady(void); From a4d5624ad6ab4535c448df9302517a9c983418e3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 6 Aug 2019 14:08:13 -0400 Subject: [PATCH 23/29] Move asm srcs to src --- Makefile | 14 +++++++++++++- ld_script.txt | 8 ++++---- ld_script_modern.txt | 9 ++++----- {asm => src}/crt0.s | 0 {asm => src}/libagbsyscall.s | 0 {asm => src}/libgcnmultiboot.s | 0 {asm => src}/m4a_1.s | 0 sym_bss.txt | 2 +- 8 files changed, 22 insertions(+), 11 deletions(-) rename {asm => src}/crt0.s (100%) rename {asm => src}/libagbsyscall.s (100%) rename {asm => src}/libgcnmultiboot.s (100%) rename {asm => src}/m4a_1.s (100%) diff --git a/Makefile b/Makefile index 5a8af32a97..c79647fd62 100644 --- a/Makefile +++ b/Makefile @@ -123,6 +123,9 @@ endif C_SRCS := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c) C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) +C_ASM_SRCS += $(wildcard $(C_SUBDIR)/*.s $(C_SUBDIR)/*/*.s $(C_SUBDIR)/*/*/*.s) +C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS)) + ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) @@ -135,7 +138,7 @@ SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS)) MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid) MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS)) -OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS) +OBJS := $(C_OBJS) $(C_ASM_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS) OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) SUBDIRS := $(sort $(dir $(OBJS))) @@ -235,6 +238,15 @@ $(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep) @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s +ifeq ($(NODEP),1) +$(C_BUILDDIR)/%.o: c_asm_dep := +else +$(C_BUILDDIR)/%.o: c_asm_dep = $(shell $(SCANINC) -I "" $(C_SUBDIR)/$*.s) +endif + +$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s $$(c_asm_dep) + $(AS) $(ASFLAGS) -o $@ $< + ifeq ($(NODEP),1) $(ASM_BUILDDIR)/%.o: asm_dep := else diff --git a/ld_script.txt b/ld_script.txt index 8d451338c1..a044ecdab3 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -47,7 +47,7 @@ SECTIONS { .text : ALIGN(4) { - asm/crt0.o(.text); + src/crt0.o(.text); src/main.o(.text); src/alloc.o(.text); src/dma3_manager.o(.text); @@ -348,8 +348,8 @@ SECTIONS { lib_text : ALIGN(4) { - asm/libgcnmultiboot.o(.text); - asm/m4a_1.o(.text); + src/libgcnmultiboot.o(.text); + src/m4a_1.o(.text); src/m4a.o(.text); src/agb_flash.o(.text); src/agb_flash_1m.o(.text); @@ -360,7 +360,7 @@ SECTIONS { asm/librfu_intr.o(.text); src/librfu_rfu.o(.text); asm/librfu.o(.text); - asm/libagbsyscall.o(.text); + src/libagbsyscall.o(.text); *libgcc.a:_call_via_rX.o(.text); *libgcc.a:_divdi3.o(.text); *libgcc.a:_divsi3.o(.text); diff --git a/ld_script_modern.txt b/ld_script_modern.txt index 98ef16b173..5157e81dca 100644 --- a/ld_script_modern.txt +++ b/ld_script_modern.txt @@ -25,7 +25,6 @@ SECTIONS { { /* .bss starts at 0x3000000 */ src/*.o(.bss); - asm/m4a_1.o(.bss); /* .bss.code starts at 0x3001AA8 */ src/m4a.o(.bss.code); @@ -42,7 +41,7 @@ SECTIONS { .text : ALIGN(4) { - asm/crt0.o(.text); + src/crt0.o(.text); src/*.o(.text); asm/*.o(.text); } =0 @@ -56,8 +55,8 @@ SECTIONS { lib_text : ALIGN(4) { - asm/libgcnmultiboot.o(.text); - asm/m4a_1.o(.text); + src/libgcnmultiboot.o(.text); + src/m4a_1.o(.text); src/m4a.o(.text); src/agb_flash.o(.text); src/agb_flash_1m.o(.text); @@ -68,7 +67,7 @@ SECTIONS { asm/librfu_intr.o(.text); src/librfu_rfu.o(.text); asm/librfu.o(.text); - asm/libagbsyscall.o(.text); + src/libagbsyscall.o(.text); *libgcc.a:*.o(.text*); *libc.a:*.o(.text*); src/libisagbprn.o(.text); diff --git a/asm/crt0.s b/src/crt0.s similarity index 100% rename from asm/crt0.s rename to src/crt0.s diff --git a/asm/libagbsyscall.s b/src/libagbsyscall.s similarity index 100% rename from asm/libagbsyscall.s rename to src/libagbsyscall.s diff --git a/asm/libgcnmultiboot.s b/src/libgcnmultiboot.s similarity index 100% rename from asm/libgcnmultiboot.s rename to src/libgcnmultiboot.s diff --git a/asm/m4a_1.s b/src/m4a_1.s similarity index 100% rename from asm/m4a_1.s rename to src/m4a_1.s diff --git a/sym_bss.txt b/sym_bss.txt index 4c974c3f6a..29b30f2db8 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -51,7 +51,7 @@ .include "src/pokenav_unk_10.o" .include "src/ereader_helpers.o" .include "src/faraway_island.o" - .include "asm/m4a_1.o" + .include "src/m4a_1.o" .include "src/agb_flash.o" .include "src/siirtc.o" .include "*libgcc.a:dp-bit.o" From a46f7952f9c820ab2e8bf633e2b2d2541a31cf01 Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Wed, 7 Aug 2019 21:18:21 -0400 Subject: [PATCH 24/29] Use DIR constants for createvobject Also uses event object ids in LinkContestRoom1 --- .../scripts.inc | 126 +++++++------- data/maps/LinkContestRoom1/scripts.inc | 158 +++++++++--------- include/constants/global.h | 10 ++ include/global.fieldmap.h | 13 -- 4 files changed, 152 insertions(+), 155 deletions(-) diff --git a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc index 96e9f86f57..59a010691d 100644 --- a/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc +++ b/data/maps/BattleFrontier_BattleDomeBattleRoom/scripts.inc @@ -595,76 +595,76 @@ BattleFrontier_BattleDomeBattleRoom_EventScript_24C52F:: @ 824C52F return BattleFrontier_BattleDomeBattleRoom_EventScript_24C530:: @ 824C530 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, 1 - createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, 1 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, 1 - createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 9, 11, 0, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 11, 13, 0, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_5, 13, 15, 0, 3, 1 - createvobject EVENT_OBJ_GFX_BEAUTY, 19, 7, 1, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_5, 22, 11, 1, 3, 1 - createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 15, 1, 3, 1 - createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 2, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, 1 + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 9, 11, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 11, 13, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_5, 13, 15, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_BEAUTY, 19, 7, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_5, 22, 11, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 15, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 2, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH return BattleFrontier_BattleDomeBattleRoom_EventScript_24C594:: @ 824C594 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, 1 - createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, 1 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_2, 7, 9, 0, 3, 1 - createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 9, 11, 0, 3, 1 - createvobject EVENT_OBJ_GFX_LASS, 10, 12, 0, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 11, 13, 0, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_5, 13, 15, 0, 3, 1 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 15, 2, 1, 3, 1 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 16, 3, 1, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_2, 17, 4, 1, 3, 1 - createvobject EVENT_OBJ_GFX_BEAUTY, 19, 7, 1, 3, 1 - createvobject EVENT_OBJ_GFX_EXPERT_F, 20, 9, 1, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_5, 22, 11, 1, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 23, 13, 1, 3, 1 - createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 15, 1, 3, 1 - createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 2, 2, 3, 1 - createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 5, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, 1 - createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 6, 2, 3, 1 + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_2, 7, 9, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 9, 11, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LASS, 10, 12, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 11, 13, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_5, 13, 15, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_GENTLEMAN, 15, 2, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_NINJA_BOY, 16, 3, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_2, 17, 4, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_BEAUTY, 19, 7, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_EXPERT_F, 20, 9, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_5, 22, 11, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 23, 13, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 15, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 2, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 5, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 6, 2, 3, DIR_SOUTH createvobject EVENT_OBJ_GFX_WOMAN_5, 31, 8, 2, 3, 1 return BattleFrontier_BattleDomeBattleRoom_EventScript_24C652:: @ 824C652 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 0, 2, 0, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, 1 - createvobject EVENT_OBJ_GFX_BEAUTY, 2, 15, 0, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_5, 3, 5, 0, 3, 1 - createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 5, 7, 0, 3, 1 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_2, 7, 9, 0, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_3, 8, 10, 0, 3, 1 - createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 9, 11, 0, 3, 1 - createvobject EVENT_OBJ_GFX_LASS, 10, 12, 0, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 11, 13, 0, 3, 1 - createvobject EVENT_OBJ_GFX_BEAUTY, 12, 14, 0, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_5, 13, 15, 2, 3, 1 - createvobject EVENT_OBJ_GFX_HIKER, 14, 12, 2, 3, 1 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 15, 2, 1, 3, 1 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 16, 3, 1, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_2, 17, 4, 1, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_3, 18, 6, 1, 3, 1 - createvobject EVENT_OBJ_GFX_BEAUTY, 19, 7, 1, 3, 1 - createvobject EVENT_OBJ_GFX_EXPERT_F, 20, 9, 1, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_2, 21, 10, 1, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_5, 22, 11, 1, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 23, 13, 1, 3, 1 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 24, 14, 1, 3, 1 - createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 15, 1, 3, 1 - createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 2, 2, 3, 1 - createvobject EVENT_OBJ_GFX_FAT_MAN, 27, 3, 2, 3, 1 - createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 5, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, 1 - createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 6, 2, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_5, 31, 8, 2, 3, 1 + createvobject EVENT_OBJ_GFX_NINJA_BOY, 0, 2, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 1, 3, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_BEAUTY, 2, 15, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_5, 3, 5, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_EXPERT_F, 4, 6, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 5, 7, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_NINJA_BOY, 6, 8, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_2, 7, 9, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_3, 8, 10, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 9, 11, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LASS, 10, 12, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 11, 13, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_BEAUTY, 12, 14, 0, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_5, 13, 15, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_HIKER, 14, 12, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_GENTLEMAN, 15, 2, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_NINJA_BOY, 16, 3, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_2, 17, 4, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_3, 18, 6, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_BEAUTY, 19, 7, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_EXPERT_F, 20, 9, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_2, 21, 10, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_5, 22, 11, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 23, 13, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_GENTLEMAN, 24, 14, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 15, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 2, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_FAT_MAN, 27, 3, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 5, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 5, 1, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 6, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_5, 31, 8, 2, 3, DIR_SOUTH return BattleFrontier_BattleArenaBattleRoom_Movement_24C773: @ 824C773 diff --git a/data/maps/LinkContestRoom1/scripts.inc b/data/maps/LinkContestRoom1/scripts.inc index e58c08c50d..9fb83a7a9f 100644 --- a/data/maps/LinkContestRoom1/scripts.inc +++ b/data/maps/LinkContestRoom1/scripts.inc @@ -312,97 +312,97 @@ LinkContestRoom1_EventScript_23BB2B:: @ 823BB2B return LinkContestRoom1_EventScript_23BB78:: @ 823BB78 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 20, 3, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, 1 + createvobject EVENT_OBJ_GFX_NINJA_BOY, 20, 3, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, DIR_SOUTH return LinkContestRoom1_EventScript_23BB8B:: @ 823BB8B - createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, 4 - createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, 4 - createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, 4 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 3, 2, 8, 3, 4 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, 3 - createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 13, 12, 8, 3, 3 - createvobject EVENT_OBJ_GFX_LASS, 20, 3, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, 1 + createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 3, 2, 8, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 13, 12, 8, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_LASS, 20, 3, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, DIR_SOUTH return LinkContestRoom1_EventScript_23BBE6:: @ 823BBE6 - createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, 4 - createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, 4 - createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, 4 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 3, 2, 8, 3, 4 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, 3 - createvobject EVENT_OBJ_GFX_BEAUTY, 13, 12, 8, 3, 3 - createvobject EVENT_OBJ_GFX_EXPERT_F, 20, 3, 2, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_2, 20, 6, 2, 3, 1 - createvobject EVENT_OBJ_GFX_WOMAN_5, 20, 7, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 8, 2, 3, 1 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 24, 11, 2, 3, 1 - createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 3, 9, 3, 2 - createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 4, 9, 3, 2 - createvobject EVENT_OBJ_GFX_FAT_MAN, 27, 5, 9, 3, 2 - createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 9, 9, 3, 2 - createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 10, 9, 3, 2 - createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 11, 9, 3, 2 + createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_GENTLEMAN, 3, 2, 8, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_BEAUTY, 13, 12, 8, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_EXPERT_F, 20, 3, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_2, 20, 6, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_WOMAN_5, 20, 7, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 8, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_GENTLEMAN, 24, 11, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_LITTLE_BOY, 25, 3, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 4, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_FAT_MAN, 27, 5, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 9, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 10, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 11, 9, 3, DIR_NORTH return LinkContestRoom1_EventScript_23BC92:: @ 823BC92 - createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, 4 - createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, 4 - createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, 4 - createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 3, 2, 8, 3, 4 - createvobject EVENT_OBJ_GFX_MANIAC, 4, 1, 3, 3, 4 - createvobject EVENT_OBJ_GFX_WOMAN_5, 6, 1, 5, 3, 4 - createvobject EVENT_OBJ_GFX_WOMAN_4, 7, 1, 6, 3, 4 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 9, 1, 8, 3, 4 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, 3 - createvobject EVENT_OBJ_GFX_BEAUTY, 13, 12, 8, 3, 3 - createvobject EVENT_OBJ_GFX_FISHERMAN, 14, 13, 3, 3, 3 - createvobject EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, 15, 13, 4, 3, 3 - createvobject EVENT_OBJ_GFX_MAN_4, 17, 13, 6, 3, 3 - createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 18, 13, 7, 3, 3 - createvobject EVENT_OBJ_GFX_DEVON_EMPLOYEE, 19, 13, 8, 3, 3 - createvobject EVENT_OBJ_GFX_POKEFAN_M, 20, 3, 2, 3, 1 - createvobject EVENT_OBJ_GFX_CAMPER, 21, 6, 2, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_3, 22, 7, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SAILOR, 25, 3, 9, 3, 2 - createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 4, 9, 3, 2 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 27, 5, 9, 3, 2 - createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 9, 9, 3, 2 - createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 10, 9, 3, 2 - createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 11, 9, 3, 2 + createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 3, 2, 8, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_MANIAC, 4, 1, 3, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_WOMAN_5, 6, 1, 5, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_WOMAN_4, 7, 1, 6, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_GENTLEMAN, 9, 1, 8, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_BEAUTY, 13, 12, 8, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_FISHERMAN, 14, 13, 3, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, 15, 13, 4, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_MAN_4, 17, 13, 6, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 18, 13, 7, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_DEVON_EMPLOYEE, 19, 13, 8, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_POKEFAN_M, 20, 3, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_CAMPER, 21, 6, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_3, 22, 7, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SAILOR, 25, 3, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_YOUNGSTER, 26, 4, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_GENTLEMAN, 27, 5, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_HEX_MANIAC, 28, 9, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_SCHOOL_KID_M, 29, 10, 9, 3, DIR_NORTH + createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 30, 11, 9, 3, DIR_NORTH return LinkContestRoom1_EventScript_23BD86:: @ 823BD86 - createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, 4 - createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, 4 - createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, 4 - createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 3, 2, 8, 3, 4 - createvobject EVENT_OBJ_GFX_MANIAC, 4, 1, 3, 3, 4 - createvobject EVENT_OBJ_GFX_WOMAN_5, 6, 1, 5, 3, 4 - createvobject EVENT_OBJ_GFX_WOMAN_4, 7, 1, 6, 3, 4 - createvobject EVENT_OBJ_GFX_GENTLEMAN, 9, 1, 8, 3, 4 - createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, 3 - createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, 3 - createvobject EVENT_OBJ_GFX_BEAUTY, 13, 12, 8, 3, 3 - createvobject EVENT_OBJ_GFX_FISHERMAN, 14, 13, 3, 3, 3 - createvobject EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, 15, 13, 4, 3, 3 - createvobject EVENT_OBJ_GFX_MAN_4, 17, 13, 6, 3, 3 - createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 18, 13, 7, 3, 3 - createvobject EVENT_OBJ_GFX_DEVON_EMPLOYEE, 19, 13, 8, 3, 3 - createvobject EVENT_OBJ_GFX_POKEFAN_M, 20, 3, 2, 3, 1 - createvobject EVENT_OBJ_GFX_CAMPER, 21, 6, 2, 3, 1 - createvobject EVENT_OBJ_GFX_MAN_3, 22, 7, 2, 3, 1 - createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, 1 + createvobject EVENT_OBJ_GFX_BEAUTY, 0, 2, 3, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_MAN_5, 1, 2, 4, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_HIKER, 2, 2, 7, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_LITTLE_GIRL, 3, 2, 8, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_MANIAC, 4, 1, 3, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_WOMAN_5, 6, 1, 5, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_WOMAN_4, 7, 1, 6, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_GENTLEMAN, 9, 1, 8, 3, DIR_EAST + createvobject EVENT_OBJ_GFX_NINJA_BOY, 10, 12, 3, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_2, 11, 12, 4, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_WOMAN_3, 12, 12, 7, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_BEAUTY, 13, 12, 8, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_FISHERMAN, 14, 13, 3, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_RUNNING_TRIATHLETE_F, 15, 13, 4, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_MAN_4, 17, 13, 6, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_MART_EMPLOYEE, 18, 13, 7, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_DEVON_EMPLOYEE, 19, 13, 8, 3, DIR_WEST + createvobject EVENT_OBJ_GFX_POKEFAN_M, 20, 3, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_CAMPER, 21, 6, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_MAN_3, 22, 7, 2, 3, DIR_SOUTH + createvobject EVENT_OBJ_GFX_SCIENTIST_1, 24, 11, 2, 3, DIR_SOUTH return LinkContestRoom1_EventScript_23BE44:: @ 823BE44 diff --git a/include/constants/global.h b/include/constants/global.h index 1177f04443..a862ecad21 100644 --- a/include/constants/global.h +++ b/include/constants/global.h @@ -76,4 +76,14 @@ #define OPTIONS_BATTLE_STYLE_SHIFT 0 #define OPTIONS_BATTLE_STYLE_SET 1 +#define DIR_NONE 0 +#define DIR_SOUTH 1 +#define DIR_NORTH 2 +#define DIR_WEST 3 +#define DIR_EAST 4 +#define DIR_SOUTHWEST 5 +#define DIR_SOUTHEAST 6 +#define DIR_NORTHWEST 7 +#define DIR_NORTHEAST 8 + #endif // GUARD_CONSTANTS_GLOBAL_H diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h index b5a86e3115..a171805897 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -265,19 +265,6 @@ enum ACRO_BIKE_STATE6, }; -enum -{ - DIR_NONE, - DIR_SOUTH, - DIR_NORTH, - DIR_WEST, - DIR_EAST, - DIR_SOUTHWEST, - DIR_SOUTHEAST, - DIR_NORTHWEST, - DIR_NORTHEAST, -}; - enum { COLLISION_LEDGE_JUMP = 6 From f7cf4fa15464e8485e3d07f9ea12d3f12470268b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 9 Aug 2019 20:31:24 -0400 Subject: [PATCH 25/29] Use HFLIP, VFLIP --- include/gba/types.h | 4 ++++ src/battle_anim_effects_1.c | 14 +++++++------- src/battle_anim_effects_2.c | 4 ++-- src/battle_anim_effects_3.c | 8 ++++---- src/battle_interface.c | 2 +- src/electric.c | 4 ++-- src/fight.c | 4 ++-- src/flying.c | 2 +- src/ghost.c | 2 +- src/rock.c | 2 +- 10 files changed, 25 insertions(+), 21 deletions(-) diff --git a/include/gba/types.h b/include/gba/types.h index 9f25947037..07e5d4c267 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -68,6 +68,10 @@ struct OamData /*0x06*/ u16 affineParam; }; +#define ST_OAM_MNUM_HFLIP 0x08 +#define ST_OAM_MNUM_VFLIP 0x10 +#define ST_OAM_MNUM_FLIP_MASK 0x18 + #define ST_OAM_OBJ_NORMAL 0 #define ST_OAM_OBJ_BLEND 1 #define ST_OAM_OBJ_WINDOW 2 diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index b3a67a509f..242b7977ca 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -2547,7 +2547,7 @@ static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite) { sprite->pos2.x += Sin(sprite->data[5], 8); if ((u16)(sprite->data[5] - 59) < 5 || (u16)(sprite->data[5] - 187) < 5) - sprite->oam.matrixNum ^= 0x8; // horizontal flip + sprite->oam.matrixNum ^= ST_OAM_MNUM_HFLIP; sprite->data[5] += 5; sprite->data[5] &= 0xFF; @@ -4380,19 +4380,19 @@ void sub_8101898(struct Sprite* sprite) { sprite->pos1.x -= 0x18; sprite->pos1.y += 0x18; - sprite->oam.matrixNum = 16; + sprite->oam.matrixNum = ST_OAM_MNUM_VFLIP; } else if ((s16)sprite->oam.affineParam == 3) { sprite->pos1.x += 0x18; sprite->pos1.y -= 0x18; - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; } else { sprite->pos1.x += 0x18; sprite->pos1.y += 0x18; - sprite->oam.matrixNum = 24; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP; } sprite->oam.tileNum = (sprite->oam.tileNum + 16); @@ -5105,7 +5105,7 @@ void sub_8102844(struct Sprite* sprite) sprite->data[7] = sprite->pos1.y; if (IsContest()) { - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; sprite->pos1.x += 40; sprite->pos1.y += 20; sprite->data[2] = sprite->pos1.x << 7; @@ -5130,7 +5130,7 @@ void sub_8102844(struct Sprite* sprite) sprite->data[3] = -0x1400 / sprite->data[1]; sprite->data[4] = sprite->pos1.y << 7; sprite->data[5] = 0xA00 / sprite->data[1]; - sprite->oam.matrixNum = 24; + sprite->oam.matrixNum = (ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP); } sprite->callback = sub_810296C; @@ -5387,7 +5387,7 @@ void sub_8102FB8(struct Sprite* sprite) s16 a; if (gBattleAnimArgs[0] == 1) { - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; a = 16; } else diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 65cc556048..124b98381f 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1609,10 +1609,10 @@ static void sub_8103C0C(u8 taskId) switch (gTasks[taskId].data[4]) { case 1: - sprite->oam.matrixNum |= 24; + sprite->oam.matrixNum |= (ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP); break; case 2: - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; break; } diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 5d79a9e6b4..8c4ee34a9e 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1618,7 +1618,7 @@ void sub_815AAA4(struct Sprite *sprite) if (gBattleAnimArgs[2] == 0) { - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; sprite->pos2.x = -12; sprite->data[1] = 2; } @@ -4167,7 +4167,7 @@ void AnimSmellingSaltsHand(struct Sprite *sprite) sprite->pos1.y = GetBattlerSpriteCoord(battler, 3); if (gBattleAnimArgs[1] == 0) { - sprite->oam.matrixNum |= 0x8; + sprite->oam.matrixNum |= ST_OAM_MNUM_HFLIP; sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; } else @@ -4317,7 +4317,7 @@ void AnimHelpingHandClap(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->oam.matrixNum |= 0x8; // horizontal flip + sprite->oam.matrixNum |= ST_OAM_MNUM_HFLIP; sprite->pos1.x = 100; sprite->data[7] = 1; } @@ -4545,7 +4545,7 @@ void AnimForesightMagnifyingGlass(struct Sprite *sprite) } if (GetBattlerSide(sprite->data[7]) == B_SIDE_OPPONENT) - sprite->oam.matrixNum = 8; // horizontal flip + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]); sprite->oam.objMode = ST_OAM_OBJ_BLEND; diff --git a/src/battle_interface.c b/src/battle_interface.c index 9224375976..39fa0c2775 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1536,7 +1536,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, if (isOpponent) { gSprites[summaryBarSpriteId].pos1.x -= 96; - gSprites[summaryBarSpriteId].oam.matrixNum = 8; + gSprites[summaryBarSpriteId].oam.matrixNum = ST_OAM_MNUM_HFLIP; } else { diff --git a/src/electric.c b/src/electric.c index 5e77298421..920c83f24d 100644 --- a/src/electric.c +++ b/src/electric.c @@ -667,9 +667,9 @@ static void sub_810A75C(struct Sprite *sprite) sprite->oam.tileNum += gBattleAnimArgs[3] * 4; if (gBattleAnimArgs[3] == 1) - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; else if (gBattleAnimArgs[3] == 2) - sprite->oam.matrixNum = 16; + sprite->oam.matrixNum = ST_OAM_MNUM_VFLIP; sprite->data[0] = gBattleAnimArgs[2]; sprite->callback = WaitAnimForDuration; diff --git a/src/fight.c b/src/fight.c index c924effaef..99346651de 100644 --- a/src/fight.c +++ b/src/fight.c @@ -912,9 +912,9 @@ void sub_810D874(struct Sprite *sprite) } if (IsContest()) - sprite->oam.matrixNum |= 0x8; + sprite->oam.matrixNum |= ST_OAM_MNUM_HFLIP; else if (GetBattlerSide(battler) == B_SIDE_PLAYER) - sprite->oam.matrixNum |= 0x18; + sprite->oam.matrixNum |= (ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP); sprite->data[0] = 16; sprite->data[1] = sprite->pos1.x; diff --git a/src/flying.c b/src/flying.c index a157582e96..45661c7fab 100644 --- a/src/flying.c +++ b/src/flying.c @@ -1800,7 +1800,7 @@ void sub_810EEF8(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[0]; if (sprite->data[2]) - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; if (gBattleAnimArgs[1] == 0) { diff --git a/src/ghost.c b/src/ghost.c index dd29fb7ca1..f1fb9166d4 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -1039,7 +1039,7 @@ static void sub_81129F0(struct Sprite *sprite) { xDelta = 24; xDelta2 = -2; - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; } else { diff --git a/src/rock.c b/src/rock.c index f05816362e..a4b4269fb0 100644 --- a/src/rock.c +++ b/src/rock.c @@ -508,7 +508,7 @@ void AnimDirtParticleAcrossScreen(struct Sprite *sprite) sprite->pos1.x = 304; gBattleAnimArgs[1] = -gBattleAnimArgs[1]; sprite->data[5] = 1; - sprite->oam.matrixNum = 8; + sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; } else { From 5b8d0f1c33278194d46625b2ea409ceaab04c4b0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 10 Aug 2019 12:09:06 -0400 Subject: [PATCH 26/29] Remove MNUM from oam flip constant names --- include/gba/types.h | 4 ++-- src/battle_anim_effects_1.c | 14 +++++++------- src/battle_anim_effects_2.c | 4 ++-- src/battle_anim_effects_3.c | 8 ++++---- src/battle_interface.c | 2 +- src/electric.c | 4 ++-- src/fight.c | 4 ++-- src/flying.c | 2 +- src/ghost.c | 2 +- src/rock.c | 2 +- 10 files changed, 23 insertions(+), 23 deletions(-) diff --git a/include/gba/types.h b/include/gba/types.h index 07e5d4c267..7163f925f8 100644 --- a/include/gba/types.h +++ b/include/gba/types.h @@ -68,8 +68,8 @@ struct OamData /*0x06*/ u16 affineParam; }; -#define ST_OAM_MNUM_HFLIP 0x08 -#define ST_OAM_MNUM_VFLIP 0x10 +#define ST_OAM_HFLIP 0x08 +#define ST_OAM_VFLIP 0x10 #define ST_OAM_MNUM_FLIP_MASK 0x18 #define ST_OAM_OBJ_NORMAL 0 diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 242b7977ca..dfe5f0f3dc 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -2547,7 +2547,7 @@ static void AnimPetalDanceSmallFlowerStep(struct Sprite* sprite) { sprite->pos2.x += Sin(sprite->data[5], 8); if ((u16)(sprite->data[5] - 59) < 5 || (u16)(sprite->data[5] - 187) < 5) - sprite->oam.matrixNum ^= ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum ^= ST_OAM_HFLIP; sprite->data[5] += 5; sprite->data[5] &= 0xFF; @@ -4380,19 +4380,19 @@ void sub_8101898(struct Sprite* sprite) { sprite->pos1.x -= 0x18; sprite->pos1.y += 0x18; - sprite->oam.matrixNum = ST_OAM_MNUM_VFLIP; + sprite->oam.matrixNum = ST_OAM_VFLIP; } else if ((s16)sprite->oam.affineParam == 3) { sprite->pos1.x += 0x18; sprite->pos1.y -= 0x18; - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; } else { sprite->pos1.x += 0x18; sprite->pos1.y += 0x18; - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP | ST_OAM_VFLIP; } sprite->oam.tileNum = (sprite->oam.tileNum + 16); @@ -5105,7 +5105,7 @@ void sub_8102844(struct Sprite* sprite) sprite->data[7] = sprite->pos1.y; if (IsContest()) { - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; sprite->pos1.x += 40; sprite->pos1.y += 20; sprite->data[2] = sprite->pos1.x << 7; @@ -5130,7 +5130,7 @@ void sub_8102844(struct Sprite* sprite) sprite->data[3] = -0x1400 / sprite->data[1]; sprite->data[4] = sprite->pos1.y << 7; sprite->data[5] = 0xA00 / sprite->data[1]; - sprite->oam.matrixNum = (ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP); + sprite->oam.matrixNum = (ST_OAM_HFLIP | ST_OAM_VFLIP); } sprite->callback = sub_810296C; @@ -5387,7 +5387,7 @@ void sub_8102FB8(struct Sprite* sprite) s16 a; if (gBattleAnimArgs[0] == 1) { - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; a = 16; } else diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index 124b98381f..3b7d26aab7 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -1609,10 +1609,10 @@ static void sub_8103C0C(u8 taskId) switch (gTasks[taskId].data[4]) { case 1: - sprite->oam.matrixNum |= (ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP); + sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP); break; case 2: - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; break; } diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 8c4ee34a9e..79b728e61d 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -1618,7 +1618,7 @@ void sub_815AAA4(struct Sprite *sprite) if (gBattleAnimArgs[2] == 0) { - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; sprite->pos2.x = -12; sprite->data[1] = 2; } @@ -4167,7 +4167,7 @@ void AnimSmellingSaltsHand(struct Sprite *sprite) sprite->pos1.y = GetBattlerSpriteCoord(battler, 3); if (gBattleAnimArgs[1] == 0) { - sprite->oam.matrixNum |= ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum |= ST_OAM_HFLIP; sprite->pos1.x = GetBattlerSpriteCoordAttr(battler, BATTLER_COORD_ATTR_LEFT) - 8; } else @@ -4317,7 +4317,7 @@ void AnimHelpingHandClap(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) { - sprite->oam.matrixNum |= ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum |= ST_OAM_HFLIP; sprite->pos1.x = 100; sprite->data[7] = 1; } @@ -4545,7 +4545,7 @@ void AnimForesightMagnifyingGlass(struct Sprite *sprite) } if (GetBattlerSide(sprite->data[7]) == B_SIDE_OPPONENT) - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; sprite->oam.priority = GetBattlerSpriteBGPriority(sprite->data[7]); sprite->oam.objMode = ST_OAM_OBJ_BLEND; diff --git a/src/battle_interface.c b/src/battle_interface.c index 39fa0c2775..8fabfed689 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1536,7 +1536,7 @@ u8 CreatePartyStatusSummarySprites(u8 battlerId, struct HpAndStatus *partyInfo, if (isOpponent) { gSprites[summaryBarSpriteId].pos1.x -= 96; - gSprites[summaryBarSpriteId].oam.matrixNum = ST_OAM_MNUM_HFLIP; + gSprites[summaryBarSpriteId].oam.matrixNum = ST_OAM_HFLIP; } else { diff --git a/src/electric.c b/src/electric.c index 920c83f24d..4b93119dcf 100644 --- a/src/electric.c +++ b/src/electric.c @@ -667,9 +667,9 @@ static void sub_810A75C(struct Sprite *sprite) sprite->oam.tileNum += gBattleAnimArgs[3] * 4; if (gBattleAnimArgs[3] == 1) - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; else if (gBattleAnimArgs[3] == 2) - sprite->oam.matrixNum = ST_OAM_MNUM_VFLIP; + sprite->oam.matrixNum = ST_OAM_VFLIP; sprite->data[0] = gBattleAnimArgs[2]; sprite->callback = WaitAnimForDuration; diff --git a/src/fight.c b/src/fight.c index 99346651de..5230c2f398 100644 --- a/src/fight.c +++ b/src/fight.c @@ -912,9 +912,9 @@ void sub_810D874(struct Sprite *sprite) } if (IsContest()) - sprite->oam.matrixNum |= ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum |= ST_OAM_HFLIP; else if (GetBattlerSide(battler) == B_SIDE_PLAYER) - sprite->oam.matrixNum |= (ST_OAM_MNUM_HFLIP | ST_OAM_MNUM_VFLIP); + sprite->oam.matrixNum |= (ST_OAM_HFLIP | ST_OAM_VFLIP); sprite->data[0] = 16; sprite->data[1] = sprite->pos1.x; diff --git a/src/flying.c b/src/flying.c index 45661c7fab..3d04a543c3 100644 --- a/src/flying.c +++ b/src/flying.c @@ -1800,7 +1800,7 @@ void sub_810EEF8(struct Sprite *sprite) sprite->data[2] = gBattleAnimArgs[0]; if (sprite->data[2]) - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; if (gBattleAnimArgs[1] == 0) { diff --git a/src/ghost.c b/src/ghost.c index f1fb9166d4..41621ff542 100644 --- a/src/ghost.c +++ b/src/ghost.c @@ -1039,7 +1039,7 @@ static void sub_81129F0(struct Sprite *sprite) { xDelta = 24; xDelta2 = -2; - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; } else { diff --git a/src/rock.c b/src/rock.c index a4b4269fb0..6f6e209551 100644 --- a/src/rock.c +++ b/src/rock.c @@ -508,7 +508,7 @@ void AnimDirtParticleAcrossScreen(struct Sprite *sprite) sprite->pos1.x = 304; gBattleAnimArgs[1] = -gBattleAnimArgs[1]; sprite->data[5] = 1; - sprite->oam.matrixNum = ST_OAM_MNUM_HFLIP; + sprite->oam.matrixNum = ST_OAM_HFLIP; } else { From 4228750e3828b70295bb8e1b86f414b06194e5c7 Mon Sep 17 00:00:00 2001 From: GriffinR <25753467+GriffinRichards@users.noreply.github.com> Date: Fri, 9 Aug 2019 16:28:22 -0400 Subject: [PATCH 27/29] more documentation in match_call_data Documents everything related to UnkStruct_08625388, names HasCheckPage functions, fixes mislabeled Brendan/May headers, and adds header count to pokenav_unk_3 --- include/pokenav.h | 32 +++++++++- src/pokenav_match_call_data.c | 116 +++++++++++++++++----------------- src/pokenav_unk_3.c | 14 ++-- 3 files changed, 95 insertions(+), 67 deletions(-) diff --git a/include/pokenav.h b/include/pokenav.h index db32e3029b..b1c3287f1f 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -56,6 +56,32 @@ enum POKENAV_MENU_E, }; +enum +{ + MC_HEADER_MR_STONE, + MC_HEADER_PROF_BIRCH, + MC_HEADER_BRENDAN, + MC_HEADER_MAY, + MC_HEADER_WALLY, + MC_HEADER_NORMAN, + MC_HEADER_MOM, + MC_HEADER_STEVEN, + MC_HEADER_SCOTT, + MC_HEADER_ROXANNE, + MC_HEADER_BRAWLY, + MC_HEADER_WATTSON, + MC_HEADER_FLANNERY, + MC_HEADER_WINONA, + MC_HEADER_TATE_LIZA, + MC_HEADER_JUAN, + MC_HEADER_SIDNEY, + MC_HEADER_PHOEBE, + MC_HEADER_GLACIA, + MC_HEADER_DRAKE, + MC_HEADER_WALLACE, + MC_HEADER_COUNT +}; + // pokenav.c void sub_81C7694(u32); u32 sub_81C76AC(void); @@ -109,15 +135,15 @@ bool32 sub_81C81D4(const struct BgTemplate *arg0, struct MatchCallListTemplate * void sub_81C8234(void); // pokenav_match_call_data.c -bool32 sub_81D17E8(u32 idx); +bool32 MatchCall_HasCheckPage(u32 idx); u8 MatchCallMapSecGetByIndex(u32 idx); bool32 sub_81D1BF8(u32 idx); bool32 MatchCallFlagGetByIndex(u32 idx); u32 MatchCall_GetRematchTableIdx(u32 idx); u32 GetTrainerIdxByRematchIdx(u32 rematchIdx); -int sub_81D1BD0(u32 idx); +int MatchCall_GetOverrideFacilityClass(u32 idx); void MatchCall_GetMessage(u32 idx, u8 *dest); -const u8 *sub_81D1B40(u32 idx, u32 offset); +const u8 *MatchCall_GetOverrideFlavorText(u32 idx, u32 offset); void sub_81D1A78(u32 idx, const u8 **desc, const u8 **name); // pokenav_main_menu.c diff --git a/src/pokenav_match_call_data.c b/src/pokenav_match_call_data.c index d2d89babf2..5379ee88ea 100644 --- a/src/pokenav_match_call_data.c +++ b/src/pokenav_match_call_data.c @@ -6,7 +6,9 @@ #include "battle.h" #include "gym_leader_rematch.h" #include "match_call.h" +#include "pokenav.h" #include "constants/region_map_sections.h" +#include "constants/trainers.h" // Static type declarations @@ -94,11 +96,11 @@ typedef union { const struct MatchCallStruct5 *type5; } match_call_t; -struct UnkStruct_08625388 { +struct MatchCallOverride { u16 idx; - u16 v2; - u32 v4; - const u8 *v8[4]; + u16 facilityClass; + u32 flag; + const u8 *flavorTexts[4]; }; // Static RAM declarations @@ -123,11 +125,11 @@ static bool32 MatchCall_IsRematchable_Type2(match_call_t); static bool32 MatchCall_IsRematchable_Type3(match_call_t); static bool32 MatchCall_IsRematchable_Type4(match_call_t); -static bool32 sub_81D1840(match_call_t); -static bool32 sub_81D1844(match_call_t); -static bool32 sub_81D1848(match_call_t); -static bool32 sub_81D184C(match_call_t); -static bool32 sub_81D1850(match_call_t); +static bool32 MatchCall_HasCheckPage_Type0(match_call_t); +static bool32 MatchCall_HasCheckPage_Type1(match_call_t); +static bool32 MatchCall_HasCheckPage_Type2(match_call_t); +static bool32 MatchCall_HasCheckPage_Type3(match_call_t); +static bool32 MatchCall_HasCheckPage_Type4(match_call_t); static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t); static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t); @@ -423,10 +425,10 @@ static const match_call_text_data_t sMayTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -static const struct MatchCallStruct4 sBrendanMatchCallHeader = +static const struct MatchCallStruct4 sMayMatchCallHeader = { .type = 4, - .gender = MALE, + .gender = MALE, //Gender of player .flag = FLAG_ENABLE_RIVAL_MATCH_CALL, .desc = gMayBrendanMatchCallDesc, .name = gExpandedPlaceholder_May, @@ -452,10 +454,10 @@ static const match_call_text_data_t sBrendanTextScripts[] = { { NULL, 0xFFFF, 0xFFFF } }; -static const struct MatchCallStruct4 sMayMatchCallHeader = +static const struct MatchCallStruct4 sBrendanMatchCallHeader = { .type = 4, - .gender = FEMALE, + .gender = FEMALE, //Gender of player .flag = FLAG_ENABLE_RIVAL_MATCH_CALL, .desc = gMayBrendanMatchCallDesc, .name = gExpandedPlaceholder_Brendan, @@ -727,27 +729,27 @@ static const struct MatchCallStruct5 sWallaceMatchCallHeader = }; static const match_call_t sMatchCallHeaders[] = { - {.type0 = &sMrStoneMatchCallHeader}, - {.type3 = &sProfBirchMatchCallHeader}, - {.type4 = &sMayMatchCallHeader}, - {.type4 = &sBrendanMatchCallHeader}, - {.type2 = &sWallyMatchCallHeader}, - {.type5 = &sNormanMatchCallHeader}, - {.type0 = &sMomMatchCallHeader}, - {.type0 = &sStevenMatchCallHeader}, - {.type0 = &sScottMatchCallHeader}, - {.type5 = &sRoxanneMatchCallHeader}, - {.type5 = &sBrawlyMatchCallHeader}, - {.type5 = &sWattsonMatchCallHeader}, - {.type5 = &sFlanneryMatchCallHeader}, - {.type5 = &sWinonaMatchCallHeader}, - {.type5 = &sTateLizaMatchCallHeader}, - {.type5 = &sJuanMatchCallHeader}, - {.type5 = &sSidneyMatchCallHeader}, - {.type5 = &sPhoebeMatchCallHeader}, - {.type5 = &sGlaciaMatchCallHeader}, - {.type5 = &sDrakeMatchCallHeader}, - {.type5 = &sWallaceMatchCallHeader} + [MC_HEADER_MR_STONE] = {.type0 = &sMrStoneMatchCallHeader}, + [MC_HEADER_PROF_BIRCH] = {.type3 = &sProfBirchMatchCallHeader}, + [MC_HEADER_BRENDAN] = {.type4 = &sBrendanMatchCallHeader}, + [MC_HEADER_MAY] = {.type4 = &sMayMatchCallHeader}, + [MC_HEADER_WALLY] = {.type2 = &sWallyMatchCallHeader}, + [MC_HEADER_NORMAN] = {.type5 = &sNormanMatchCallHeader}, + [MC_HEADER_MOM] = {.type0 = &sMomMatchCallHeader}, + [MC_HEADER_STEVEN] = {.type0 = &sStevenMatchCallHeader}, + [MC_HEADER_SCOTT] = {.type0 = &sScottMatchCallHeader}, + [MC_HEADER_ROXANNE] = {.type5 = &sRoxanneMatchCallHeader}, + [MC_HEADER_BRAWLY] = {.type5 = &sBrawlyMatchCallHeader}, + [MC_HEADER_WATTSON] = {.type5 = &sWattsonMatchCallHeader}, + [MC_HEADER_FLANNERY] = {.type5 = &sFlanneryMatchCallHeader}, + [MC_HEADER_WINONA] = {.type5 = &sWinonaMatchCallHeader}, + [MC_HEADER_TATE_LIZA] = {.type5 = &sTateLizaMatchCallHeader}, + [MC_HEADER_JUAN] = {.type5 = &sJuanMatchCallHeader}, + [MC_HEADER_SIDNEY] = {.type5 = &sSidneyMatchCallHeader}, + [MC_HEADER_PHOEBE] = {.type5 = &sPhoebeMatchCallHeader}, + [MC_HEADER_GLACIA] = {.type5 = &sGlaciaMatchCallHeader}, + [MC_HEADER_DRAKE] = {.type5 = &sDrakeMatchCallHeader}, + [MC_HEADER_WALLACE] = {.type5 = &sWallaceMatchCallHeader} }; static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = { @@ -774,12 +776,12 @@ static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = { MatchCall_IsRematchable_Type3 }; -static bool32 (*const gUnknown_08625338[])(match_call_t) = { - sub_81D1840, - sub_81D1844, - sub_81D1848, - sub_81D184C, - sub_81D1850 +static bool32 (*const sMatchCall_HasCheckPageFunctions[])(match_call_t) = { + MatchCall_HasCheckPage_Type0, + MatchCall_HasCheckPage_Type1, + MatchCall_HasCheckPage_Type2, + MatchCall_HasCheckPage_Type4, + MatchCall_HasCheckPage_Type3 }; static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = { @@ -806,11 +808,11 @@ static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8 MatchCall_GetNameAndDesc_Type3 }; -static const struct UnkStruct_08625388 sMatchCallCheckPageOverrides[] = { - { 7, 0x4B, 0xffff, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN - { 7, 0x4B, FLAG_DEFEATED_MOSSDEEP_GYM, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN - { 2, 0x3c, 0xffff, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan - { 3, 0x3f, 0xffff, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May +static const struct MatchCallOverride sMatchCallCheckPageOverrides[] = { + { MC_HEADER_STEVEN, FACILITY_CLASS_STEVEN, 0xFFFF, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN + { MC_HEADER_STEVEN, FACILITY_CLASS_STEVEN, FLAG_DEFEATED_MOSSDEEP_GYM, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN + { MC_HEADER_BRENDAN, FACILITY_CLASS_BRENDAN, 0xFFFF, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan + { MC_HEADER_MAY, FACILITY_CLASS_MAY, 0xFFFF, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May }; // .text @@ -981,7 +983,7 @@ static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall) return FALSE; } -bool32 sub_81D17E8(u32 idx) +bool32 MatchCall_HasCheckPage(u32 idx) { match_call_t matchCall; u32 i; @@ -990,7 +992,7 @@ bool32 sub_81D17E8(u32 idx) return FALSE; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); - if (gUnknown_08625338[i](matchCall)) + if (sMatchCall_HasCheckPageFunctions[i](matchCall)) return TRUE; for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++) { @@ -1000,27 +1002,27 @@ bool32 sub_81D17E8(u32 idx) return FALSE; } -static bool32 sub_81D1840(match_call_t matchCall) +static bool32 MatchCall_HasCheckPage_Type0(match_call_t matchCall) { return FALSE; } -static bool32 sub_81D1844(match_call_t matchCall) +static bool32 MatchCall_HasCheckPage_Type1(match_call_t matchCall) { return TRUE; } -static bool32 sub_81D1848(match_call_t matchCall) +static bool32 MatchCall_HasCheckPage_Type2(match_call_t matchCall) { return TRUE; } -static bool32 sub_81D184C(match_call_t matchCall) +static bool32 MatchCall_HasCheckPage_Type4(match_call_t matchCall) { return FALSE; } -static bool32 sub_81D1850(match_call_t matchCall) +static bool32 MatchCall_HasCheckPage_Type3(match_call_t matchCall) { return FALSE; } @@ -1210,7 +1212,7 @@ static void MatchCall_GetNameAndDescByRematchIdx(u32 idx, const u8 **desc, const *name = trainer->trainerName; } -const u8 *sub_81D1B40(u32 idx, u32 offset) +const u8 *MatchCall_GetOverrideFlavorText(u32 idx, u32 offset) { u32 i; @@ -1224,24 +1226,24 @@ const u8 *sub_81D1B40(u32 idx, u32 offset) break; if (sMatchCallCheckPageOverrides[i + 1].idx != idx) break; - if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].v4)) + if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].flag)) break; i++; } - return sMatchCallCheckPageOverrides[i].v8[offset]; + return sMatchCallCheckPageOverrides[i].flavorTexts[offset]; } } return NULL; } -int sub_81D1BD0(u32 idx) +int MatchCall_GetOverrideFacilityClass(u32 idx) { u32 i; for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++) { if (sMatchCallCheckPageOverrides[i].idx == idx) - return sMatchCallCheckPageOverrides[i].v2; + return sMatchCallCheckPageOverrides[i].facilityClass; } return -1; } diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index ffb1e0a4a5..c66434192d 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -84,7 +84,7 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state) state->callback = sub_81CAC04; state->unk0 = 0; selectedMatchCall = GetSelectedMatchCall(); - if (!state->unk1C[selectedMatchCall].boxId || sub_81D17E8(state->unk1C[selectedMatchCall].unk6)) + if (!state->unk1C[selectedMatchCall].boxId || MatchCall_HasCheckPage(state->unk1C[selectedMatchCall].unk6)) { state->unk4 = gUnknown_0862250A; state->unk2 = 2; @@ -212,7 +212,7 @@ static u32 sub_81CAD20(s32 taskState) state->unkA++; } - if (++state->unk8 >= 21) // TODO: This is the size of sMatchCallHeaders + if (++state->unk8 >= MC_HEADER_COUNT) { state->unkC = state->unk8; state->unk8 = 0; @@ -331,7 +331,7 @@ int sub_81CAF04(int index) return gTrainers[index].trainerPic; } - index = sub_81D1BD0(var0); + index = MatchCall_GetOverrideFacilityClass(var0); return gFacilityClassToPicIndex[index]; } @@ -358,7 +358,7 @@ const u8 *sub_81CAFD8(int index, int textType) { var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6); if (var0 == REMATCH_TABLE_ENTRIES) - return sub_81D1B40(state->unk1C[index].unk6, textType); + return MatchCall_GetOverrideFlavorText(state->unk1C[index].unk6, textType); } else { @@ -426,7 +426,7 @@ int sub_81CB0E4(int index) { if (!state->unk1C[index].boxId) return count; - if (sub_81D17E8(state->unk1C[index].unk6)) + if (MatchCall_HasCheckPage(state->unk1C[index].unk6)) return count; count++; @@ -443,7 +443,7 @@ int sub_81CB128(int index) { if (!state->unk1C[index].boxId) return count; - if (sub_81D17E8(state->unk1C[index].unk6)) + if (MatchCall_HasCheckPage(state->unk1C[index].unk6)) return count; count--; @@ -462,7 +462,7 @@ bool32 unref_sub_81CB16C(void) return TRUE; } - for (i = 0; i < 21; i++) // TODO: This is the size of sMatchCallHeaders + for (i = 0; i < MC_HEADER_COUNT; i++) { if (MatchCallFlagGetByIndex(i)) { From f76f3955637478ea58b71a6c9e9c2f72ce05a3af Mon Sep 17 00:00:00 2001 From: Kevin Mills Date: Wed, 21 Aug 2019 17:57:51 -0400 Subject: [PATCH 28/29] use MENU_FIELD_MOVES in sub_81B31B0 --- src/party_menu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/party_menu.c b/src/party_menu.c index dd0a4dabd3..f4b749bde7 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -3650,7 +3650,7 @@ static u8 sub_81B31B0(u8 a) for (i = 0; i < gUnknown_0203CEC4->listSize; i++) { - u8 unk = (gUnknown_0203CEC4->actions[i] > 18) ? 4 : 3; + u8 unk = (gUnknown_0203CEC4->actions[i] >= MENU_FIELD_MOVES) ? 4 : 3; AddTextPrinterParameterized4(gUnknown_0203CEC4->windowId[0], 1, cursorDimension, (i * 16) + 1, fontAttribute, 0, sFontColorTable[unk], 0, sCursorOptions[gUnknown_0203CEC4->actions[i]].text); } From d09c290ebaf0be9a9dc4f2f9858ea0e9750df146 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 22 Aug 2019 16:46:33 +0200 Subject: [PATCH 29/29] bool8 to u8 --- include/pokemon.h | 2 +- src/pokemon.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/pokemon.h b/include/pokemon.h index 07bcff2e34..ec125573c1 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -506,7 +506,7 @@ u8 CalculatePlayerPartyCount(void); u8 CalculateEnemyPartyCount(void); u8 GetMonsStateToDoubles(void); u8 GetMonsStateToDoubles_2(void); -u8 GetAbilityBySpecies(u16 species, bool8 abilityNum); +u8 GetAbilityBySpecies(u16 species, u8 abilityNum); u8 GetMonAbility(struct Pokemon *mon); void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord); u8 GetSecretBaseTrainerPicIndex(void); diff --git a/src/pokemon.c b/src/pokemon.c index cb7be1715d..df31bc6b30 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -4424,7 +4424,7 @@ u8 GetMonsStateToDoubles_2(void) return (aliveCount > 1) ? PLAYER_HAS_TWO_USABLE_MONS : PLAYER_HAS_ONE_USABLE_MON; } -u8 GetAbilityBySpecies(u16 species, bool8 abilityNum) +u8 GetAbilityBySpecies(u16 species, u8 abilityNum) { if (abilityNum) gLastUsedAbility = gBaseStats[species].abilities[1];