Get species name from National Dex number
This commit is contained in:
parent
a4c2a325f0
commit
df49fbedac
8 changed files with 918 additions and 1287 deletions
|
@ -119,6 +119,7 @@ extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
|
||||||
|
|
||||||
extern const struct Trainer gTrainers[];
|
extern const struct Trainer gTrainers[];
|
||||||
extern const u8 gTrainerClassNames[][13];
|
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 gMoveNames[MOVES_COUNT][MOVE_NAME_LENGTH + 1];
|
||||||
extern const u8 *const gZMoveNames[];
|
extern const u8 *const gZMoveNames[];
|
||||||
|
|
||||||
|
|
|
@ -296,7 +296,6 @@ struct BattlePokemon
|
||||||
|
|
||||||
struct BaseStats
|
struct BaseStats
|
||||||
{
|
{
|
||||||
/* 0x?? */ u8 speciesName[POKEMON_NAME_LENGTH + 1];
|
|
||||||
/* 0x?? */ u8 baseHP;
|
/* 0x?? */ u8 baseHP;
|
||||||
/* 0x?? */ u8 baseAttack;
|
/* 0x?? */ u8 baseAttack;
|
||||||
/* 0x?? */ u8 baseDefense;
|
/* 0x?? */ u8 baseDefense;
|
||||||
|
|
|
@ -4365,11 +4365,11 @@ static void DisplayTrainerInfoOnCard(u8 flags, u8 trainerTourneyId)
|
||||||
{
|
{
|
||||||
textPrinter.currentY = sSpeciesNameTextYCoords[i];
|
textPrinter.currentY = sSpeciesNameTextYCoords[i];
|
||||||
if (trainerId == TRAINER_PLAYER)
|
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)
|
else if (trainerId == TRAINER_FRONTIER_BRAIN)
|
||||||
textPrinter.currentChar = gBaseStats[DOME_MONS[trainerTourneyId][i]].speciesName;
|
textPrinter.currentChar = GetSpeciesName(DOME_MONS[trainerTourneyId][i]);
|
||||||
else
|
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;
|
textPrinter.windowId = 1 + i + windowId;
|
||||||
if (i == 1)
|
if (i == 1)
|
||||||
|
|
|
@ -1916,8 +1916,8 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir
|
||||||
{
|
{
|
||||||
const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves;
|
const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves;
|
||||||
|
|
||||||
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
|
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
|
||||||
nameHash += gBaseStats[partyData[i].species].speciesName[j];
|
nameHash += gSpeciesNames[partyData[i].species][j];
|
||||||
|
|
||||||
personalityValue += nameHash << 8;
|
personalityValue += nameHash << 8;
|
||||||
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
|
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;
|
const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves;
|
||||||
|
|
||||||
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
|
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
|
||||||
nameHash += gBaseStats[partyData[i].species].speciesName[j];
|
nameHash += gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j];
|
||||||
|
|
||||||
personalityValue += nameHash << 8;
|
personalityValue += nameHash << 8;
|
||||||
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
|
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;
|
const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves;
|
||||||
|
|
||||||
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
|
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
|
||||||
nameHash += gBaseStats[partyData[i].species].speciesName[j];
|
nameHash += gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j];
|
||||||
|
|
||||||
personalityValue += nameHash << 8;
|
personalityValue += nameHash << 8;
|
||||||
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
|
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;
|
const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves;
|
||||||
|
|
||||||
for (j = 0; gBaseStats[partyData[i].species].speciesName[j] != EOS; j++)
|
for (j = 0; gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j] != EOS; j++)
|
||||||
nameHash += gBaseStats[partyData[i].species].speciesName[j];
|
nameHash += gSpeciesNames[gBaseStats[partyData[i].species].natDexNum][j];
|
||||||
|
|
||||||
personalityValue += nameHash << 8;
|
personalityValue += nameHash << 8;
|
||||||
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
|
fixedIV = partyData[i].iv * MAX_PER_STAT_IVS / 255;
|
||||||
|
|
|
@ -55,7 +55,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
{
|
{
|
||||||
[SPECIES_NONE] =
|
[SPECIES_NONE] =
|
||||||
{
|
{
|
||||||
.speciesName = _("??????????"),
|
|
||||||
.natDexNum = NATIONAL_DEX_NONE,
|
.natDexNum = NATIONAL_DEX_NONE,
|
||||||
DEX_TEXT(Dummy, "Unknown"),
|
DEX_TEXT(Dummy, "Unknown"),
|
||||||
DEX_SCALE(256, 0, 256, 0),
|
DEX_SCALE(256, 0, 256, 0),
|
||||||
|
@ -90,7 +89,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL},
|
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL},
|
||||||
.bodyColor = BODY_COLOR_GREEN,
|
.bodyColor = BODY_COLOR_GREEN,
|
||||||
.noFlip = FALSE,
|
.noFlip = FALSE,
|
||||||
.speciesName = _("Bulbasaur"),
|
|
||||||
.natDexNum = NATIONAL_DEX_BULBASAUR,
|
.natDexNum = NATIONAL_DEX_BULBASAUR,
|
||||||
DEX_TEXT(Bulbasaur, "Seed"),
|
DEX_TEXT(Bulbasaur, "Seed"),
|
||||||
DEX_SCALE(356, 17, 256, 0),
|
DEX_SCALE(356, 17, 256, 0),
|
||||||
|
@ -127,7 +125,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL},
|
.abilities = {ABILITY_OVERGROW, ABILITY_NONE, ABILITY_CHLOROPHYLL},
|
||||||
.bodyColor = BODY_COLOR_GREEN,
|
.bodyColor = BODY_COLOR_GREEN,
|
||||||
.noFlip = FALSE,
|
.noFlip = FALSE,
|
||||||
.speciesName = _("Ivysaur"),
|
|
||||||
.natDexNum = NATIONAL_DEX_IVYSAUR,
|
.natDexNum = NATIONAL_DEX_IVYSAUR,
|
||||||
DEX_TEXT(Ivysaur, "Seed"),
|
DEX_TEXT(Ivysaur, "Seed"),
|
||||||
DEX_SCALE(335, 13, 256, 0),
|
DEX_SCALE(335, 13, 256, 0),
|
||||||
|
@ -155,7 +152,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
.eggGroup2 = EGG_GROUP_GRASS, \
|
.eggGroup2 = EGG_GROUP_GRASS, \
|
||||||
.bodyColor = BODY_COLOR_GREEN, \
|
.bodyColor = BODY_COLOR_GREEN, \
|
||||||
.noFlip = FALSE, \
|
.noFlip = FALSE, \
|
||||||
.speciesName = _("Venusaur"), \
|
|
||||||
.natDexNum = NATIONAL_DEX_VENUSAUR, \
|
.natDexNum = NATIONAL_DEX_VENUSAUR, \
|
||||||
LEARNSETS(Venusaur), \
|
LEARNSETS(Venusaur), \
|
||||||
FOOTPRINT(Venusaur)
|
FOOTPRINT(Venusaur)
|
||||||
|
@ -224,7 +220,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
.abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER},
|
.abilities = {ABILITY_BLAZE, ABILITY_NONE, ABILITY_SOLAR_POWER},
|
||||||
.bodyColor = BODY_COLOR_RED,
|
.bodyColor = BODY_COLOR_RED,
|
||||||
.noFlip = FALSE,
|
.noFlip = FALSE,
|
||||||
.speciesName = _("Charmander"),
|
|
||||||
.natDexNum = NATIONAL_DEX_CHARMANDER,
|
.natDexNum = NATIONAL_DEX_CHARMANDER,
|
||||||
DEX_TEXT(Charmander, "Lizard"),
|
DEX_TEXT(Charmander, "Lizard"),
|
||||||
DEX_SCALE(444, 18, 256, 0),
|
DEX_SCALE(444, 18, 256, 0),
|
||||||
|
@ -8533,7 +8528,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
|
|
||||||
[SPECIES_TREECKO] =
|
[SPECIES_TREECKO] =
|
||||||
{
|
{
|
||||||
.speciesName = _("Treecko"),
|
|
||||||
.baseHP = 40,
|
.baseHP = 40,
|
||||||
.baseAttack = 45,
|
.baseAttack = 45,
|
||||||
.baseDefense = 35,
|
.baseDefense = 35,
|
||||||
|
@ -8638,7 +8632,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
|
|
||||||
[SPECIES_TORCHIC] =
|
[SPECIES_TORCHIC] =
|
||||||
{
|
{
|
||||||
.speciesName = _("Torchic"),
|
|
||||||
.baseHP = 45,
|
.baseHP = 45,
|
||||||
.baseAttack = 60,
|
.baseAttack = 60,
|
||||||
.baseDefense = 40,
|
.baseDefense = 40,
|
||||||
|
@ -8741,7 +8734,6 @@ const struct BaseStats gBaseStats[] =
|
||||||
|
|
||||||
[SPECIES_MUDKIP] =
|
[SPECIES_MUDKIP] =
|
||||||
{
|
{
|
||||||
.speciesName = _("Mudkip"),
|
|
||||||
.baseHP = 50,
|
.baseHP = 50,
|
||||||
.baseAttack = 70,
|
.baseAttack = 70,
|
||||||
.baseDefense = 50,
|
.baseDefense = 50,
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -2542,7 +2542,7 @@ static u8 CreateMonName(u16 species, u8 left, u8 top)
|
||||||
{
|
{
|
||||||
const u8 *str;
|
const u8 *str;
|
||||||
|
|
||||||
if (species >= NUM_SPECIES)
|
if (species)
|
||||||
str = GetSpeciesName(species);
|
str = GetSpeciesName(species);
|
||||||
else
|
else
|
||||||
str = sText_TenDashes;
|
str = sText_TenDashes;
|
||||||
|
|
|
@ -3101,8 +3101,8 @@ bool8 IsPokemonStorageFull(void)
|
||||||
const u8 *GetSpeciesName(u16 species)
|
const u8 *GetSpeciesName(u16 species)
|
||||||
{
|
{
|
||||||
if (species > NUM_SPECIES)
|
if (species > NUM_SPECIES)
|
||||||
return gBaseStats[SPECIES_NONE].speciesName;
|
return gSpeciesNames[NATIONAL_DEX_NONE];
|
||||||
return gBaseStats[species].speciesName;
|
return gSpeciesNames[gBaseStats[species].natDexNum];
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex)
|
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex)
|
||||||
|
|
Loading…
Reference in a new issue