diff options
Diffstat (limited to 'src/pokemon.c')
-rw-r--r-- | src/pokemon.c | 74 |
1 files changed, 36 insertions, 38 deletions
diff --git a/src/pokemon.c b/src/pokemon.c index cdb87f464..1ee9c4cff 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -10,6 +10,7 @@ #include "battle_tower.h" #include "event_data.h" #include "evolution_scene.h" +#include "field_specials.h" #include "item.h" #include "link.h" #include "main.h" @@ -37,6 +38,7 @@ #include "constants/battle_move_effects.h" #include "constants/hold_effects.h" #include "constants/items.h" +#include "constants/layouts.h" #include "constants/moves.h" #include "constants/songs.h" #include "constants/species.h" @@ -52,14 +54,14 @@ extern const struct SpriteFrameImage gUnknown_082FF3A8[]; extern const struct SpriteFrameImage gUnknown_082FF3C8[]; extern const struct SpriteFrameImage gUnknown_082FF3E8[]; extern const struct SpriteFrameImage gUnknown_082FF408[]; -extern const struct SpriteFrameImage gUnknown_082FF428[]; -extern const struct SpriteFrameImage gUnknown_082FF448[]; -extern const struct SpriteFrameImage gUnknown_082FF468[]; -extern const struct SpriteFrameImage gUnknown_082FF490[]; -extern const struct SpriteFrameImage gUnknown_082FF4B8[]; -extern const struct SpriteFrameImage gUnknown_082FF4D8[]; -extern const struct SpriteFrameImage gUnknown_082FF4F8[]; -extern const struct SpriteFrameImage gUnknown_082FF518[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Brendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_May[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Red[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Leaf[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireBrendan[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_RubySapphireMay[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Wally[]; +extern const struct SpriteFrameImage gTrainerBackPicTable_Steven[]; extern const union AffineAnimCmd *const gUnknown_082FF618[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const union AnimCmd *gPlayerMonSpriteAnimsTable[]; @@ -71,10 +73,6 @@ extern const struct CompressedSpritePalette gMonPaletteTable[]; extern const struct CompressedSpritePalette gMonShinyPaletteTable[]; extern const u8 gTrainerClassNames[][13]; -extern u16 get_unknown_box_id(void); -extern void set_unknown_box_id(u8); -extern bool8 sub_806F104(void); - // this file's functions static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); static union PokemonSubstruct *GetSubstruct(struct BoxPokemon *boxMon, u32 personality, u8 substructType); @@ -2226,9 +2224,9 @@ static const u8 sMonAnimationDelayTable[] = [SPECIES_CHIMECHO - 1] = 0x00, }; -const u8 gUnknown_08329D22[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values -const u8 gUnknown_08329D26[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count -const u8 gUnknown_08329D2A[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count +const u8 gPPUpGetMask[] = {0x03, 0x0c, 0x30, 0xc0}; // Masks for getting PP Up count, also PP Max values +const u8 gPPUpSetMask[] = {0xfc, 0xf3, 0xcf, 0x3f}; // Masks for setting PP Up count +const u8 gPPUpAddMask[] = {0x01, 0x04, 0x10, 0x40}; // Values added to PP Up count const u8 gStatStageRatios[][2] = { @@ -2328,14 +2326,14 @@ const struct SpriteTemplate gUnknown_08329D98[MAX_BATTLERS_COUNT] = }, }; -static const struct SpriteTemplate gUnknown_08329DF8[] = +static const struct SpriteTemplate gSpriteTemplateTable_TrainerBackSprites[] = { { .tileTag = 0xFFFF, .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF428, + .images = gTrainerBackPicTable_Brendan, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2344,7 +2342,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF448, + .images = gTrainerBackPicTable_May, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2353,7 +2351,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF468, + .images = gTrainerBackPicTable_Red, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2362,7 +2360,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF490, + .images = gTrainerBackPicTable_Leaf, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2371,7 +2369,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF4B8, + .images = gTrainerBackPicTable_RubySapphireBrendan, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2380,7 +2378,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF4D8, + .images = gTrainerBackPicTable_RubySapphireMay, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2389,7 +2387,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF4F8, + .images = gTrainerBackPicTable_Wally, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2398,7 +2396,7 @@ static const struct SpriteTemplate gUnknown_08329DF8[] = .paletteTag = 0, .oam = &gOamData_831ACB0, .anims = NULL, - .images = gUnknown_082FF518, + .images = gTrainerBackPicTable_Steven, .affineAnims = gUnknown_082FF618, .callback = sub_8039BB4, }, @@ -2464,10 +2462,10 @@ static const struct OamData sOamData_8329F20 = .objMode = 0, .mosaic = 0, .bpp = 0, - .shape = 0, + .shape = SPRITE_SHAPE(64x64), .x = 0, .matrixNum = 0, - .size = 3, + .size = SPRITE_SIZE(64x64), .tileNum = 0, .priority = 0, .paletteNum = 0, @@ -3817,7 +3815,7 @@ void SetMultiuseSpriteTemplateToTrainerBack(u16 trainerSpriteId, u8 battlerPosit gMultiuseSpriteTemplate.paletteTag = trainerSpriteId; if (battlerPosition == B_POSITION_PLAYER_LEFT || battlerPosition == B_POSITION_PLAYER_RIGHT) { - gMultiuseSpriteTemplate = gUnknown_08329DF8[trainerSpriteId]; + gMultiuseSpriteTemplate = gSpriteTemplateTable_TrainerBackSprites[trainerSpriteId]; gMultiuseSpriteTemplate.anims = gTrainerBackAnimsPtrTable[trainerSpriteId]; } else @@ -4913,19 +4911,19 @@ void GetSpeciesName(u8 *name, u16 species) u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex) { u8 basePP = gBattleMoves[move].pp; - return basePP + ((basePP * 20 * ((gUnknown_08329D22[moveIndex] & ppBonuses) >> (2 * moveIndex))) / 100); + return basePP + ((basePP * 20 * ((gPPUpGetMask[moveIndex] & ppBonuses) >> (2 * moveIndex))) / 100); } void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex) { u8 ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES, NULL); - ppBonuses &= gUnknown_08329D26[moveIndex]; + ppBonuses &= gPPUpSetMask[moveIndex]; SetMonData(mon, MON_DATA_PP_BONUSES, &ppBonuses); } void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex) { - mon->ppBonuses &= gUnknown_08329D26[moveIndex]; + mon->ppBonuses &= gPPUpSetMask[moveIndex]; } void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) @@ -5168,11 +5166,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov if (r10 & 0x20) { r10 &= ~0x20; - dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gUnknown_08329D22[moveIndex]) >> (moveIndex * 2); + dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); var_38 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); if (dataUnsigned <= 2 && var_38 > 4) { - dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL) + gUnknown_08329D2A[moveIndex]; + dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL) + gPPUpAddMask[moveIndex]; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - var_38; @@ -5428,13 +5426,13 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov var_3C++; break; case 4: - dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gUnknown_08329D22[moveIndex]) >> (moveIndex * 2); + dataUnsigned = (GetMonData(mon, MON_DATA_PP_BONUSES, NULL) & gPPUpGetMask[moveIndex]) >> (moveIndex * 2); r5 = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), GetMonData(mon, MON_DATA_PP_BONUSES, NULL), moveIndex); if (dataUnsigned < 3 && r5 > 4) { dataUnsigned = GetMonData(mon, MON_DATA_PP_BONUSES, NULL); - dataUnsigned &= gUnknown_08329D26[moveIndex]; - dataUnsigned += gUnknown_08329D2A[moveIndex] * 3; + dataUnsigned &= gPPUpSetMask[moveIndex]; + dataUnsigned += gPPUpAddMask[moveIndex] * 3; SetMonData(mon, MON_DATA_PP_BONUSES, &dataUnsigned); dataUnsigned = CalculatePPWithBonus(GetMonData(mon, MON_DATA_MOVE1 + moveIndex, NULL), dataUnsigned, moveIndex) - r5; @@ -6080,7 +6078,7 @@ s32 GetBattlerMultiplayerId(u16 a1) u8 GetTrainerEncounterMusicId(u16 trainerOpponentId) { if (InBattlePyramid()) - return GetTrainerEncounterMusicIdInBattlePyramind(trainerOpponentId); + return GetBattlePyramindTrainerEncounterMusicId(trainerOpponentId); else if (sub_81D5C18()) return GetTrainerEncounterMusicIdInTrainerHill(trainerOpponentId); else @@ -6848,7 +6846,7 @@ void SetWildMonHeldItem(void) var1 = 20; var2 = 80; } - if (gMapHeader.mapLayoutId == 0x1A4) + if (gMapHeader.mapLayoutId == LAYOUT_ALTERING_CAVE) { s32 alteringCaveId = GetWildMonTableIdInAlteringCave(species); if (alteringCaveId != 0) @@ -7024,7 +7022,7 @@ void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneF } } -void sub_806EE98(void) +void StopPokemonAnimationDelayTask(void) { u8 delayTaskId = FindTaskIdByFunc(Task_PokemonSummaryAnimateAfterDelay); if (delayTaskId != 0xFF) |