Get species name from National Dex number

This commit is contained in:
Eduardo Quezada 2022-11-24 14:07:06 -03:00
parent a4c2a325f0
commit df49fbedac
8 changed files with 918 additions and 1287 deletions

View file

@ -119,6 +119,7 @@ extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
extern const struct Trainer gTrainers[];
extern const u8 gTrainerClassNames[][13];
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1];
extern const u8 *const gZMoveNames[];

View file

@ -296,7 +296,6 @@ struct BattlePokemon
struct BaseStats
{
/* 0x?? */ u8 speciesName[POKEMON_NAME_LENGTH + 1];
/* 0x?? */ u8 baseHP;
/* 0x?? */ u8 baseAttack;
/* 0x?? */ u8 baseDefense;

View file

@ -4365,11 +4365,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
{
textPrinter.currentY = sSpeciesNameTextYCoords[i];
if (trainerId == TRAINER_PLAYER)
textPrinter.currentChar = gBaseStats[DOME_MONS[trainerTourneyId][i]].speciesName;
textPrinter.currentChar = GetSpeciesName(DOME_MONS[trainerTourneyId][i]);
else if (trainerId == TRAINER_FRONTIER_BRAIN)
textPrinter.currentChar = gBaseStats[DOME_MONS[trainerTourneyId][i]].speciesName;
textPrinter.currentChar = GetSpeciesName(DOME_MONS[trainerTourneyId][i]);
else
textPrinter.currentChar = gBaseStats[gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species].speciesName;
textPrinter.currentChar = GetSpeciesName(gFacilityTrainerMons[DOME_MONS[trainerTourneyId][i]].species);
textPrinter.windowId = 1 + i + windowId;
if (i == 1)

View file

@ -1916,8 +1916,8 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
{
const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves;
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
nameHash += gBaseStats[partyData[i].species].speciesName[j];
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
nameHash += gSpeciesNames[partyData[i].species][j];
personalityValue += nameHash << 8;
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
@ -1928,8 +1928,8 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
{
const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves;
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
nameHash += gBaseStats[partyData[i].species].speciesName[j];
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
nameHash += gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j];
personalityValue += nameHash << 8;
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
@ -1946,8 +1946,8 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
{
const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves;
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
nameHash += gBaseStats[partyData[i].species].speciesName[j];
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
nameHash += gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j];
personalityValue += nameHash << 8;
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
@ -1960,8 +1960,8 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
{
const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves;
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
nameHash += gBaseStats[partyData[i].species].speciesName[j];
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
nameHash += gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j];
personalityValue += nameHash << 8;
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;

View file

@ -55,7 +55,6 @@ const struct BaseStats gBaseStats[] =
{
[SPECIES_NONE] =
{
.speciesName = _("??????????"),
.natDexNum = NATIONAL_DEX_NONE,
DEX_TEXT(Dummy, "Unknown"),
DEX_SCALE(256, 0, 256, 0),
@ -90,7 +89,6 @@ const struct BaseStats gBaseStats[] =
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL},
.bodyColor = BODY_COLOR_GREEN,
.noFlip = FALSE,
.speciesName = _("Bulbasaur"),
.natDexNum = NATIONAL_DEX_BULBASAUR,
DEX_TEXT(Bulbasaur, "Seed"),
DEX_SCALE(356, 17, 256, 0),
@ -127,7 +125,6 @@ const struct BaseStats gBaseStats[] =
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL},
.bodyColor = BODY_COLOR_GREEN,
.noFlip = FALSE,
.speciesName = _("Ivysaur"),
.natDexNum = NATIONAL_DEX_IVYSAUR,
DEX_TEXT(Ivysaur, "Seed"),
DEX_SCALE(335, 13, 256, 0),
@ -155,7 +152,6 @@ const struct BaseStats gBaseStats[] =
.eggGroup2 = EGG_GROUP_GRASS, \
.bodyColor = BODY_COLOR_GREEN, \
.noFlip = FALSE, \
.speciesName = _("Venusaur"), \
.natDexNum = NATIONAL_DEX_VENUSAUR, \
LEARNSETS(Venusaur), \
FOOTPRINT(Venusaur)
@ -224,7 +220,6 @@ const struct BaseStats gBaseStats[] =
.abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER},
.bodyColor = BODY_COLOR_RED,
.noFlip = FALSE,
.speciesName = _("Charmander"),
.natDexNum = NATIONAL_DEX_CHARMANDER,
DEX_TEXT(Charmander, "Lizard"),
DEX_SCALE(444, 18, 256, 0),
@ -8533,7 +8528,6 @@ const struct BaseStats gBaseStats[] =
[SPECIES_TREECKO] =
{
.speciesName = _("Treecko"),
.baseHP = 40,
.baseAttack = 45,
.baseDefense = 35,
@ -8638,7 +8632,6 @@ const struct BaseStats gBaseStats[] =
[SPECIES_TORCHIC] =
{
.speciesName = _("Torchic"),
.baseHP = 45,
.baseAttack = 60,
.baseDefense = 40,
@ -8741,7 +8734,6 @@ const struct BaseStats gBaseStats[] =
[SPECIES_MUDKIP] =
{
.speciesName = _("Mudkip"),
.baseHP = 50,
.baseAttack = 70,
.baseDefense = 50,

File diff suppressed because it is too large Load diff

View file

@ -2542,7 +2542,7 @@ static u8 CreateMonName(u16 species, u8 left, u8 top)
{
const u8 *str;
if (species >= NUM_SPECIES)
if (species)
str = GetSpeciesName(species);
else
str = sText_TenDashes;

View file

@ -3101,8 +3101,8 @@ bool8 IsPokemonStorageFull(void)
const u8 *GetSpeciesName(u16 species)
{
if (species > NUM_SPECIES)
return gBaseStats[SPECIES_NONE].speciesName;
return gBaseStats[species].speciesName;
return gSpeciesNames[NATIONAL_DEX_NONE];
return gSpeciesNames[gBaseStats[species].natDexNum];
}
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex)