summaryrefslogtreecommitdiff
path: root/src/debug/nohara_debug_menu.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-08-19 01:04:35 -0400
committerGitHub <noreply@github.com>2020-08-19 01:04:35 -0400
commit5d6e7a31da8f018c1a69e9e57eca0657ec19c283 (patch)
tree3ce548fbada787a8d2dc686ef6612f06e2b9fc3a /src/debug/nohara_debug_menu.c
parent9effc97f69d46af00e45420661a775c5977049c8 (diff)
parent3d96e954c845659f5184e99856ddf61ce1375b2f (diff)
Merge pull request #788 from kazblox/master
Fix NONMATCHINGs and actual English Debug support
Diffstat (limited to 'src/debug/nohara_debug_menu.c')
-rw-r--r--src/debug/nohara_debug_menu.c257
1 files changed, 183 insertions, 74 deletions
diff --git a/src/debug/nohara_debug_menu.c b/src/debug/nohara_debug_menu.c
index 53501a52b..80527ad42 100644
--- a/src/debug/nohara_debug_menu.c
+++ b/src/debug/nohara_debug_menu.c
@@ -104,8 +104,13 @@ bool8 debug_sub_808F414(void)
}
}
+#if (ENGLISH && REVISION == 0)
+const u8 gUnknown_Debug_083C4980[] = _("ひみつがたを すぐみれるように ひだりキーで\n"
+ "データタイプを へんこうしますか? きりかえ");
+#else
const u8 gUnknown_Debug_083C4980[] = _("Want to change data type{CLEAR_TO 143}Press Left\n"
"to see secret type now?{CLEAR_TO 143}to switch");
+#endif
const u8 gUnknown_Debug_083C49CA[] = _("Choose the TV data you wish to\n"
"create to check a transmission。");
@@ -470,6 +475,11 @@ void debug_sub_808FA88(u8 a0, u8 a1)
u8 leadMonIndex = GetLeadMonIndex();
u8 channel;
+// This is garbage.
+#define GF_ACCESS(x) ((struct x*)(&(gSaveBlock1.tvShows[a0])))
+#define TERU_ACCESS(x) show->x
+#define DECLARE_TERU_POINTER TVShow * show = gSaveBlock1.tvShows + a0
+
gSaveBlock1.tvShows[a0].common.kind = a1;
gSaveBlock1.tvShows[a0].common.active = TRUE;
for (i = 0; i < 0x22; i++)
@@ -480,34 +490,135 @@ void debug_sub_808FA88(u8 a0, u8 a1)
{
case 2:
case 4:
- sub_80BE160(gSaveBlock1.tvShows + a0);
+ sub_80BE160(&gSaveBlock1.tvShows[a0]);
break;
case 3:
- sub_80BE138(gSaveBlock1.tvShows + a0);
+ sub_80BE138(&gSaveBlock1.tvShows[a0]);
break;
}
+#if (ENGLISH && REVISION == 0)
switch (a1)
{
case TVSHOW_FAN_CLUB_LETTER:
case TVSHOW_RECENT_HAPPENINGS:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ GF_ACCESS(TVShowFanClubLetter)->species = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowFanClubLetter)->playerName, gSaveBlock2.playerName);
+ GF_ACCESS(TVShowFanClubLetter)->language = GAME_LANGUAGE;
+ break;
+ }
+ case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
+ {
+ GF_ACCESS(TVShowFanclubOpinions)->var02 = 1;
+ StringCopy(GF_ACCESS(TVShowFanclubOpinions)->playerName, gSaveBlock2.playerName);
+ GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_NICKNAME, GF_ACCESS(TVShowFanclubOpinions)->var10);
+ GF_ACCESS(TVShowFanclubOpinions)->language = GAME_LANGUAGE;
+ GF_ACCESS(TVShowFanclubOpinions)->var0E = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_LANGUAGE);
+ break;
+ }
+ case TVSHOW_UNKN_SHOWTYPE_04:
+ {
+ break;
+ }
+ case TVSHOW_NAME_RATER_SHOW:
+ {
+ GF_ACCESS(TVShowNameRaterShow)->species = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_SPECIES);
+ GF_ACCESS(TVShowNameRaterShow)->var1C = 1;
+ StringCopy(GF_ACCESS(TVShowNameRaterShow)->trainerName, gSaveBlock2.playerName);
+ GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_NICKNAME, GF_ACCESS(TVShowNameRaterShow)->pokemonName);
+ GF_ACCESS(TVShowNameRaterShow)->language = GAME_LANGUAGE;
+ GF_ACCESS(TVShowNameRaterShow)->pokemonNameLanguage = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_LANGUAGE);
+ break;
+ }
+ case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
+ {
+ GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->species = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->playerName, gSaveBlock2.playerName);
+ GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_NICKNAME, GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->pokemonNickname);
+ GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->language = GAME_LANGUAGE;
+ GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->var1f = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_LANGUAGE);
+ break;
+ }
+ case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
+ {
+ GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->species = SPECIES_BULBASAUR;
+ GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->defeatedSpecies = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->trainerName, gSaveBlock2.playerName);
+ StringCopy(GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->enemyTrainerName, gSaveBlock2.playerName);
+ GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->language = GAME_LANGUAGE;
+ break;
+ }
+ case TVSHOW_MASS_OUTBREAK:
+ {
+ GF_ACCESS(TVShowMassOutbreak)->species = SPECIES_BULBASAUR;
+ GF_ACCESS(TVShowMassOutbreak)->daysLeft = 1;
+ break;
+ }
+ case TVSHOW_POKEMON_TODAY_CAUGHT:
+ {
+ GF_ACCESS(TVShowPokemonToday)->species = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowPokemonToday)->playerName, gSaveBlock2.playerName);
+ GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_NICKNAME, GF_ACCESS(TVShowPokemonToday)->nickname);
+ GF_ACCESS(TVShowPokemonToday)->language = GAME_LANGUAGE;
+ GF_ACCESS(TVShowPokemonToday)->language2 = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_LANGUAGE);
+ break;
+ }
+ case TVSHOW_SMART_SHOPPER:
+ {
+ StringCopy(GF_ACCESS(TVShowSmartShopper)->playerName, gSaveBlock2.playerName);
+ GF_ACCESS(TVShowSmartShopper)->language = GAME_LANGUAGE;
+ break;
+ }
+ case TVSHOW_POKEMON_TODAY_FAILED:
+ {
+ GF_ACCESS(TVShowPokemonTodayFailed)->species = SPECIES_BULBASAUR;
+ GF_ACCESS(TVShowPokemonTodayFailed)->species2 = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowPokemonTodayFailed)->playerName, gSaveBlock2.playerName);
+ GF_ACCESS(TVShowPokemonTodayFailed)->language = GAME_LANGUAGE;
+ break;
+ }
+ case TVSHOW_FISHING_ADVICE:
+ {
+ GF_ACCESS(TVShowPokemonAngler)->var04 = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowPokemonAngler)->playerName, gSaveBlock2.playerName);
+ GF_ACCESS(TVShowPokemonAngler)->language = GAME_LANGUAGE;
+ break;
+ }
+ case TVSHOW_WORLD_OF_MASTERS:
+ {
+ GF_ACCESS(TVShowWorldOfMasters)->var04 = SPECIES_BULBASAUR;
+ GF_ACCESS(TVShowWorldOfMasters)->var08 = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowWorldOfMasters)->playerName, gSaveBlock2.playerName);
+ GF_ACCESS(TVShowWorldOfMasters)->language = GAME_LANGUAGE;
+ break;
+ }
+ }
+#else
+// Murakawa must have really hated working with GF code. He devised his own, less complicated
+// access method after US rev0. Also, this iteration of the code has his self inserts: TERUKUN,
+// TERU, and TERUDA. Who all love Wigglytuff.
+ switch (a1)
+ {
+ case TVSHOW_FAN_CLUB_LETTER:
+ case TVSHOW_RECENT_HAPPENINGS:
+ {
+ DECLARE_TERU_POINTER;
- show->fanclubLetter.species = SPECIES_BULBASAUR;
- StringCopy(gSaveBlock1.tvShows[a0].fanclubLetter.playerName, gSaveBlock2.playerName);
- show->fanclubLetter.language = GAME_LANGUAGE;
+ GF_ACCESS(TVShowFanClubLetter)->species = SPECIES_BULBASAUR; // Yet he didn't change Game Freak's lines.
+ StringCopy(GF_ACCESS(TVShowFanClubLetter)->playerName, gSaveBlock2.playerName);
+ TERU_ACCESS(fanclubLetter).language = GAME_LANGUAGE;
break;
}
case TVSHOW_PKMN_FAN_CLUB_OPINIONS:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
- show->fanclubOpinions.var02 = 1;
- StringCopy(gSaveBlock1.tvShows[a0].fanclubOpinions.playerName, gSaveBlock2.playerName);
- GetMonData(gPlayerParty + leadMonIndex, MON_DATA_NICKNAME, gSaveBlock1.tvShows[a0].fanclubOpinions.var10);
- show->fanclubOpinions.language = GAME_LANGUAGE;
- show->fanclubOpinions.var0E = GetMonData(gPlayerParty + leadMonIndex, MON_DATA_LANGUAGE);
+ GF_ACCESS(TVShowFanclubOpinions)->var02 = 1;
+ StringCopy(GF_ACCESS(TVShowFanclubOpinions)->playerName, gSaveBlock2.playerName);
+ GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_NICKNAME, GF_ACCESS(TVShowFanclubOpinions)->var10);
+ TERU_ACCESS(fanclubOpinions).language = GAME_LANGUAGE;
+ TERU_ACCESS(fanclubOpinions).var0E = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_LANGUAGE);
break;
}
case TVSHOW_UNKN_SHOWTYPE_04:
@@ -516,120 +627,118 @@ void debug_sub_808FA88(u8 a0, u8 a1)
}
case TVSHOW_NAME_RATER_SHOW:
{
- u16 species = GetMonData(gPlayerParty + leadMonIndex, MON_DATA_SPECIES);
- TVShow * show = gSaveBlock1.tvShows + a0;
+ u16 species = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_SPECIES);
+ DECLARE_TERU_POINTER;
- show->nameRaterShow.species = species;
- show->nameRaterShow.var1C = 1;
- StringCopy(gSaveBlock1.tvShows[a0].nameRaterShow.trainerName, gSaveBlock2.playerName);
- GetMonData(gPlayerParty + leadMonIndex, MON_DATA_NICKNAME, gSaveBlock1.tvShows[a0].nameRaterShow.pokemonName);
- show->nameRaterShow.language = GAME_LANGUAGE;
- show->nameRaterShow.pokemonNameLanguage = GetMonData(gPlayerParty + leadMonIndex, MON_DATA_LANGUAGE);
+ GF_ACCESS(TVShowNameRaterShow)->species = species;
+ GF_ACCESS(TVShowNameRaterShow)->var1C = 1;
+ StringCopy(GF_ACCESS(TVShowNameRaterShow)->trainerName, gSaveBlock2.playerName);
+ GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_NICKNAME, GF_ACCESS(TVShowNameRaterShow)->pokemonName);
+ TERU_ACCESS(nameRaterShow).language = GAME_LANGUAGE;
+ TERU_ACCESS(nameRaterShow).pokemonNameLanguage = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_LANGUAGE);
break;
}
case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
- show->bravoTrainer.species = SPECIES_BULBASAUR;
- StringCopy(gSaveBlock1.tvShows[a0].bravoTrainer.playerName, gSaveBlock2.playerName);
- GetMonData(gPlayerParty + leadMonIndex, MON_DATA_NICKNAME, gSaveBlock1.tvShows[a0].bravoTrainer.pokemonNickname);
- show->bravoTrainer.language = GAME_LANGUAGE;
- show->bravoTrainer.var1f = GetMonData(gPlayerParty + leadMonIndex, MON_DATA_LANGUAGE);
+ GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->species = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->playerName, gSaveBlock2.playerName);
+ GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_NICKNAME, GF_ACCESS(TVShowBravoTrainerPokemonProfiles)->pokemonNickname);
+ TERU_ACCESS(bravoTrainer).language = GAME_LANGUAGE;
+ TERU_ACCESS(bravoTrainer).var1f = GetMonData(&gPlayerParty[leadMonIndex], MON_DATA_LANGUAGE);
break;
}
case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
- show->bravoTrainerTower.species = SPECIES_BULBASAUR;
- show->bravoTrainerTower.defeatedSpecies = SPECIES_BULBASAUR;
- StringCopy(gSaveBlock1.tvShows[a0].bravoTrainerTower.trainerName, gSaveBlock2.playerName);
- StringCopy(gSaveBlock1.tvShows[a0].bravoTrainerTower.enemyTrainerName, gSaveBlock2.playerName);
- show->bravoTrainerTower.language = GAME_LANGUAGE;
+ GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->species = SPECIES_BULBASAUR;
+ GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->defeatedSpecies = SPECIES_BULBASAUR;
+ StringCopy(GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->trainerName, gSaveBlock2.playerName);
+ StringCopy(GF_ACCESS(TVShowBravoTrainerBattleTowerSpotlight)->enemyTrainerName, gSaveBlock2.playerName);
+ TERU_ACCESS(bravoTrainerTower).language = GAME_LANGUAGE;
break;
}
case TVSHOW_MASS_OUTBREAK:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
-
- show->massOutbreak.species = SPECIES_BULBASAUR;
- show->massOutbreak.daysLeft = 1;
+ GF_ACCESS(TVShowMassOutbreak)->species = SPECIES_BULBASAUR;
+ GF_ACCESS(TVShowMassOutbreak)->daysLeft = 1;
break;
}
case TVSHOW_POKEMON_TODAY_CAUGHT:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
u8 gUnknown_Debug_083C4C64[] = _("TERUKUN");
u8 gUnknown_Debug_083C4C6C[] = _("TERUTERUDA");
- show->pokemonToday.var12 = 255;
- StringCopy(show->pokemonToday.playerName, gUnknown_Debug_083C4C64);
- StringCopy(show->pokemonToday.nickname, gUnknown_Debug_083C4C6C);
- show->pokemonToday.ball = ITEM_PREMIER_BALL;
- show->pokemonToday.species = SPECIES_WIGGLYTUFF;
- show->pokemonToday.language = GAME_LANGUAGE;
- show->pokemonToday.language2 = GAME_LANGUAGE;
+ TERU_ACCESS(pokemonToday).var12 = 255;
+ StringCopy(TERU_ACCESS(pokemonToday).playerName, gUnknown_Debug_083C4C64);
+ StringCopy(TERU_ACCESS(pokemonToday).nickname, gUnknown_Debug_083C4C6C);
+ TERU_ACCESS(pokemonToday).ball = ITEM_PREMIER_BALL;
+ TERU_ACCESS(pokemonToday).species = SPECIES_WIGGLYTUFF;
+ TERU_ACCESS(pokemonToday).language = GAME_LANGUAGE;
+ TERU_ACCESS(pokemonToday).language2 = GAME_LANGUAGE;
break;
}
case TVSHOW_SMART_SHOPPER:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
u8 gUnknown_Debug_083C4C64[] = _("TERUKUN");
int ii;
for (ii = 0; ii < 3; ii++)
- show->smartshopperShow.itemAmounts[ii] = 254;
- show->smartshopperShow.priceReduced = TRUE;
- show->smartshopperShow.shopLocation = 40;
+ TERU_ACCESS(smartshopperShow).itemAmounts[ii] = 254;
+ TERU_ACCESS(smartshopperShow).priceReduced = TRUE;
+ TERU_ACCESS(smartshopperShow).shopLocation = 40;
for (ii = 0; ii < 3; ii++)
- show->smartshopperShow.itemIds[ii] = ITEM_ENERGY_POWDER;
- StringCopy(show->smartshopperShow.playerName, gUnknown_Debug_083C4C64);
- show->smartshopperShow.language = GAME_LANGUAGE;
+ TERU_ACCESS(smartshopperShow).itemIds[ii] = ITEM_ENERGY_POWDER;
+ StringCopy(TERU_ACCESS(smartshopperShow).playerName, gUnknown_Debug_083C4C64);
+ TERU_ACCESS(smartshopperShow).language = GAME_LANGUAGE;
break;
}
case TVSHOW_POKEMON_TODAY_FAILED:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
u8 gUnknown_Debug_083C4C64[] = _("TERUKUN");
- show->pokemonTodayFailed.species = SPECIES_WIGGLYTUFF;
- show->pokemonTodayFailed.species2 = SPECIES_WIGGLYTUFF;
- show->pokemonTodayFailed.var12 = 3;
- show->pokemonTodayFailed.var10 = 0xff;
- show->pokemonTodayFailed.var11 = 1;
- StringCopy(show->pokemonTodayFailed.playerName, gUnknown_Debug_083C4C64);
- show->pokemonTodayFailed.language = GAME_LANGUAGE;
+ TERU_ACCESS(pokemonTodayFailed).species = SPECIES_WIGGLYTUFF;
+ TERU_ACCESS(pokemonTodayFailed).species2 = SPECIES_WIGGLYTUFF;
+ TERU_ACCESS(pokemonTodayFailed).var12 = 3;
+ TERU_ACCESS(pokemonTodayFailed).var10 = 0xff;
+ TERU_ACCESS(pokemonTodayFailed).var11 = 1;
+ StringCopy(TERU_ACCESS(pokemonTodayFailed).playerName, gUnknown_Debug_083C4C64);
+ TERU_ACCESS(pokemonTodayFailed).language = GAME_LANGUAGE;
break;
}
case TVSHOW_FISHING_ADVICE:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
u8 gUnknown_Debug_083C4C64[] = _("TERUKUN");
- show->pokemonAngler.var02 = 0xff;
- show->pokemonAngler.var03 = 0;
- show->pokemonAngler.var04 = 40;
- StringCopy(show->pokemonAngler.playerName, gUnknown_Debug_083C4C64);
- show->pokemonAngler.language = GAME_LANGUAGE;
+ TERU_ACCESS(pokemonAngler).var02 = 0xff;
+ TERU_ACCESS(pokemonAngler).var03 = 0;
+ TERU_ACCESS(pokemonAngler).var04 = 40;
+ StringCopy(TERU_ACCESS(pokemonAngler).playerName, gUnknown_Debug_083C4C64);
+ TERU_ACCESS(pokemonAngler).language = GAME_LANGUAGE;
break;
}
case TVSHOW_WORLD_OF_MASTERS:
{
- TVShow * show = gSaveBlock1.tvShows + a0;
+ DECLARE_TERU_POINTER;
u8 gUnknown_Debug_083C4C64[] = _("TERUKUN");
- show->worldOfMasters.var02 = 0xffff;
- show->worldOfMasters.var06 = 0xffff;
- show->worldOfMasters.var04 = 40;
- show->worldOfMasters.var08 = 40;
- show->worldOfMasters.var0a = 3;
- StringCopy(show->worldOfMasters.playerName, gUnknown_Debug_083C4C64);
- show->worldOfMasters.language = GAME_LANGUAGE;
+ TERU_ACCESS(worldOfMasters).var02 = 0xffff;
+ TERU_ACCESS(worldOfMasters).var06 = 0xffff;
+ TERU_ACCESS(worldOfMasters).var04 = 40;
+ TERU_ACCESS(worldOfMasters).var08 = 40;
+ TERU_ACCESS(worldOfMasters).var0a = 3;
+ StringCopy(TERU_ACCESS(worldOfMasters).playerName, gUnknown_Debug_083C4C64);
+ TERU_ACCESS(worldOfMasters).language = GAME_LANGUAGE;
break;
}
-
}
+#endif
}
bool8 debug_sub_808FEBC(void)