Updated Show Species That You're Switching For in the Party Menu (markdown)

voloved 2023-02-06 08:52:45 -05:00
parent a960d6a2be
commit 8778057a8b
1 changed files with 20 additions and 28 deletions

@ -22,14 +22,20 @@ index 3840ca57d..70225f4fc 100755
stringId = PARTY_MSG_CHOOSE_MON_AND_CONFIRM; stringId = PARTY_MSG_CHOOSE_MON_AND_CONFIRM;
else if (!ShouldUseChooseMonText()) else if (!ShouldUseChooseMonText())
stringId = PARTY_MSG_CHOOSE_MON_OR_CANCEL; stringId = PARTY_MSG_CHOOSE_MON_OR_CANCEL;
+ // Checks if the opponent is sending out a new Pokemon after their last one fainted.
+ else if (species >= NUM_SPECIES || species == SPECIES_NONE) + else if (gMain.inBattle){
+ species = gBattleMons[B_SIDE_OPPONENT].species; + // Checks if the opponent is sending out a new pokemon.
+ // Now tries to check if there's any opposing pokemon on the field + if (species >= NUM_SPECIES || species == SPECIES_NONE){
+ if (species >= NUM_SPECIES || species == SPECIES_NONE || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + species = gBattleMons[B_SIDE_OPPONENT].species;
+ stringId = PARTY_MSG_CHOOSE_MON_2; + // Now tries to check if there's any opposing pokemon on the field
+ else + if (species >= NUM_SPECIES || species == SPECIES_NONE || gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
+ StringCopy(gStringVar2, gSpeciesNames[species]); + stringId = PARTY_MSG_CHOOSE_MON_2; // No species on the other side, show the default text.
+ }
+ if (stringId == PARTY_MSG_CHOOSE_MON)
+ StringCopy(gStringVar2, gSpeciesNames[species]);
+ }
+ else
+ stringId = PARTY_MSG_CHOOSE_MON_2;
} }
DrawStdFrameWithCustomTileAndPalette(*windowPtr, FALSE, 0x4F, 0xD); DrawStdFrameWithCustomTileAndPalette(*windowPtr, FALSE, 0x4F, 0xD);
StringExpandPlaceholders(gStringVar4, sActionStringTable[stringId]); StringExpandPlaceholders(gStringVar4, sActionStringTable[stringId]);
@ -41,25 +47,11 @@ index 64e10598f..f2373d500 100644
const u8 gText_PkmnGotOverInfatuation[] = _("{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}"); const u8 gText_PkmnGotOverInfatuation[] = _("{STR_VAR_1} got over its\ninfatuation.{PAUSE_UNTIL_PRESS}");
const u8 gText_ThrowAwayItem[] = _("Throw away this\n{STR_VAR_1}?"); const u8 gText_ThrowAwayItem[] = _("Throw away this\n{STR_VAR_1}?");
const u8 gText_ItemThrownAway[] = _("The {STR_VAR_1}\nwas thrown away.{PAUSE_UNTIL_PRESS}"); const u8 gText_ItemThrownAway[] = _("The {STR_VAR_1}\nwas thrown away.{PAUSE_UNTIL_PRESS}");
const u8 gText_TeachWhichPokemon2[] = _("Teach which POKéMON?"); // Unused const u8 gText_TeachWhichPokemon2[] = _("Teach which POKéMON?"); // Unused
-const u8 gText_ChoosePokemon[] = _("Choose a POKéMON."); -const u8 gText_ChoosePokemon[] = _("Choose a POKéMON.");
+const u8 gText_ChoosePokemon[] = _("Choose POKéMON for {STR_VAR_2}."); +const u8 gText_ChoosePokemon[] = _("Choose POKéMON for {STR_VAR_2}.");
const u8 gText_MoveToWhere[] = _("Move to where?"); const u8 gText_MoveToWhere[] = _("Move to where?");
const u8 gText_TeachWhichPokemon[] = _("Teach which POKéMON?"); const u8 gText_TeachWhichPokemon[] = _("Teach which POKéMON?");
const u8 gText_UseOnWhichPokemon[] = _("Use on which POKéMON?"); const u8 gText_UseOnWhichPokemon[] = _("Use on which POKéMON?");
const u8 gText_GiveToWhichPokemon[] = _("Give to which POKéMON?"); const u8 gText_GiveToWhichPokemon[] = _("Give to which POKéMON?");
```
```diff
------------------------------ src/battle_main.c ------------------------------
index 4d534b447..707c211fd 100644
@@ -5212,8 +5212,10 @@ static void HandleEndTurn_MonFled(void)
static void HandleEndTurn_FinishBattle(void)
{
+ gBattleMons[B_SIDE_OPPONENT].species = SPECIES_NONE; // So the "Choose a Pkmn message doesn't include the last mon battled outside of battle."
+ *(gBattleStruct->monToSwitchIntoId + B_SIDE_OPPONENT) = SPECIES_NONE; // Should already be none at the end of a battle, but better to be explicit
if (gCurrentActionFuncId == B_ACTION_TRY_FINISH || gCurrentActionFuncId == B_ACTION_FINISHED)
{
if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK
| BATTLE_TYPE_RECORDED_LINK
``` ```