Merge pull request #1509 from GriffinRichards/doc-sprman
Document remaining symbols in pokemon.c
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include "battle.h"
|
||||
#include "battle_anim.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "data.h"
|
||||
#include "pokemon.h"
|
||||
#include "random.h"
|
||||
#include "util.h"
|
||||
|
||||
@@ -2286,7 +2286,7 @@ void AnimTask_TransformMon(u8 taskId)
|
||||
sub_80A6BFC(&animBg, gBattleAnimAttacker);
|
||||
|
||||
if (IsContest())
|
||||
position = 0;
|
||||
position = B_POSITION_PLAYER_LEFT;
|
||||
else
|
||||
position = GetBattlerPosition(gBattleAnimAttacker);
|
||||
|
||||
|
||||
@@ -2227,7 +2227,7 @@ void TryShinyAnimation(u8 battler, struct Pokemon *mon)
|
||||
|
||||
if (IsBattlerSpriteVisible(battler))
|
||||
{
|
||||
shinyValue = HIHALF(otId) ^ LOHALF(otId) ^ HIHALF(personality) ^ LOHALF(personality);
|
||||
shinyValue = GET_SHINY_VALUE(otId, personality);
|
||||
if (shinyValue < SHINY_ODDS)
|
||||
isShiny = TRUE;
|
||||
|
||||
|
||||
@@ -924,13 +924,13 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool8 notTransform
|
||||
|
||||
if (IsContest())
|
||||
{
|
||||
position = 0;
|
||||
position = B_POSITION_PLAYER_LEFT;
|
||||
targetSpecies = gContestResources->moveAnim->targetSpecies;
|
||||
personalityValue = gContestResources->moveAnim->personality;
|
||||
otId = gContestResources->moveAnim->otId;
|
||||
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[targetSpecies],
|
||||
gMonSpritesGfxPtr->sprites.ptr[0],
|
||||
gMonSpritesGfxPtr->sprites.ptr[position],
|
||||
targetSpecies,
|
||||
gContestResources->moveAnim->targetPersonality);
|
||||
}
|
||||
@@ -1001,7 +1001,7 @@ void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite)
|
||||
if (!loadMonSprite)
|
||||
{
|
||||
if (IsContest())
|
||||
position = 0;
|
||||
position = B_POSITION_PLAYER_LEFT;
|
||||
else
|
||||
position = GetBattlerPosition(battlerId);
|
||||
|
||||
@@ -1260,11 +1260,11 @@ void AllocateMonSpritesGfx(void)
|
||||
|
||||
for (j = 0; j < 4; j++)
|
||||
{
|
||||
gMonSpritesGfxPtr->field_74[i][j].data = gMonSpritesGfxPtr->sprites.ptr[i] + (j * MON_PIC_SIZE);
|
||||
gMonSpritesGfxPtr->field_74[i][j].size = MON_PIC_SIZE;
|
||||
gMonSpritesGfxPtr->frameImages[i][j].data = gMonSpritesGfxPtr->sprites.ptr[i] + (j * MON_PIC_SIZE);
|
||||
gMonSpritesGfxPtr->frameImages[i][j].size = MON_PIC_SIZE;
|
||||
}
|
||||
|
||||
gMonSpritesGfxPtr->templates[i].images = gMonSpritesGfxPtr->field_74[i];
|
||||
gMonSpritesGfxPtr->templates[i].images = gMonSpritesGfxPtr->frameImages[i];
|
||||
}
|
||||
|
||||
gMonSpritesGfxPtr->barFontGfx = AllocZeroed(0x1000);
|
||||
@@ -1275,17 +1275,14 @@ void FreeMonSpritesGfx(void)
|
||||
if (gMonSpritesGfxPtr == NULL)
|
||||
return;
|
||||
|
||||
if (gMonSpritesGfxPtr->buffer != NULL)
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
|
||||
if (gMonSpritesGfxPtr->field_178 != NULL)
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_178);
|
||||
|
||||
TRY_FREE_AND_SET_NULL(gMonSpritesGfxPtr->buffer);
|
||||
TRY_FREE_AND_SET_NULL(gMonSpritesGfxPtr->unusedPtr);
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->barFontGfx);
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr->firstDecompressed);
|
||||
gMonSpritesGfxPtr->sprites.ptr[0] = NULL;
|
||||
gMonSpritesGfxPtr->sprites.ptr[1] = NULL;
|
||||
gMonSpritesGfxPtr->sprites.ptr[2] = NULL;
|
||||
gMonSpritesGfxPtr->sprites.ptr[3] = NULL;
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT] = NULL;
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT] = NULL;
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_RIGHT] = NULL;
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT] = NULL;
|
||||
FREE_AND_SET_NULL(gMonSpritesGfxPtr);
|
||||
}
|
||||
|
||||
|
||||
@@ -501,7 +501,7 @@ const struct TrainerMoney gTrainerMoneyTable[] =
|
||||
{TRAINER_CLASS_TWINS, 3},
|
||||
{TRAINER_CLASS_SAILOR, 8},
|
||||
{TRAINER_CLASS_COLLECTOR, 15},
|
||||
{TRAINER_CLASS_PKMN_TRAINER_3, 15},
|
||||
{TRAINER_CLASS_RIVAL, 15},
|
||||
{TRAINER_CLASS_PKMN_BREEDER, 10},
|
||||
{TRAINER_CLASS_PKMN_RANGER, 12},
|
||||
{TRAINER_CLASS_TEAM_MAGMA, 5},
|
||||
|
||||
@@ -449,7 +449,7 @@ static const struct PyramidTrainerEncounterMusic sTrainerClassEncounterMusic[54]
|
||||
{TRAINER_CLASS_PKMN_BREEDER, TRAINER_ENCOUNTER_MUSIC_FEMALE},
|
||||
{TRAINER_CLASS_COLLECTOR, TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS},
|
||||
{TRAINER_CLASS_PKMN_RANGER, TRAINER_ENCOUNTER_MUSIC_COOL},
|
||||
{TRAINER_CLASS_PKMN_TRAINER_3, TRAINER_ENCOUNTER_MUSIC_MALE},
|
||||
{TRAINER_CLASS_RIVAL, TRAINER_ENCOUNTER_MUSIC_MALE},
|
||||
{TRAINER_CLASS_YOUNG_COUPLE, TRAINER_ENCOUNTER_MUSIC_GIRL},
|
||||
{TRAINER_CLASS_PSYCHIC, TRAINER_ENCOUNTER_MUSIC_INTENSE},
|
||||
{TRAINER_CLASS_SR_AND_JR, TRAINER_ENCOUNTER_MUSIC_TWINS},
|
||||
|
||||
@@ -1668,7 +1668,7 @@ static void FillTrainerParty(u16 trainerId, u8 firstMonId, u8 monCount)
|
||||
if (gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j].species != 0
|
||||
&& gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j].level <= level)
|
||||
{
|
||||
CreateBattleTowerMon2(&gEnemyParty[i], &gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j], FALSE);
|
||||
CreateBattleTowerMon_HandleLevel(&gEnemyParty[i], &gSaveBlock2Ptr->frontier.towerRecords[trainerId - TRAINER_RECORD_MIXING_FRIEND].party[j], FALSE);
|
||||
}
|
||||
}
|
||||
return;
|
||||
@@ -3042,7 +3042,7 @@ static void FillPartnerParty(u16 trainerId)
|
||||
if (monData.nickname[0] == EXT_CTRL_CODE_BEGIN && monData.nickname[1] == EXT_CTRL_CODE_JPN)
|
||||
trainerName[5] = EOS;
|
||||
}
|
||||
CreateBattleTowerMon2(&gPlayerParty[MULTI_PARTY_SIZE + i], &monData, TRUE);
|
||||
CreateBattleTowerMon_HandleLevel(&gPlayerParty[MULTI_PARTY_SIZE + i], &monData, TRUE);
|
||||
SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_NAME, trainerName);
|
||||
j = IsFrontierTrainerFemale(trainerId + TRAINER_RECORD_MIXING_FRIEND);
|
||||
SetMonData(&gPlayerParty[MULTI_PARTY_SIZE + i], MON_DATA_OT_GENDER, &j);
|
||||
|
||||
@@ -1130,11 +1130,11 @@ void TryPutLinkBattleTvShowOnAir(void)
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if ((playerBestMonId < 3 && !GetLinkTrainerFlankId(gBattleScripting.multiplayerId))
|
||||
|| (playerBestMonId >= 3 && GetLinkTrainerFlankId(gBattleScripting.multiplayerId)))
|
||||
if ((playerBestMonId < MULTI_PARTY_SIZE && !GetLinkTrainerFlankId(gBattleScripting.multiplayerId))
|
||||
|| (playerBestMonId >= MULTI_PARTY_SIZE && GetLinkTrainerFlankId(gBattleScripting.multiplayerId)))
|
||||
{
|
||||
j = (opponentBestMonId < 3) ? 0 : 1;
|
||||
PutBattleUpdateOnTheAir(sub_806EF84(j, gBattleScripting.multiplayerId), moveId, playerBestSpecies, opponentBestSpecies);
|
||||
j = (opponentBestMonId < MULTI_PARTY_SIZE) ? FALSE : TRUE;
|
||||
PutBattleUpdateOnTheAir(GetOpposingLinkMultiBattlerId(j, gBattleScripting.multiplayerId), moveId, playerBestSpecies, opponentBestSpecies);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -3095,14 +3095,14 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA
|
||||
case ABILITYEFFECT_FIELD_SPORT: // 14
|
||||
switch (gLastUsedAbility)
|
||||
{
|
||||
case 0xFD:
|
||||
case ABILITYEFFECT_MUD_SPORT:
|
||||
for (i = 0; i < gBattlersCount; i++)
|
||||
{
|
||||
if (gStatuses3[i] & STATUS3_MUDSPORT)
|
||||
effect = i + 1;
|
||||
}
|
||||
break;
|
||||
case 0xFE:
|
||||
case ABILITYEFFECT_WATER_SPORT:
|
||||
for (i = 0; i < gBattlersCount; i++)
|
||||
{
|
||||
if (gStatuses3[i] & STATUS3_WATERSPORT)
|
||||
|
||||
@@ -3122,12 +3122,12 @@ static u8 CreateContestantSprite(u16 species, u32 otId, u32 personality, u32 ind
|
||||
species = SanitizeSpecies(species);
|
||||
|
||||
if (index == gContestPlayerMonIndex)
|
||||
HandleLoadSpecialPokePic_2(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[0], species, personality);
|
||||
HandleLoadSpecialPokePic_2(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], species, personality);
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[0], species, personality);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonBackPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], species, personality);
|
||||
|
||||
LoadCompressedPalette(GetMonSpritePalFromSpeciesAndPersonality(species, otId, personality), 0x120, 0x20);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, 0);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_PLAYER_LEFT);
|
||||
|
||||
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
|
||||
gSprites[spriteId].oam.paletteNum = 2;
|
||||
|
||||
@@ -361,27 +361,27 @@ static void VBlankCB_ContestPainting(void)
|
||||
TransferPlttBuffer();
|
||||
}
|
||||
|
||||
static void InitContestMonPixels(u16 species, u8 whichSprite)
|
||||
static void InitContestMonPixels(u16 species, bool8 backPic)
|
||||
{
|
||||
const void *pal = GetMonSpritePalFromSpeciesAndPersonality(species, gContestPaintingWinner->trainerId, gContestPaintingWinner->personality);
|
||||
LZDecompressVram(pal, gContestPaintingMonPalette);
|
||||
if (whichSprite == 0)
|
||||
if (!backPic)
|
||||
{
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(
|
||||
&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites.ptr[1],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
species,
|
||||
gContestPaintingWinner->personality);
|
||||
_InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[1], gContestPaintingMonPalette, (void *)gContestMonPixels);
|
||||
_InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], gContestPaintingMonPalette, (void *)gContestMonPixels);
|
||||
}
|
||||
else
|
||||
{
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(
|
||||
&gMonBackPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites.ptr[0],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT],
|
||||
species,
|
||||
gContestPaintingWinner->personality);
|
||||
_InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[0], gContestPaintingMonPalette, (void *)gContestMonPixels);
|
||||
_InitContestMonPixels(gMonSpritesGfxPtr->sprites.ptr[B_POSITION_PLAYER_LEFT], gContestPaintingMonPalette, (void *)gContestMonPixels);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -592,7 +592,7 @@ static void DoContestPaintingImageProcessing(u8 imageEffect)
|
||||
static void CreateContestPaintingPicture(u8 contestWinnerId, bool8 isForArtist)
|
||||
{
|
||||
AllocPaintingResources();
|
||||
InitContestMonPixels(gContestPaintingWinner->species, 0);
|
||||
InitContestMonPixels(gContestPaintingWinner->species, FALSE);
|
||||
DoContestPaintingImageProcessing(GetImageEffectForContestWinner(contestWinnerId));
|
||||
InitPaintingMonOamData(contestWinnerId);
|
||||
LoadContestPaintingFrame(contestWinnerId, isForArtist);
|
||||
|
||||
@@ -893,7 +893,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId)
|
||||
{
|
||||
HandleLoadSpecialPokePic_2(
|
||||
&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites.ptr[1],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
species,
|
||||
personality);
|
||||
}
|
||||
@@ -901,7 +901,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId)
|
||||
{
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(
|
||||
&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites.ptr[1],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
species,
|
||||
personality);
|
||||
}
|
||||
@@ -2581,13 +2581,13 @@ void ShowContestEntryMonPic(void)
|
||||
gTasks[taskId].data[0] = 0;
|
||||
gTasks[taskId].data[1] = species;
|
||||
if (gSpecialVar_0x8006 == gContestPlayerMonIndex)
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality);
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality);
|
||||
|
||||
palette = GetMonSpritePalStructFromOtIdPersonality(species, otId, personality);
|
||||
LoadCompressedSpritePalette(palette);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, 1);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, B_POSITION_OPPONENT_LEFT);
|
||||
gMultiuseSpriteTemplate.paletteTag = palette->tag;
|
||||
spriteId = CreateSprite(&gMultiuseSpriteTemplate, (left + 1) * 8 + 32, (top * 8) + 40, 0);
|
||||
|
||||
|
||||
@@ -145,13 +145,13 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
[FACILITY_CLASS_SWIMMER_F] = TRAINER_CLASS_SWIMMER_F,
|
||||
[FACILITY_CLASS_TWINS] = TRAINER_CLASS_TWINS,
|
||||
[FACILITY_CLASS_SAILOR] = TRAINER_CLASS_SAILOR,
|
||||
[FACILITY_CLASS_WALLY] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_BRENDAN] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_BRENDAN_2] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_BRENDAN_3] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_MAY] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_MAY_2] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_MAY_3] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_WALLY] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_BRENDAN] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_BRENDAN_2] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_BRENDAN_3] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_MAY] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_MAY_2] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_MAY_3] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_PKMN_BREEDER_M] = TRAINER_CLASS_PKMN_BREEDER,
|
||||
[FACILITY_CLASS_BUG_CATCHER] = TRAINER_CLASS_BUG_CATCHER,
|
||||
[FACILITY_CLASS_PKMN_RANGER_M] = TRAINER_CLASS_PKMN_RANGER,
|
||||
@@ -161,11 +161,11 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
[FACILITY_CLASS_YOUNG_COUPLE] = TRAINER_CLASS_YOUNG_COUPLE,
|
||||
[FACILITY_CLASS_OLD_COUPLE] = TRAINER_CLASS_OLD_COUPLE,
|
||||
[FACILITY_CLASS_SIS_AND_BRO] = TRAINER_CLASS_SIS_AND_BRO,
|
||||
[FACILITY_CLASS_STEVEN] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_STEVEN] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_SALON_MAIDEN_ANABEL] = TRAINER_CLASS_SALON_MAIDEN,
|
||||
[FACILITY_CLASS_DOME_ACE_TUCKER] = TRAINER_CLASS_DOME_ACE,
|
||||
[FACILITY_CLASS_RED] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_LEAF] = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
[FACILITY_CLASS_RED] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_LEAF] = TRAINER_CLASS_RIVAL,
|
||||
[FACILITY_CLASS_RS_BRENDAN] = TRAINER_CLASS_RS_PROTAG,
|
||||
[FACILITY_CLASS_RS_MAY] = TRAINER_CLASS_RS_PROTAG,
|
||||
};
|
||||
|
||||
@@ -49,7 +49,7 @@ const u8 gTrainerClassNames[][13] = {
|
||||
[TRAINER_CLASS_SAILOR] = _("SAILOR"),
|
||||
[TRAINER_CLASS_COOLTRAINER_2] = _("COOLTRAINER"),
|
||||
[TRAINER_CLASS_MAGMA_ADMIN] = _("MAGMA ADMIN"),
|
||||
[TRAINER_CLASS_PKMN_TRAINER_3] = _("{PKMN} TRAINER"),
|
||||
[TRAINER_CLASS_RIVAL] = _("{PKMN} TRAINER"),
|
||||
[TRAINER_CLASS_BUG_CATCHER] = _("BUG CATCHER"),
|
||||
[TRAINER_CLASS_PKMN_RANGER] = _("{PKMN} RANGER"),
|
||||
[TRAINER_CLASS_MAGMA_LEADER] = _("MAGMA LEADER"),
|
||||
|
||||
@@ -7268,7 +7268,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_WALLY_VR_1] =
|
||||
{
|
||||
.partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_WALLY,
|
||||
.trainerName = _("WALLY"),
|
||||
@@ -7282,7 +7282,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_103_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7296,7 +7296,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_110_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7310,7 +7310,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_119_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7324,7 +7324,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_103_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7338,7 +7338,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_110_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7352,7 +7352,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_119_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7366,7 +7366,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_103_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7380,7 +7380,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_110_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7394,7 +7394,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_ROUTE_119_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -7408,7 +7408,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_103_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7422,7 +7422,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_110_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7436,7 +7436,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_119_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7450,7 +7450,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_103_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7464,7 +7464,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_110_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7478,7 +7478,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_119_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7492,7 +7492,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_103_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7506,7 +7506,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_110_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -7520,7 +7520,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_ROUTE_119_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -8290,7 +8290,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_RUSTBORO_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -8304,7 +8304,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_RUSTBORO_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -8388,7 +8388,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_RUSTBORO_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -8402,7 +8402,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_RUSTBORO_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -9186,7 +9186,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_WALLY_MAUVILLE] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_WALLY,
|
||||
.trainerName = _("WALLY"),
|
||||
@@ -9200,7 +9200,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_WALLY_VR_2] =
|
||||
{
|
||||
.partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_WALLY,
|
||||
.trainerName = _("WALLY"),
|
||||
@@ -9214,7 +9214,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_WALLY_VR_3] =
|
||||
{
|
||||
.partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_WALLY,
|
||||
.trainerName = _("WALLY"),
|
||||
@@ -9228,7 +9228,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_WALLY_VR_4] =
|
||||
{
|
||||
.partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_WALLY,
|
||||
.trainerName = _("WALLY"),
|
||||
@@ -9242,7 +9242,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_WALLY_VR_5] =
|
||||
{
|
||||
.partyFlags = F_TRAINER_PARTY_CUSTOM_MOVESET,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_WALLY,
|
||||
.trainerName = _("WALLY"),
|
||||
@@ -9256,7 +9256,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_LILYCOVE_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -9270,7 +9270,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_LILYCOVE_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -9284,7 +9284,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_BRENDAN_LILYCOVE_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_BRENDAN,
|
||||
.trainerName = _("BRENDAN"),
|
||||
@@ -9298,7 +9298,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_LILYCOVE_MUDKIP] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -9312,7 +9312,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_LILYCOVE_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -9326,7 +9326,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_LILYCOVE_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -10754,7 +10754,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_RUSTBORO_TREECKO] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -10768,7 +10768,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_MAY_RUSTBORO_TORCHIC] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE,
|
||||
.trainerPic = TRAINER_PIC_MAY,
|
||||
.trainerName = _("MAY"),
|
||||
@@ -11258,7 +11258,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_STEVEN] =
|
||||
{
|
||||
.partyFlags = F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_STEVEN,
|
||||
.trainerName = _("STEVEN"),
|
||||
@@ -11916,7 +11916,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_RED] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_RED,
|
||||
.trainerName = _("RED"),
|
||||
@@ -11930,7 +11930,7 @@ const struct Trainer gTrainers[] = {
|
||||
[TRAINER_LEAF] =
|
||||
{
|
||||
.partyFlags = 0,
|
||||
.trainerClass = TRAINER_CLASS_PKMN_TRAINER_3,
|
||||
.trainerClass = TRAINER_CLASS_RIVAL,
|
||||
.encounterMusic_gender = F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MALE,
|
||||
.trainerPic = TRAINER_PIC_LEAF,
|
||||
.trainerName = _("LEAF"),
|
||||
|
||||
@@ -411,21 +411,22 @@ bool8 CheckDaycareMonReceivedMail(void)
|
||||
return _CheckDaycareMonReceivedMail(&gSaveBlock1Ptr->daycare, gSpecialVar_0x8004);
|
||||
}
|
||||
|
||||
static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc)
|
||||
static u8 EggHatchCreateMonSprite(u8 useAlt, u8 switchID, u8 pokeID, u16* speciesLoc)
|
||||
{
|
||||
u8 r5 = 0;
|
||||
u8 position = 0;
|
||||
u8 spriteID = 0;
|
||||
struct Pokemon* mon = NULL;
|
||||
|
||||
if (a0 == 0)
|
||||
if (useAlt == FALSE)
|
||||
{
|
||||
mon = &gPlayerParty[pokeID];
|
||||
r5 = 1;
|
||||
position = B_POSITION_OPPONENT_LEFT;
|
||||
}
|
||||
if (a0 == 1)
|
||||
if (useAlt == TRUE)
|
||||
{
|
||||
// Alternate sprite allocation position. Never reached.
|
||||
mon = &gPlayerParty[pokeID];
|
||||
r5 = 3;
|
||||
position = B_POSITION_OPPONENT_RIGHT;
|
||||
}
|
||||
switch (switchID)
|
||||
{
|
||||
@@ -434,14 +435,14 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc
|
||||
u16 species = GetMonData(mon, MON_DATA_SPECIES);
|
||||
u32 pid = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites.ptr [(a0 * 2) + 1],
|
||||
gMonSpritesGfxPtr->sprites.ptr[(useAlt * 2) + B_POSITION_OPPONENT_LEFT],
|
||||
species, pid);
|
||||
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
|
||||
*speciesLoc = species;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, r5);
|
||||
SetMultiuseSpriteTemplateToPokemon(GetMonSpritePalStruct(mon)->tag, position);
|
||||
spriteID = CreateSprite(&gMultiuseSpriteTemplate, 120, 75, 6);
|
||||
gSprites[spriteID].invisible = TRUE;
|
||||
gSprites[spriteID].callback = SpriteCallbackDummy;
|
||||
@@ -535,11 +536,11 @@ static void CB2_EggHatch_0(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 5:
|
||||
EggHatchCreateMonSprite(0, 0, sEggHatchData->eggPartyID, &sEggHatchData->species);
|
||||
EggHatchCreateMonSprite(FALSE, 0, sEggHatchData->eggPartyID, &sEggHatchData->species);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 6:
|
||||
sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(0, 1, sEggHatchData->eggPartyID, &sEggHatchData->species);
|
||||
sEggHatchData->pokeSpriteID = EggHatchCreateMonSprite(FALSE, 1, sEggHatchData->eggPartyID, &sEggHatchData->species);
|
||||
gMain.state++;
|
||||
break;
|
||||
case 7:
|
||||
|
||||
@@ -260,12 +260,12 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u
|
||||
trainerId = GetMonData(mon, MON_DATA_OT_ID);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
DecompressPicFromTable_2(&gMonFrontPicTable[currSpecies],
|
||||
gMonSpritesGfxPtr->sprites.ptr[1],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
currSpecies);
|
||||
pokePal = GetMonSpritePalStructFromOtIdPersonality(currSpecies, trainerId, personality);
|
||||
LoadCompressedPalette(pokePal->data, 0x110, 0x20);
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(currSpecies, 1);
|
||||
SetMultiuseSpriteTemplateToPokemon(currSpecies, B_POSITION_OPPONENT_LEFT);
|
||||
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
|
||||
sEvoStructPtr->preEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30);
|
||||
|
||||
@@ -275,12 +275,12 @@ void EvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, bool8 canStopEvo, u
|
||||
|
||||
// postEvo sprite
|
||||
DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies],
|
||||
gMonSpritesGfxPtr->sprites.ptr[3],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT],
|
||||
postEvoSpecies);
|
||||
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
|
||||
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 3);
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT);
|
||||
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
|
||||
sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30);
|
||||
gSprites[ID].callback = SpriteCallbackDummy_2;
|
||||
@@ -352,13 +352,13 @@ static void CB2_EvolutionSceneLoadGraphics(void)
|
||||
gReservedSpritePaletteCount = 4;
|
||||
|
||||
DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies],
|
||||
gMonSpritesGfxPtr->sprites.ptr[3],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT],
|
||||
postEvoSpecies);
|
||||
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
|
||||
|
||||
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 3);
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_RIGHT);
|
||||
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
|
||||
sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30);
|
||||
|
||||
@@ -424,7 +424,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
|
||||
u32 trainerId = GetMonData(mon, MON_DATA_OT_ID);
|
||||
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies],
|
||||
gMonSpritesGfxPtr->sprites.ptr[3],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT],
|
||||
postEvoSpecies);
|
||||
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
|
||||
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
|
||||
@@ -435,7 +435,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
|
||||
{
|
||||
u8 ID;
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 1);
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_LEFT);
|
||||
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
|
||||
sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30);
|
||||
|
||||
@@ -488,13 +488,13 @@ void TradeEvolutionScene(struct Pokemon* mon, u16 postEvoSpecies, u8 preEvoSprit
|
||||
sEvoStructPtr->preEvoSpriteId = preEvoSpriteId;
|
||||
|
||||
DecompressPicFromTable_2(&gMonFrontPicTable[postEvoSpecies],
|
||||
gMonSpritesGfxPtr->sprites.ptr[1],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
postEvoSpecies);
|
||||
|
||||
pokePal = GetMonSpritePalStructFromOtIdPersonality(postEvoSpecies, trainerId, personality);
|
||||
LoadCompressedPalette(pokePal->data, 0x120, 0x20);
|
||||
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, 1);
|
||||
SetMultiuseSpriteTemplateToPokemon(postEvoSpecies, B_POSITION_OPPONENT_LEFT);
|
||||
gMultiuseSpriteTemplate.affineAnims = gDummySpriteAffineAnimTable;
|
||||
sEvoStructPtr->postEvoSpriteId = ID = CreateSprite(&gMultiuseSpriteTemplate, 120, 64, 30);
|
||||
|
||||
|
||||
@@ -161,10 +161,7 @@
|
||||
* - Destroys itself when done.
|
||||
*/
|
||||
|
||||
// These two defines are used with the sCurrItemAndOptionsMenuCheck,
|
||||
// to distinguish between its two parts.
|
||||
#define OPTION_MENU_FLAG 0x8000
|
||||
#define CURRENT_ITEM_MASK 0x7FFF
|
||||
#define OPTION_MENU_FLAG (1 << 15)
|
||||
|
||||
// Static type declarations
|
||||
|
||||
@@ -685,7 +682,7 @@ static void Task_MainMenuCheckSaveFile(u8 taskId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
sCurrItemAndOptionMenuCheck &= CURRENT_ITEM_MASK; // turn off the "returning from options menu" flag
|
||||
sCurrItemAndOptionMenuCheck &= ~OPTION_MENU_FLAG; // turn off the "returning from options menu" flag
|
||||
tCurrItem = sCurrItemAndOptionMenuCheck;
|
||||
tItemCount = tMenuType + 2;
|
||||
}
|
||||
|
||||
@@ -731,7 +731,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon)
|
||||
// Load mon gfx
|
||||
species = GetMonData(mon, MON_DATA_SPECIES2);
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality);
|
||||
sPokeblockFeed->loadGfxState++;
|
||||
break;
|
||||
case 1:
|
||||
@@ -742,7 +742,7 @@ static bool8 LoadMonAndSceneGfx(struct Pokemon *mon)
|
||||
palette = GetMonSpritePalStructFromOtIdPersonality(species, trainerId, personality);
|
||||
|
||||
LoadCompressedSpritePalette(palette);
|
||||
SetMultiuseSpriteTemplateToPokemon(palette->tag, 1);
|
||||
SetMultiuseSpriteTemplateToPokemon(palette->tag, B_POSITION_OPPONENT_LEFT);
|
||||
sPokeblockFeed->loadGfxState++;
|
||||
break;
|
||||
case 2:
|
||||
|
||||
589
src/pokemon.c
589
src/pokemon.c
File diff suppressed because it is too large
Load Diff
@@ -1111,7 +1111,7 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex,
|
||||
SummaryScreen_SetAnimDelayTaskId(TASK_NONE);
|
||||
|
||||
if (gMonSpritesGfxPtr == NULL)
|
||||
sub_806F2AC(0, 0);
|
||||
CreateMonSpritesGfxManager(MON_SPR_GFX_MANAGER_A, MON_SPR_GFX_MODE_NORMAL);
|
||||
|
||||
SetMainCallback2(CB2_InitSummaryScreen);
|
||||
}
|
||||
@@ -1500,7 +1500,7 @@ static void CloseSummaryScreen(u8 taskId)
|
||||
StopCryAndClearCrySongs();
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, 0xFFFF, 0x100);
|
||||
if (gMonSpritesGfxPtr == NULL)
|
||||
sub_806F47C(0);
|
||||
DestroyMonSpritesGfxManager(MON_SPR_GFX_MANAGER_A);
|
||||
FreeSummaryScreen();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
@@ -3873,25 +3873,43 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state)
|
||||
if (gMain.inBattle)
|
||||
{
|
||||
if (ShouldIgnoreDeoxysForm(3, sMonSummaryScreen->curMonIndex))
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
summary->species2,
|
||||
summary->pid);
|
||||
else
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
summary->species2,
|
||||
summary->pid);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gMonSpritesGfxPtr != NULL)
|
||||
{
|
||||
if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == SUMMARY_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE)
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
summary->species2,
|
||||
summary->pid);
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], gMonSpritesGfxPtr->sprites.ptr[1], summary->species2, summary->pid);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT],
|
||||
summary->species2,
|
||||
summary->pid);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (sMonSummaryScreen->monList.mons == gPlayerParty || sMonSummaryScreen->mode == SUMMARY_MODE_BOX || sMonSummaryScreen->unk40EF == TRUE)
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[summary->species2],
|
||||
MonSpritesGfxManager_GetSpritePtr(MON_SPR_GFX_MANAGER_A, B_POSITION_OPPONENT_LEFT),
|
||||
summary->species2,
|
||||
summary->pid);
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2], sub_806F4F8(0, 1), summary->species2, summary->pid);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[summary->species2],
|
||||
MonSpritesGfxManager_GetSpritePtr(MON_SPR_GFX_MANAGER_A, B_POSITION_OPPONENT_LEFT),
|
||||
summary->species2,
|
||||
summary->pid);
|
||||
}
|
||||
}
|
||||
(*state)++;
|
||||
@@ -3899,7 +3917,7 @@ static u8 LoadMonGfxAndSprite(struct Pokemon *mon, s16 *state)
|
||||
case 1:
|
||||
pal = GetMonSpritePalStructFromOtIdPersonality(summary->species2, summary->OTID, summary->pid);
|
||||
LoadCompressedSpritePalette(pal);
|
||||
SetMultiuseSpriteTemplateToPokemon(pal->tag, 1);
|
||||
SetMultiuseSpriteTemplateToPokemon(pal->tag, B_POSITION_OPPONENT_LEFT);
|
||||
(*state)++;
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
@@ -65,17 +65,18 @@ u8 ScriptGiveMon(u16 species, u8 level, u16 item, u32 unused1, u32 unused2, u8 u
|
||||
u8 heldItem[2];
|
||||
struct Pokemon mon;
|
||||
|
||||
CreateMon(&mon, species, level, USE_RANDOM_IVS, 0, 0, OT_ID_PLAYER_ID, 0);
|
||||
CreateMon(&mon, species, level, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0);
|
||||
heldItem[0] = item;
|
||||
heldItem[1] = item >> 8;
|
||||
SetMonData(&mon, MON_DATA_HELD_ITEM, heldItem);
|
||||
sentToPc = GiveMonToPlayer(&mon);
|
||||
nationalDexNum = SpeciesToNationalPokedexNum(species);
|
||||
|
||||
// Don't set Pokédex flag for MON_CANT_GIVE
|
||||
switch(sentToPc)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case MON_GIVEN_TO_PARTY:
|
||||
case MON_GIVEN_TO_PC:
|
||||
GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN);
|
||||
GetSetPokedexFlag(nationalDexNum, FLAG_SET_CAUGHT);
|
||||
break;
|
||||
|
||||
@@ -2770,9 +2770,9 @@ static void LoadTradeMonPic(u8 whichParty, u8 state)
|
||||
personality = GetMonData(mon, MON_DATA_PERSONALITY);
|
||||
|
||||
if (whichParty == TRADE_PLAYER)
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[1], species, personality);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_LEFT], species, personality);
|
||||
else
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[whichParty * 2 + 1], species, personality);
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species], gMonSpritesGfxPtr->sprites.ptr[whichParty * 2 + B_POSITION_OPPONENT_LEFT], species, personality);
|
||||
|
||||
LoadCompressedSpritePalette(GetMonSpritePalStruct(mon));
|
||||
sTradeData->monSpecies[whichParty] = species;
|
||||
@@ -3767,7 +3767,7 @@ static bool8 AnimateTradeSequenceCable(void)
|
||||
case TS_STATE_POKEBALL_ARRIVE_WAIT:
|
||||
if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy)
|
||||
{
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[3], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]);
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]], gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT], sTradeData->monSpecies[TRADE_PARTNER], sTradeData->monPersonalities[TRADE_PARTNER]);
|
||||
sTradeData->state++;
|
||||
}
|
||||
break;
|
||||
@@ -4265,7 +4265,7 @@ static bool8 AnimateTradeSequenceWireless(void)
|
||||
if (gSprites[sTradeData->bouncingPokeballSpriteId].callback == SpriteCallbackDummy)
|
||||
{
|
||||
HandleLoadSpecialPokePic_2(&gMonFrontPicTable[sTradeData->monSpecies[TRADE_PARTNER]],
|
||||
gMonSpritesGfxPtr->sprites.ptr[3],
|
||||
gMonSpritesGfxPtr->sprites.ptr[B_POSITION_OPPONENT_RIGHT],
|
||||
sTradeData->monSpecies[TRADE_PARTNER],
|
||||
sTradeData->monPersonalities[TRADE_PARTNER]);
|
||||
sTradeData->state++;
|
||||
|
||||
@@ -126,7 +126,7 @@ struct
|
||||
{TRAINER_CLASS_PKMN_BREEDER, TRAINER_ENCOUNTER_MUSIC_FEMALE},
|
||||
{TRAINER_CLASS_COLLECTOR, TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS},
|
||||
{TRAINER_CLASS_PKMN_RANGER, TRAINER_ENCOUNTER_MUSIC_COOL},
|
||||
{TRAINER_CLASS_PKMN_TRAINER_3, TRAINER_ENCOUNTER_MUSIC_MALE},
|
||||
{TRAINER_CLASS_RIVAL, TRAINER_ENCOUNTER_MUSIC_MALE},
|
||||
{TRAINER_CLASS_YOUNG_COUPLE, TRAINER_ENCOUNTER_MUSIC_GIRL},
|
||||
{TRAINER_CLASS_PSYCHIC, TRAINER_ENCOUNTER_MUSIC_INTENSE},
|
||||
{TRAINER_CLASS_SR_AND_JR, TRAINER_ENCOUNTER_MUSIC_TWINS},
|
||||
|
||||
Reference in New Issue
Block a user