Add Species enum (#9507)
Some checks are pending
CI / build (push) Waiting to run
CI / docs_validate (push) Waiting to run
CI / allcontributors (push) Waiting to run

Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
Co-authored-by: FosterProgramming <jamiefosterandco@gmail.com>
This commit is contained in:
Bassoonian 2026-03-17 13:47:48 +01:00 committed by GitHub
parent 439b38b990
commit b4c311a308
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
148 changed files with 2705 additions and 2679 deletions

View File

@ -8,7 +8,7 @@ struct ApprenticeTrainer
u8 name[NUM_LANGUAGES - 1][PLAYER_NAME_LENGTH + 1]; // For all languages except the unused one.
u16 otId;
u8 facilityClass;
u16 species[APPRENTICE_SPECIES_COUNT];
enum Species species[APPRENTICE_SPECIES_COUNT];
u8 id;
u16 speechLost[EASY_CHAT_BATTLE_WORDS_COUNT];
};

View File

@ -176,7 +176,7 @@ struct AI_SavedBattleMon
struct AiPartyMon
{
u16 species;
enum Species species;
enum Item item;
enum HoldEffect heldEffect;
enum Ability ability;
@ -303,16 +303,16 @@ struct BattleResults
u8 playerMonWasDamaged:1; // 0x5
u8 caughtMonBall:4; // 0x5
u8 shinyWildMon:1; // 0x5
u16 playerMon1Species; // 0x6
enum Species playerMon1Species; // 0x6
u8 playerMon1Name[POKEMON_NAME_LENGTH + 1]; // 0x8
u8 battleTurnCounter; // 0x13
u8 playerMon2Name[POKEMON_NAME_LENGTH + 1]; // 0x14
u8 pokeblockThrows; // 0x1F
u16 lastOpponentSpecies; // 0x20
enum Species lastOpponentSpecies; // 0x20
u16 lastUsedMovePlayer; // 0x22
u16 lastUsedMoveOpponent; // 0x24
u16 playerMon2Species; // 0x26
u16 caughtMonSpecies; // 0x28
enum Species playerMon2Species; // 0x26
enum Species caughtMonSpecies; // 0x28
u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; // 0x2A
u8 filler35; // 0x35
u8 catchAttempts[POKEBALL_COUNT]; // 0x36
@ -654,7 +654,7 @@ struct BattleStruct
u8 ballSpriteIds[2]; // item gfx, window gfx
u8 moveInfoSpriteId; // move info, window gfx
// When using a move which hits multiple opponents which is then bounced by a target, we need to make sure, the move hits both opponents, the one with bounce, and the one without.
u16 beatUpSpecies[PARTY_SIZE]; // Species for Gen5+ Beat Up, otherwise party indexes
enum Species beatUpSpecies[PARTY_SIZE]; // Species for Gen5+ Beat Up, otherwise party indexes
u8 attackerBeforeBounce:2;
u8 beatUpSlot:3;
u8 pledgeMove:1;
@ -678,7 +678,7 @@ struct BattleStruct
u16 additionalEffectsCounter:4; // A counter for the additionalEffects applied by the current move in Cmd_setadditionaleffects
u8 pursuitStoredSwitch; // Stored id for the Pursuit target's switch
s32 battlerExpReward;
u16 prevTurnSpecies[MAX_BATTLERS_COUNT]; // Stores species the AI has in play at start of turn
enum Species prevTurnSpecies[MAX_BATTLERS_COUNT]; // Stores species the AI has in play at start of turn
s16 passiveHpUpdate[MAX_BATTLERS_COUNT]; // non-move damage and healing
s16 moveDamage[MAX_BATTLERS_COUNT];
u16 moveResultFlags[MAX_BATTLERS_COUNT];
@ -844,7 +844,7 @@ struct BattleSpriteInfo
u16 behindSubstitute:1; // 0x4
u16 flag_x8:1; // 0x8
u16 hpNumbersNoBars:1; // 0x10
u16 transformSpecies;
enum Species transformSpecies;
};
struct BattleAnimationInfo

View File

@ -96,7 +96,7 @@ void SetBattlerData(enum BattlerId battlerId);
void SetBattlerAiData(enum BattlerId battler, struct AiLogicData *aiData);
void RestoreBattlerData(enum BattlerId battlerId);
enum Move GetAIChosenMove(enum BattlerId battlerId);
u32 GetTotalBaseStat(u32 species);
u32 GetTotalBaseStat(enum Species species);
bool32 IsTruantMonVulnerable(enum BattlerId battlerAI, enum BattlerId opposingBattler);
bool32 AI_BattlerAtMaxHp(enum BattlerId battler);
u32 GetHealthPercentage(enum BattlerId battler);

View File

@ -76,7 +76,7 @@ extern s16 gBattleAnimArgs[ANIM_ARGS_COUNT];
extern u8 gAnimMoveTurn;
extern enum BattlerId gBattleAnimAttacker;
extern enum BattlerId gBattleAnimTarget;
extern u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern enum Species gAnimBattlerSpecies[MAX_BATTLERS_COUNT];
extern u8 gAnimCustomPanning;
extern u16 gAnimMoveIndex;
@ -168,7 +168,7 @@ u32 GetBattleMonSpritePalettesMask(u8 playerLeft, u8 playerRight, u8 opponentLef
u8 GetSpritePalIdxByBattler(enum BattlerId battler);
s16 CloneBattlerSpriteWithBlend(enum AnimBattler animBattler);
void DestroySpriteWithActiveSheet(struct Sprite *sprite);
u8 CreateInvisibleSpriteCopy(int battler, u8 spriteId, int species);
u8 CreateInvisibleSpriteCopy(enum BattlerId battler, u8 spriteId, enum Species species);
void AnimLoadCompressedBgTilemapHandleContest(struct BattleAnimBgData *data, const void *src, bool32 largeScreen);
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset);
void UpdateAnimBg3ScreenSize(bool8 largeScreenSize);
@ -191,7 +191,7 @@ void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union Aff
bool8 RunAffineAnimFromTaskData(struct Task *task);
void AnimThrowProjectile(struct Sprite *sprite);
void GetBgDataForTransform(struct BattleAnimBgData *out, enum BattlerId battler);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, enum BattlerId battler);
u8 CreateAdditionalMonSpriteForMoveAnim(enum Species species, bool32 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool32 isShiny, enum BattlerId battler);
void ResetSpriteRotScale_PreserveAffine(struct Sprite *sprite);
void Trade_MoveSelectedMonToTarget(struct Sprite *sprite);
void DestroyAnimVisualTaskAndDisableBlend(u8 taskId);
@ -422,7 +422,7 @@ u8 SmokescreenImpact(s16 x, s16 y, bool8 persist);
u32 UnpackSelectedBattlePalettes(s16 selector);
u8 GetBattlerSpriteFinal_Y(enum BattlerId battler, u16 species, bool8 a3);
u8 GetBattlerSpriteFinal_Y(enum BattlerId battler, enum Species species, bool32 a3);
extern const struct OamData gOamData_AffineOff_ObjNormal_8x16;
extern const struct OamData gOamData_AffineNormal_ObjBlend_16x16;

View File

@ -220,7 +220,7 @@ struct ChooseMoveStruct
enum Move moves[MAX_MON_MOVES];
u8 currentPp[MAX_MON_MOVES];
u8 maxPp[MAX_MON_MOVES];
u16 species;
enum Species species;
enum Type monTypes[3];
struct ZMoveData zmove;
};

View File

@ -12,8 +12,8 @@ bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattlerId, u8 attacker, u8 ta
void InitAndLaunchSpecialAnimation(enum BattlerId activeBattlerId, enum BattlerId attacker, enum BattlerId target, u8 tableId);
bool8 IsBattleSEPlaying(enum BattlerId battler);
void BattleLoadMonSpriteGfx(struct Pokemon *mon, enum BattlerId battler);
void DecompressGhostFrontPic(u32 battler);
void BattleGfxSfxDummy2(u16 species);
void DecompressGhostFrontPic(enum BattlerId battler);
void BattleGfxSfxDummy2(enum Species species);
void DecompressTrainerFrontPic(u16 frontPicId, enum BattlerId battler);
void DecompressTrainerBackPic(enum TrainerPicID backPicId, enum BattlerId battler);
void FreeTrainerFrontPicPalette(u16 frontPicId);
@ -36,7 +36,7 @@ void SetBattlerSpriteAffineMode(u8 affineMode);
void CreateEnemyShadowSprite(enum BattlerId battler);
void LoadAndCreateEnemyShadowSprites(void);
void SpriteCB_SetInvisible(struct Sprite *sprite);
void SetBattlerShadowSpriteCallback(enum BattlerId battler, u16 species);
void SetBattlerShadowSpriteCallback(enum BattlerId battler, enum Species species);
void HideBattlerShadowSprite(enum BattlerId battler);
void FillAroundBattleWindows(void);
void ClearTemporarySpeciesSpriteData(enum BattlerId battler, bool32 dontClearTransform, bool32 dontClearSubstitute);

View File

@ -9,8 +9,8 @@
// For displaying a multi battle partner's Pokémon in the party menu
struct MultiPartnerMenuPokemon
{
/*0x00*/ u16 species;
/*0x02*/ u16 heldItem;
/*0x00*/ enum Species species;
/*0x02*/ enum Item heldItem;
/*0x04*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
/*0x0F*/ u8 level;
/*0x10*/ u16 hp;
@ -109,7 +109,7 @@ void SetTypeBeforeUsingMove(enum Move move, enum BattlerId battler);
bool32 IsWildMonSmart(void);
u8 CreateNPCTrainerPartyFromTrainer(struct Pokemon *party, const struct Trainer *trainer, bool32 firstTrainer, u32 battleTypeFlags);
void ModifyPersonalityForNature(u32 *personality, u32 newNature);
u32 GeneratePersonalityForGender(u32 gender, u32 species);
u32 GeneratePersonalityForGender(u32 gender, enum Species species);
void CustomTrainerPartyAssignMoves(struct Pokemon *mon, const struct TrainerMon *partyEntry);
bool32 CanPlayerForfeitNormalTrainerBattle(void);
bool32 DidPlayerForfeitNormalTrainerBattle(void);

View File

@ -258,7 +258,7 @@ s32 CalculateMoveDamageVars(struct BattleContext *ctx);
s32 DoFixedDamageMoveCalc(struct BattleContext *ctx);
s32 ApplyModifiersAfterDmgRoll(struct BattleContext *ctx, s32 dmg);
uq4_12_t CalcTypeEffectivenessMultiplier(struct BattleContext *ctx);
uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(enum Move move, u16 speciesDef, enum Ability abilityDef);
uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(enum Move move, enum Species speciesDef, enum Ability abilityDef);
uq4_12_t GetTypeModifier(enum Type atkType, enum Type defType);
uq4_12_t GetOverworldTypeEffectiveness(struct Pokemon *mon, enum Type moveType);
void UpdateMoveResultFlags(uq4_12_t modifier, u16 *resultFlags);
@ -271,14 +271,14 @@ void ActivateUltraBurst(enum BattlerId battler);
bool32 IsBattlerMegaEvolved(enum BattlerId battler);
bool32 IsBattlerPrimalReverted(enum BattlerId battler);
bool32 IsBattlerUltraBursted(enum BattlerId battler);
u32 GetBattleFormChangeTargetSpecies(enum BattlerId battler, enum FormChanges method, enum Ability ability);
enum Species GetBattleFormChangeTargetSpecies(enum BattlerId battler, enum FormChanges method, enum Ability ability);
bool32 TryRevertPartyMonFormChange(u32 partyIndex);
bool32 TryBattleFormChange(enum BattlerId battler, enum FormChanges method, enum Ability ability);
bool32 DoBattlersShareType(enum BattlerId battler1, enum BattlerId battler2);
bool32 CanBattlerGetOrLoseItem(enum BattlerId fromBattler, enum BattlerId battler, enum Item itemId);
u32 GetBattlerVisualSpecies(enum BattlerId battler);
enum Species GetBattlerVisualSpecies(enum BattlerId battler);
bool32 TryClearIllusion(enum BattlerId battler, enum Ability ability);
u32 GetIllusionMonSpecies(enum BattlerId battler);
enum Species GetIllusionMonSpecies(enum BattlerId battler);
struct Pokemon *GetIllusionMonPtr(enum BattlerId battler);
void ClearIllusionMon(enum BattlerId battler);
u32 GetIllusionMonPartyId(struct Pokemon *party, struct Pokemon *mon, struct Pokemon *partnerMon, enum BattlerId battler);
@ -289,7 +289,7 @@ uq4_12_t GetBadgeBoostModifier(void);
enum DamageCategory GetBattleMoveCategory(enum Move move);
void SetDynamicMoveCategory(enum BattlerId battlerAtk, enum BattlerId battlerDef, enum Move move);
bool32 CanFling(enum BattlerId battlerAtk, enum Ability abilityAtk);
bool32 IsTelekinesisBannedSpecies(u16 species);
bool32 IsTelekinesisBannedSpecies(enum Species species);
bool32 IsHealBlockPreventingMove(enum BattlerId battler, enum Move move);
bool32 IsGravityPreventingMove(enum Move move);
bool32 IsBelchPreventingMove(enum BattlerId battler, enum Move move);
@ -422,6 +422,6 @@ bool32 CanUseMoveConsecutively(enum BattlerId battler);
void TryResetConsecutiveUseCounter(enum BattlerId battler);
void SetOrClearRageVolatile(void);
enum BattlerId GetTargetBySlot(enum BattlerId battlerAtk, enum BattlerId battlerDef);
bool32 IsNaturalEnemy(u32 speciesAttacker, u32 speciesTarget);
bool32 IsNaturalEnemy(enum Species speciesAttacker, enum Species speciesTarget);
#endif // GUARD_BATTLE_UTIL_H

View File

@ -5,7 +5,7 @@
struct SignatureZMove
{
u16 species;
enum Species species;
enum Item item;
enum Move move;
enum Move zmove;
@ -18,7 +18,7 @@ void ActivateZMove(enum BattlerId battler);
bool32 IsViableZMove(enum BattlerId battler, enum Move move);
bool32 TryChangeZTrigger(enum BattlerId battler, u32 moveIndex);
enum Move GetTypeBasedZMove(enum Move move);
enum Move GetSignatureZMove(enum Move move, u32 species, enum Item item);
enum Move GetSignatureZMove(enum Move move, enum Species species, enum Item item);
bool32 MoveSelectionDisplayZMove(enum Move zmove, enum BattlerId battler);
void SetZEffect(void);
void AssignUsableZMoves(enum BattlerId battler, enum Move *moves);

File diff suppressed because it is too large Load Diff

View File

@ -87,7 +87,7 @@ enum {
struct ContestPokemon
{
u16 species;
enum Species species;
u8 nickname[POKEMON_NAME_LENGTH + 1];
u8 trainerName[PLAYER_NAME_LENGTH + 1];
u8 trainerGfxId;
@ -124,8 +124,8 @@ struct ContestTempSave
struct ContestMoveAnimData
{
u16 species;
u16 targetSpecies;
enum Species species;
enum Species targetSpecies;
bool8 hasTargetAnim:1;
u8 isShiny:1;
u8 targetIsShiny:1;
@ -355,7 +355,7 @@ void SetContestants(enum ContestCategories contestType, u8 rank);
void SetLinkAIContestants(enum ContestCategories contestType, u8 rank, bool32 isPostgame);
u8 GetContestEntryEligibility(struct Pokemon *pkmn);
void CalculateRound1Points(enum ContestCategories contestCategory);
bool8 IsSpeciesNotUnown(u16 species);
bool8 IsSpeciesNotUnown(enum Species species);
bool8 Contest_IsMonsTurnDisabled(u8 contestant);
void SaveLinkContestResults(void);
void SortContestants(bool8 useRanking);

View File

@ -63,8 +63,8 @@ struct TrainerMon
const u8 *ev;
u32 iv;
enum Move moves[MAX_MON_MOVES];
u16 species;
u16 heldItem;
enum Species species;
enum Item heldItem;
enum Ability ability;
u8 lvl;
enum PokeBall ball:8;

View File

@ -2,6 +2,7 @@
#define GUARD_DAYCARE_H
#include "constants/daycare.h"
#include "constants/species.h"
struct RecordMixingDaycareMail
{
@ -21,10 +22,10 @@ void GetDaycareCost(void);
u8 GetNumLevelsGainedFromDaycare(void);
void TriggerPendingDaycareEgg(void);
void RejectEggFromDayCare(void);
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation);
void CreateEgg(struct Pokemon *mon, enum Species species, bool8 setHotSpringsLocation);
void GiveEggFromDaycare(void);
bool8 ShouldEggHatch(void);
u16 GetSelectedMonNicknameAndSpecies(void);
enum Species GetSelectedMonNicknameAndSpecies(void);
void GetDaycareMonNicknames(void);
u8 GetDaycareState(void);
u8 GetDaycareCompatibilityScore(struct DayCare *daycare);
@ -32,8 +33,8 @@ void SetDaycareCompatibilityString(void);
bool8 NameHasGenderSymbol(const u8 *name, u8 genderRatio);
void ShowDaycareLevelMenu(void);
void ChooseSendDaycareMon(void);
u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves);
bool8 SpeciesCanLearnEggMove(u16 species, enum Move move);
u8 GetEggMovesBySpecies(enum Species species, u16 *eggMoves);
bool8 SpeciesCanLearnEggMove(enum Species species, enum Move move);
void StorePokemonInDaycare(struct Pokemon *mon, struct DaycareMon *daycareMon);
u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves);

View File

@ -76,11 +76,11 @@ bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet *src
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffer);
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, s32 species, u32 personality, bool32 isEgg);
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality);
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, enum Species species, u32 personality, bool32 isEgg);
void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePicIsEgg(void *dest, s32 species, u32 personality, bool8 isFrontPic, bool32 isEgg);
void LoadSpecialPokePic(void *dest, enum Species species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePicIsEgg(void *dest, enum Species species, u32 personality, bool8 isFrontPic, bool32 isEgg);
u32 GetDecompressedDataSize(const u32 *ptr);
bool32 IsCompressedData(const u32 *ptr);

View File

@ -79,6 +79,6 @@ u32 CalculateDexNavShinyRolls(void);
void IncrementDexNavChain(void);
bool32 OnStep_DexNavSearch(void);
extern u16 gDexNavSpecies;
extern enum Species gDexNavSpecies;
#endif // GUARD_DEXNAV_H

View File

@ -146,7 +146,7 @@ void ClearObjectEventMovement(struct ObjectEvent *objectEvent, struct Sprite *sp
void ObjectEventClearHeldMovement(struct ObjectEvent *objectEvent);
void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *objectEvent);
struct Pokemon *GetFirstLiveMon(void);
u16 GetOverworldWeatherSpecies(u16 species);
enum Species GetOverworldWeatherSpecies(enum Species species);
void UpdateFollowingPokemon(void);
void RemoveFollowingPokemon(void);
struct ObjectEvent *GetFollowerObject(void);
@ -263,7 +263,7 @@ bool8 IsBerryTreeSparkling(u8 localId, u8 mapNum, u8 mapGroup);
const struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
u8 TrySpawnObjectEventTemplate(const struct ObjectEventTemplate *objectEventTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY);
bool8 GetFollowerInfo(u32 *species, bool32 *shiny, bool32 *female);
const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32 shiny, bool32 female);
const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(enum Species species, bool32 shiny, bool32 female);
u16 GetObjectEventFlagIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup);
void CopyObjectGraphicsInfoToSpriteTemplate(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);

View File

@ -6,8 +6,8 @@ void LoadEvoSparkleSpriteAndPal(void);
u8 EvolutionSparkles_SpiralUpward(u16 palNum);
u8 EvolutionSparkles_ArcDown(void);
u8 EvolutionSparkles_CircleInward(void);
u8 EvolutionSparkles_SprayAndFlash(u16 species);
u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species);
u8 EvolutionSparkles_SprayAndFlash(enum Species species);
u8 EvolutionSparkles_SprayAndFlash_Trade(enum Species species);
u8 CycleEvolutionMonSprite(u8 preEvoSpriteId, u8 postEvoSpriteId);
#endif // GUARD_EVOLUTION_GRAPHICS_H

View File

@ -1,9 +1,11 @@
#ifndef GUARD_EVOLUTION_SCENE_H
#define GUARD_EVOLUTION_SCENE_H
void BeginEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId);
void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId);
void TradeEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, u8 preEvoSpriteId, u8 partyId);
#include "constants/species.h"
void BeginEvolutionScene(struct Pokemon *mon, enum Species postEvoSpecies, bool32 canStopEvo, u8 partyId);
void EvolutionScene(struct Pokemon *mon, enum Species postEvoSpecies, bool32 canStopEvo, u8 partyId);
void TradeEvolutionScene(struct Pokemon *mon, enum Species postEvoSpecies, u8 preEvoSpriteId, u8 partyId);
extern void (*gCB2_AfterEvolution)(void);

View File

@ -47,7 +47,7 @@ void SpriteCB_AshLaunch(struct Sprite *sprite);
void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority);
u8 CreateMonSprite_PicBox(enum Species species, s16 x, s16 y, u8 subpriority);
void StartEscapeRopeFieldEffect(void);
void FieldEffectFreeGraphicsResources(struct Sprite *sprite);
bool8 IsRockClimbActive(void);

View File

@ -1,6 +1,8 @@
#ifndef GUARD_FIELD_SPECIALS_H
#define GUARD_FIELD_SPECIALS_H
#include "constants/species.h"
extern bool8 gBikeCyclingChallenge;
extern u8 gBikeCollisions;
extern u16 gScrollableMultichoice_ScrollOffset;
@ -35,7 +37,7 @@ void SetPCBoxToSendMon(u8 boxId);
void PreparePartyForSkyBattle(void);
void GetObjectPosition(u16*, u16*, u32, u32);
bool32 CheckObjectAtXY(u32, u32);
bool32 CheckPartyHasSpecies(u32);
bool32 CheckPartyHasSpecies(enum Species);
bool8 CutMoveRuinValleyCheck(void);
void CutMoveOpenDottedHoleDoor(void);

View File

@ -1,6 +1,8 @@
#ifndef GUARD_FRONTIER_UTIL_H
#define GUARD_FRONTIER_UTIL_H
#include "constants/species.h"
void CallFrontierUtilFunc(void);
u8 GetFrontierBrainStatus(void);
void CopyFrontierTrainerText(u8 whichText, u16 trainerId);
@ -18,7 +20,7 @@ void CopyFrontierBrainTrainerName(u8 *dst);
bool8 IsFrontierBrainFemale(void);
void SetFrontierBrainObjEventGfx_2(void);
void CreateFrontierBrainPokemon(void);
u16 GetFrontierBrainMonSpecies(u8 monId);
enum Species GetFrontierBrainMonSpecies(u8 monId);
void SetFrontierBrainObjEventGfx(u8 facility);
u16 GetFrontierBrainMonMove(u8 monId, u8 moveSlotId);
u8 GetFrontierBrainMonNature(u8 monId);

View File

@ -331,7 +331,7 @@ struct BerryCrush
struct ApprenticeMon
{
u16 species;
enum Species species;
enum Move moves[MAX_MON_MOVES];
enum Item item;
};
@ -356,8 +356,8 @@ struct Apprentice
struct BattleTowerPokemon
{
u16 species;
u16 heldItem;
enum Species species;
enum Item heldItem;
enum Move moves[MAX_MON_MOVES];
u8 level;
u8 ppBonuses;
@ -399,8 +399,8 @@ struct EmeraldBattleTowerRecord
struct BattleTowerInterview
{
u16 playerSpecies;
u16 opponentSpecies;
enum Species playerSpecies;
enum Species opponentSpecies;
u8 opponentName[PLAYER_NAME_LENGTH + 1];
u8 opponentMonNickname[VANILLA_POKEMON_NAME_LENGTH + 1];
u8 opponentLanguage;
@ -630,8 +630,8 @@ struct SecretBaseParty
{
u32 personality[PARTY_SIZE];
enum Move moves[PARTY_SIZE * MAX_MON_MOVES];
u16 species[PARTY_SIZE];
u16 heldItems[PARTY_SIZE];
enum Species species[PARTY_SIZE];
enum Item heldItems[PARTY_SIZE];
u8 levels[PARTY_SIZE];
u8 EVs[PARTY_SIZE];
};
@ -691,7 +691,7 @@ struct Roamer
{
/*0x00*/ u32 ivs;
/*0x04*/ u32 personality;
/*0x08*/ u16 species;
/*0x08*/ enum Species species;
/*0x0A*/ u16 hp;
/*0x0C*/ u8 level;
/*0x0D*/ u8 statusA;
@ -838,7 +838,7 @@ struct ContestWinner
{
u32 personality;
u32 trainerId;
u16 species;
enum Species species;
u8 contestCategory;
u8 monName[VANILLA_POKEMON_NAME_LENGTH + 1];
u8 trainerName[PLAYER_NAME_LENGTH + 1];
@ -852,7 +852,7 @@ struct Mail
/*0x00*/ u16 words[MAIL_WORDS_COUNT];
/*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH];
/*0x1E*/ u16 species;
/*0x1E*/ enum Species species;
/*0x20*/ enum Item itemId;
};
@ -998,7 +998,7 @@ struct WonderNews
struct WonderCard
{
u16 flagId; // Event flag (sReceivedGiftFlags) + WONDER_CARD_FLAG_OFFSET
u16 iconSpecies;
enum Species iconSpecies;
u32 idNumber;
u8 type:2; // CARD_TYPE_*
u8 bgType:4;
@ -1017,7 +1017,7 @@ struct WonderCardMetadata
u16 battlesWon;
u16 battlesLost;
u16 numTrades;
u16 iconSpecies;
enum Species iconSpecies;
u16 stampData[2][MAX_STAMP_CARD_STAMPS]; // First element is STAMP_SPECIES, second is STAMP_ID
};
@ -1144,7 +1144,7 @@ struct SaveBlock1
/*0x27CC*/ TVShow tvShows[TV_SHOWS_COUNT];
/*0x27CA*/ //u8 padding4[2];
/*0x2B50*/ PokeNews pokeNews[POKE_NEWS_COUNT];
/*0x2B90*/ u16 outbreakPokemonSpecies;
/*0x2B90*/ enum Species outbreakPokemonSpecies;
/*0x2B92*/ u8 outbreakLocationMapNum;
/*0x2B93*/ u8 outbreakLocationMapGroup;
/*0x2B94*/ u8 outbreakPokemonLevel;

View File

@ -32,7 +32,7 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x02*/ enum Species species;
/*0x04*/ u16 words[6];
/*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x18*/ u8 language;
@ -43,7 +43,7 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x02*/ enum Species species;
/*0x04*/ u16 words[6];
/*0x10*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x18*/ u8 language;
@ -54,7 +54,7 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x02*/ enum Species species;
/*0x04*/ u8 friendshipHighNybble:4;
u8 questionAsked:4;
/*0x05*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
@ -71,7 +71,7 @@ typedef union // size = 0x24
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 words[2];
/*0x06*/ u16 species;
/*0x06*/ enum Species species;
/*0x08*/ u8 filler_08[3];
/*0x0B*/ u8 name[12];
/*0x17*/ u8 language;
@ -81,13 +81,13 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x02*/ enum Species species;
/*0x04*/ u8 pokemonName[VANILLA_POKEMON_NAME_LENGTH + 1];
/*0x0F*/ u8 trainerName[PLAYER_NAME_LENGTH + 1];
/*0x17*/ u8 unused[3];
/*0x1A*/ u8 random;
/*0x1B*/ u8 random2;
/*0x1C*/ u16 randomSpecies;
/*0x1C*/ enum Species randomSpecies;
/*0x1E*/ u8 language;
/*0x1F*/ u8 pokemonNameLanguage;
} nameRaterShow;
@ -96,7 +96,7 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 species;
/*0x02*/ enum Species species;
/*0x04*/ u16 words[2];
/*0x08*/ u8 pokemonNickname[VANILLA_POKEMON_NAME_LENGTH + 1];
/*0x13*/ u8 contestCategory:3;
@ -114,9 +114,9 @@ typedef union // size = 0x24
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x0A*/ u16 species;
/*0x0A*/ enum Species species;
/*0x0C*/ u8 opponentName[PLAYER_NAME_LENGTH + 1];
/*0x14*/ u16 defeatedSpecies;
/*0x14*/ enum Species defeatedSpecies;
/*0x16*/ u16 numFights;
/*0x18*/ u16 words[1];
/*0x1A*/ u8 btLevel;
@ -131,14 +131,14 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 losingSpecies;
/*0x02*/ enum Species losingSpecies;
/*0x04*/ u8 losingTrainerName[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 loserAppealFlag;
/*0x0D*/ u8 round1Placing;
/*0x0E*/ u8 round2Placing;
/*0x0F*/ u8 winnerAppealFlag;
/*0x10*/ enum Move move;
/*0x12*/ u16 winningSpecies;
/*0x12*/ enum Species winningSpecies;
/*0x14*/ u8 winningTrainerName[PLAYER_NAME_LENGTH + 1];
/*0x1C*/ u8 category;
/*0x1D*/ u8 winningTrainerLanguage;
@ -164,11 +164,11 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 speciesOpponent;
/*0x02*/ enum Species speciesOpponent;
/*0x04*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x0C*/ u8 linkOpponentName[PLAYER_NAME_LENGTH + 1];
/*0x14*/ enum Move move;
/*0x16*/ u16 speciesPlayer;
/*0x16*/ enum Species speciesPlayer;
/*0x18*/ u8 battleType;
/*0x19*/ u8 language;
/*0x1A*/ u8 linkOpponentLanguage;
@ -211,7 +211,7 @@ typedef union // size = 0x24
/*0x03*/ u8 language2;
/*0x04*/ u8 nickname[VANILLA_POKEMON_NAME_LENGTH + 1];
/*0x0F*/ u8 ball;
/*0x10*/ u16 species;
/*0x10*/ enum Species species;
/*0x12*/ u8 nBallsUsed;
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
/*0x1B*/ //u8 padding;
@ -237,8 +237,8 @@ typedef union // size = 0x24
/*0x01*/ bool8 active;
/*0x02*/ u8 language;
/*0x03*/ u8 filler_03[9];
/*0x0C*/ u16 species;
/*0x0E*/ u16 species2;
/*0x0C*/ enum Species species;
/*0x0E*/ enum Species species2;
/*0x10*/ u8 nBallsUsed;
/*0x11*/ u8 outcome;
/*0x12*/ mapsec_u8_t location;
@ -252,7 +252,7 @@ typedef union // size = 0x24
/*0x01*/ bool8 active;
/*0x02*/ u8 nBites;
/*0x03*/ u8 nFails;
/*0x04*/ u16 species;
/*0x04*/ enum Species species;
/*0x06*/ u8 language;
/*0x07*/ u8 filler_07[12];
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
@ -266,7 +266,7 @@ typedef union // size = 0x24
/*0x02*/ u16 numPokeCaught;
/*0x04*/ u16 caughtPoke;
/*0x06*/ u16 steps;
/*0x08*/ u16 species;
/*0x08*/ enum Species species;
/*0x0A*/ mapsec_u8_t location;
/*0x0B*/ u8 language;
/*0x0C*/ u8 filler_0C[7];
@ -335,12 +335,12 @@ typedef union // size = 0x24
struct {
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 lastOpponentSpecies;
/*0x02*/ enum Species lastOpponentSpecies;
/*0x04*/ mapsec_u8_t location;
/*0x05*/ u8 outcome;
/*0x06*/ u16 caughtMonBall;
/*0x08*/ u16 balls;
/*0x0A*/ u16 poke1Species;
/*0x0A*/ enum Species poke1Species;
/*0x0C*/ u16 lastUsedMove;
/*0x0E*/ u8 language;
/*0x0F*/ u8 filler_0f[4];
@ -355,7 +355,7 @@ typedef union // size = 0x24
/*0x02*/ u8 avgLevel;
/*0x03*/ u8 numDecorations;
/*0x04*/ u8 decorations[4];
/*0x08*/ u16 species;
/*0x08*/ enum Species species;
/*0x0A*/ enum Move move;
/*0x0C*/ u8 language;
/*0x0D*/ u8 filler_0d[6];
@ -380,8 +380,8 @@ typedef union // size = 0x24
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ enum Move move;
/*0x04*/ u16 foeSpecies;
/*0x06*/ u16 species;
/*0x04*/ enum Species foeSpecies;
/*0x06*/ enum Species species;
/*0x08*/ u16 otherMoves[3];
/*0x0E*/ u16 betterMove;
/*0x10*/ u8 nOtherMoves;
@ -421,10 +421,10 @@ typedef union // size = 0x24
/*0x00*/ u8 kind;
/*0x01*/ bool8 active;
/*0x02*/ u16 winStreak;
/*0x04*/ u16 species1;
/*0x06*/ u16 species2;
/*0x08*/ u16 species3;
/*0x0A*/ u16 species4;
/*0x04*/ enum Species species1;
/*0x06*/ enum Species species2;
/*0x08*/ enum Species species3;
/*0x0A*/ enum Species species4;
/*0x0C*/ u8 language;
/*0x0D*/ u8 facilityAndMode;
/*0x0E*/ u8 filler_0e[5];
@ -478,7 +478,7 @@ typedef union // size = 0x24
/*0x02*/ u8 unused1;
/*0x03*/ u8 unused3;
/*0x04*/ enum Move moves[MAX_MON_MOVES];
/*0x0C*/ u16 species;
/*0x0C*/ enum Species species;
/*0x0E*/ u16 unused2;
/*0x10*/ u8 locationMapNum;
/*0x11*/ u8 locationMapGroup;

View File

@ -13,7 +13,7 @@ int GetStringWidthDifference(int fontId, const u8 *str, int totalWidth, int lett
int GetMaxWidthInMenuTable(const struct MenuAction *actions, int numActions);
int GetMaxWidthInSubsetOfMenuTable(const struct MenuAction *actions, const u8 *actionIds, int numActions);
int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu);
void CopyMonCategoryText(u16 species, u8 *dest);
void CopyMonCategoryText(enum Species species, u8 *dest);
u8 *GetStringClearToWidth(u8 *dest, int fontId, const u8 *str, int totalStringWidth);
void PadNameString(u8 *dest, u8 padChar);
void ConvertInternationalPlayerNameStripChar(u8 *str, u8 removeChar);

View File

@ -4,6 +4,7 @@
#include "librfu.h"
#include "link.h"
#include "AgbRfu_LinkManager.h"
#include "constants/species.h"
#define RFUCMD_MASK 0xFF00
@ -103,7 +104,7 @@ struct __attribute__((packed, aligned(2))) RfuGameData
{
struct RfuGameCompatibilityData compatibility;
u8 partnerInfo[RFU_CHILD_MAX];
u16 tradeSpecies;
enum Species tradeSpecies;
u8 activity:7;
u8 startedActivity:1;
u8 playerGender:1;
@ -294,7 +295,7 @@ void UpdateGameData_SetActivity(u8 activity, u32 partnerInfo, bool32 startedActi
void CreateTask_RfuReconnectWithParent(const u8 *name, u16 trainerId);
void SetHostRfuWonderFlags(bool32 hasNews, bool32 hasCard);
void ResetHostRfuGameData(void);
void SetTradeBoardRegisteredMonInfo(u32 type, u32 species, u32 level);
void SetTradeBoardRegisteredMonInfo(u32 type, enum Species species, u32 level);
void InitializeRfuLinkManager_EnterUnionRoom(void);
void TryConnectToUnionRoomParent(const u8 *name, struct RfuGameData *parent, u8 activity);
bool32 IsUnionRoomListenTaskActive(void);

View File

@ -24,7 +24,7 @@ void ClearAllMail(void);
void ClearMail(struct Mail *mail);
bool8 MonHasMail(struct Pokemon *mon);
u8 GiveMailToMonByItemId(struct Pokemon *mon, enum Item itemId);
u16 SpeciesToMailSpecies(u16 species, u32 personality);
u16 SpeciesToMailSpecies(enum Species species, u32 personality);
u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail);
void TakeMailFromMon(struct Pokemon *mon);

View File

@ -164,7 +164,7 @@ struct MoveInfo
};
} twoTurnAttack;
struct {
u16 species;
enum Species species;
u16 power:9;
u16 numOfHits:7;
} speciesPowerOverride;

View File

@ -2,6 +2,7 @@
#define GUARD_NAMING_SCREEN_H
#include "main.h"
#include "constants/species.h"
enum {
NAMING_SCREEN_PLAYER,
@ -15,6 +16,6 @@ enum {
extern void BattleMainCB2(void);
void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGender, u32 monPersonality, MainCallback returnCallback);
void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpeciesOrPlayerGender, u16 monGender, u32 monPersonality, MainCallback returnCallback);
#endif // GUARD_NAMING_SCREEN_H

View File

@ -9,7 +9,7 @@ enum GeneratedMonOrigin
GIFTMON_ORIGIN
};
u32 GetSynchronizedNature(enum GeneratedMonOrigin origin, u32 species);
u32 GetSynchronizedGender(enum GeneratedMonOrigin origin, u32 species);
u32 GetSynchronizedNature(enum GeneratedMonOrigin origin, enum Species species);
u32 GetSynchronizedGender(enum GeneratedMonOrigin origin, enum Species species);
#endif // GUARD_OW_SYNCHRONIZE_H

View File

@ -26,7 +26,7 @@ extern const struct PokeBallSprite gPokeBalls[];
#define POKEBALL_PLAYER_SLIDEIN 0xFD
u8 DoPokeballSendOutAnimation(enum BattlerId battler, s16 pan, u8 kindOfThrow);
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, u16 species);
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subpriority, u8 delay, u32 fadePalettes, enum Species species);
u8 CreateTradePokeballSprite(u8 monSpriteId, u8 monPalNum, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 delay, u32 fadePalettes);
void StartHealthboxSlideIn(enum BattlerId battler);
void DoHitAnimHealthboxEffect(enum BattlerId battler);

View File

@ -9,10 +9,10 @@ u16 GetNationalPokedexCount(u8 caseID);
u32 GetRegionalPokedexCount(u8 caseID);
u16 GetHoennPokedexCount(u8 caseID);
u16 GetKantoPokedexCount(u8 caseID);
u8 DisplayCaughtMonDexPage(u16 species, bool32 isShiny, u32 personality);
u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y);
u8 DisplayCaughtMonDexPage(enum Species species, bool32 isShiny, u32 personality);
u32 Pokedex_CreateCaughtMonSprite(enum Species species, s32 x, s32 y);
s8 GetSetPokedexFlag(enum NationalDexOrder nationalDexNo, u8 caseID);
void DrawFootprint(u8 windowId, u16 species);
void DrawFootprint(u8 windowId, enum Species species);
u16 CreateMonSpriteFromNationalDexNumber(enum NationalDexOrder nationalNum, s16 x, s16 y, u16 paletteSlot);
bool16 HasAllRegionalMons(void);
bool16 HasAllHoennMons(void);
@ -20,7 +20,7 @@ bool16 HasAllKantoMons(void);
void ResetPokedexScrollPositions(void);
bool16 HasAllMons(void);
void CB2_OpenPokedex(void);
void PrintMonMeasurements(u16 species, u32 owned);
void PrintMonMeasurements(enum Species species, u32 owned);
u8* ConvertMonHeightToString(u32 height);
u8* ConvertMonWeightToString(u32 weight);

View File

@ -11,7 +11,7 @@ enum PokedexAreaScreenState
DEX_UPDATE_AREA_SCREEN
};
void DisplayPokedexAreaScreen(u16 species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState);
void ShowPokedexAreaScreen(u16 species, u8 *screenSwitchState);
void DisplayPokedexAreaScreen(enum Species species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState);
void ShowPokedexAreaScreen(enum Species species, u8 *screenSwitchState);
#endif // GUARD_POKEDEX_AREA_SCREEN_H

View File

@ -14,7 +14,7 @@ extern u8 gDexCryScreenState;
bool8 LoadCryWaveformWindow(struct CryScreenWindow *window, u8 windowId);
void UpdateCryWaveformWindow(u8 windowId);
void CryScreenPlayButton(u16 species);
void CryScreenPlayButton(enum Species species);
bool8 LoadCryMeter(struct CryScreenWindow *window, u8 windowId);
void FreeCryScreen(void);

View File

@ -336,7 +336,7 @@ struct Volatiles
struct BattlePokemon
{
/*0x00*/ u16 species;
/*0x00*/ enum Species species;
/*0x02*/ u16 attack;
/*0x04*/ u16 defense;
/*0x06*/ u16 speed;
@ -383,7 +383,7 @@ struct Evolution
{
u16 method;
u16 param;
u16 targetSpecies;
enum Species targetSpecies;
const struct EvolutionParam *params;
};
@ -623,7 +623,7 @@ struct LevelUpMove
struct FormChange
{
u16 method;
u16 targetSpecies;
enum Species targetSpecies;
u16 param1;
u16 param2;
u16 param3;
@ -633,7 +633,7 @@ struct FormChange
struct FormChangeContext
{
enum FormChanges method:16;
u16 currentSpecies;
enum Species currentSpecies;
u16 partyItemUsed;
u16 multichoiceSelection;
u16 heldItem;
@ -730,16 +730,16 @@ void ZeroBoxMonData(struct BoxPokemon *boxMon);
void ZeroMonData(struct Pokemon *mon);
void ZeroPlayerPartyMons(void);
void ZeroEnemyPartyMons(void);
u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter);
void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateRandomMon(struct Pokemon *mon, u16 species, u8 level);
void CreateRandomMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u8 fixedIv);
void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV);
u32 GetMonPersonality(enum Species species, u8 gender, u8 nature, u8 unownLetter);
void CreateMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateRandomMon(struct Pokemon *mon, enum Species species, u8 level);
void CreateRandomMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u8 fixedIv);
void CreateBoxMon(struct BoxPokemon *boxMon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId);
void CreateMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV);
void SetBoxMonIVs(struct BoxPokemon *mon, u8 fixedIV);
void SetBoxMonPerfectIVs(struct BoxPokemon *mon, u32 numPerfect);
void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
void CreateMaleMon(struct Pokemon *mon, enum Species species, u8 level);
void CreateMonWithIVsPersonality(struct Pokemon *mon, enum Species species, u8 level, u32 ivs, u32 personality);
void CreateBattleTowerMon(struct Pokemon *mon, struct BattleTowerPokemon *src);
void CreateBattleTowerMon_HandleLevel(struct Pokemon *mon, struct BattleTowerPokemon *src, bool8 lvl50);
void CreateApprenticeMon(struct Pokemon *mon, const struct Apprentice *src, u8 monId);
@ -769,10 +769,10 @@ u8 CountAliveMonsInBattle(u8 caseId, enum BattlerId battler);
u8 GetDefaultMoveTarget(enum BattlerId battler);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
bool32 IsPersonalityFemale(u16 species, u32 personality);
u8 GetGenderFromSpeciesAndPersonality(enum Species species, u32 personality);
bool32 IsPersonalityFemale(enum Species species, u32 personality);
u32 GetUnownSpeciesId(u32 personality);
void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, enum BattlerPosition battlerPosition);
void SetMultiuseSpriteTemplateToPokemon(enum Species speciesTag, enum BattlerPosition battlerPosition);
void SetMultiuseSpriteTemplateToTrainerBack(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition);
void SetMultiuseSpriteTemplateToTrainerFront(enum TrainerPicID trainerPicId, enum BattlerPosition battlerPosition);
@ -798,33 +798,33 @@ u8 CalculateEnemyPartyCount(void);
u8 CalculateEnemyPartyCountInSide(enum BattlerId battler);
u8 GetMonsStateToDoubles(void);
u8 GetMonsStateToDoubles_2(void);
enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum);
enum Ability GetAbilityBySpecies(enum Species species, u8 abilityNum);
enum Ability GetMonAbility(struct Pokemon *mon);
void CreateSecretBaseEnemyParty(struct SecretBase *secretBaseRecord);
enum TrainerPicID GetSecretBaseTrainerPicIndex(void);
enum TrainerClassID GetSecretBaseTrainerClass(void);
bool8 IsPlayerPartyAndPokemonStorageFull(void);
bool8 IsPokemonStorageFull(void);
const u8 *GetSpeciesName(u16 species);
const u8 *GetSpeciesCategory(u16 species);
const u8 *GetSpeciesPokedexDescription(u16 species);
u32 GetSpeciesHeight(u16 species);
u32 GetSpeciesWeight(u16 species);
enum Type GetSpeciesType(u16 species, u8 slot);
enum Ability GetSpeciesAbility(u16 species, u8 slot);
u32 GetSpeciesBaseHP(u16 species);
u32 GetSpeciesBaseAttack(u16 species);
u32 GetSpeciesBaseDefense(u16 species);
u32 GetSpeciesBaseSpAttack(u16 species);
u32 GetSpeciesBaseSpDefense(u16 species);
u32 GetSpeciesBaseSpeed(u16 species);
u32 GetSpeciesBaseStat(u16 species, u32 statIndex);
const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species);
const u16 *GetSpeciesTeachableLearnset(u16 species);
const u16 *GetSpeciesEggMoves(u16 species);
const struct Evolution *GetSpeciesEvolutions(u16 species);
const u16 *GetSpeciesFormTable(u16 species);
const struct FormChange *GetSpeciesFormChanges(u16 species);
const u8 *GetSpeciesName(enum Species species);
const u8 *GetSpeciesCategory(enum Species species);
const u8 *GetSpeciesPokedexDescription(enum Species species);
u32 GetSpeciesHeight(enum Species species);
u32 GetSpeciesWeight(enum Species species);
enum Type GetSpeciesType(enum Species species, u8 slot);
enum Ability GetSpeciesAbility(enum Species species, u8 slot);
u32 GetSpeciesBaseHP(enum Species species);
u32 GetSpeciesBaseAttack(enum Species species);
u32 GetSpeciesBaseDefense(enum Species species);
u32 GetSpeciesBaseSpAttack(enum Species species);
u32 GetSpeciesBaseSpDefense(enum Species species);
u32 GetSpeciesBaseSpeed(enum Species species);
u32 GetSpeciesBaseStat(enum Species species, u32 statIndex);
const struct LevelUpMove *GetSpeciesLevelUpLearnset(enum Species species);
const u16 *GetSpeciesTeachableLearnset(enum Species species);
const u16 *GetSpeciesEggMoves(enum Species species);
const struct Evolution *GetSpeciesEvolutions(enum Species species);
const u16 *GetSpeciesFormTable(enum Species species);
const struct FormChange *GetSpeciesFormChanges(enum Species species);
u8 CalculatePPWithBonus(enum Move move, u8 ppBonuses, u8 moveIndex);
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
void RemoveBoxMonPPBonus(struct BoxPokemon *mon, u8 moveIndex);
@ -838,23 +838,23 @@ u8 GetItemEffectParamOffset(enum BattlerId battler, enum Item itemId, u8 effectB
u8 *UseStatIncreaseItem(enum Item itemId);
u8 GetNature(struct Pokemon *mon);
u8 GetNatureFromPersonality(u32 personality);
u32 GetGMaxTargetSpecies(u32 species);
enum Species GetGMaxTargetSpecies(enum Species species);
bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct EvolutionParam *params, struct Pokemon *tradePartner, u32 partyId, bool32 *canStopEvo, enum EvoState evoState);
u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 evolutionItem, struct Pokemon *tradePartner, bool32 *canStopEvo, enum EvoState evoState);
enum Species GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 evolutionItem, struct Pokemon *tradePartner, bool32 *canStopEvo, enum EvoState evoState);
bool8 IsMonPastEvolutionLevel(struct Pokemon *mon);
u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum);
enum Species NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum);
u32 NationalToRegionalOrder(enum NationalDexOrder nationalNum);
enum KantoDexOrder NationalToKantoOrder(enum NationalDexOrder nationalNum);
enum HoennDexOrder NationalToHoennOrder(enum NationalDexOrder nationalNum);
enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species);
u32 SpeciesToRegionalPokedexNum(u16 species);
enum KantoDexOrder SpeciesToKantoPokedexNum(u16 species);
enum HoennDexOrder SpeciesToHoennPokedexNum(u16 species);
enum NationalDexOrder SpeciesToNationalPokedexNum(enum Species species);
u32 SpeciesToRegionalPokedexNum(enum Species species);
enum KantoDexOrder SpeciesToKantoPokedexNum(enum Species species);
enum HoennDexOrder SpeciesToHoennPokedexNum(enum Species species);
enum NationalDexOrder RegionalToNationalOrder(u32 regionNum);
enum NationalDexOrder KantoToNationalOrder(enum KantoDexOrder kantoNum);
enum NationalDexOrder HoennToNationalOrder(enum HoennDexOrder hoennNum);
void DrawSpindaSpots(u32 personality, u8 *dest, bool32 isSecondFrame);
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
void EvolutionRenameMon(struct Pokemon *mon, enum Species oldSpecies, enum Species newSpecies);
u8 GetPlayerFlankId(void);
u16 GetLinkTrainerFlankId(u8 linkPlayerId);
s32 GetBattlerMultiplayerId(u16 id);
@ -862,27 +862,27 @@ u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
u16 ModifyStatByNature(u8 nature, u16 stat, enum Stat statIndex);
void AdjustFriendship(struct Pokemon *mon, u8 event);
u8 CalculateFriendshipBonuses(struct Pokemon *mon, u32 modifier, enum HoldEffect itemHoldEffect);
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
void MonGainEVs(struct Pokemon *mon, enum Species defeatedSpecies);
u16 GetMonEVCount(struct Pokemon *mon);
bool8 TryIncrementMonLevel(struct Pokemon *mon);
u8 CanLearnTeachableMove(u16 species, enum Move move);
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
u16 SpeciesToPokedexNum(u16 species);
bool32 IsSpeciesInRegionalDex(u16 species);
bool32 IsSpeciesInKantoDex(u16 species);
bool32 IsSpeciesInHoennDex(u16 species);
u8 CanLearnTeachableMove(enum Species species, enum Move move);
u8 GetLevelUpMovesBySpecies(enum Species species, u16 *moves);
u16 SpeciesToPokedexNum(enum Species species);
bool32 IsSpeciesInRegionalDex(enum Species species);
bool32 IsSpeciesInKantoDex(enum Species species);
bool32 IsSpeciesInHoennDex(enum Species species);
u16 GetBattleBGM(void);
void PlayBattleBGM(void);
void PlayMapChosenOrBattleBGM(u16 songId);
void CreateTask_PlayMapChosenOrBattleBGM(u16 songId);
const u16 *GetMonFrontSpritePal(struct Pokemon *mon);
const u16 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, bool32 isShiny, u32 personality);
const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(u16 species, bool32 isShiny, u32 personality, bool32 isEgg);
const u16 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFemale);
const u16 *GetMonSpritePalFromSpeciesIsEgg(u16 species, bool32 isShiny, bool32 isFemale, bool32 isEgg);
const u16 *GetMonSpritePalFromSpeciesAndPersonality(enum Species species, bool32 isShiny, u32 personality);
const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(enum Species species, bool32 isShiny, u32 personality, bool32 isEgg);
const u16 *GetMonSpritePalFromSpecies(enum Species species, bool32 isShiny, bool32 isFemale);
const u16 *GetMonSpritePalFromSpeciesIsEgg(enum Species species, bool32 isShiny, bool32 isFemale, bool32 isEgg);
bool32 IsMoveHM(enum Move move);
bool32 CannotForgetMove(enum Move move);
bool8 IsMonSpriteNotFlipped(u16 species);
bool8 IsMonSpriteNotFlipped(enum Species species);
s8 GetMonFlavorRelation(struct Pokemon *mon, enum Flavor flavor);
s8 GetFlavorRelationByPersonality(u32 personality, enum Flavor flavor);
bool8 IsTradedMon(struct Pokemon *mon);
@ -893,28 +893,28 @@ void SetMonPreventsSwitchingString(void);
void SetWildMonHeldItem(void);
bool8 IsMonShiny(struct Pokemon *mon);
const u8 *GetTrainerPartnerName(void);
void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u8 panMode);
void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, u8 panModeAnimFlag);
void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneFrame);
void BattleAnimateFrontSprite(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panMode);
void DoMonFrontSpriteAnimation(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panModeAnimFlag);
void PokemonSummaryDoMonAnimation(struct Sprite *sprite, enum Species species, bool8 oneFrame);
void StopPokemonAnimationDelayTask(void);
void BattleAnimateBackSprite(struct Sprite *sprite, u16 species);
void BattleAnimateBackSprite(struct Sprite *sprite, enum Species species);
u8 GetOpposingLinkMultiBattlerId(bool8 rightSide, u8 multiplayerId);
enum TrainerPicID FacilityClassToPicIndex(u16 facilityClass);
enum TrainerPicID PlayerGenderToFrontTrainerPicId(enum Gender playerGender);
void HandleSetPokedexFlag(enum NationalDexOrder nationalNum, u8 caseId, u32 personality);
void HandleSetPokedexFlagFromMon(struct Pokemon *mon, u32 caseId);
bool8 HasTwoFramesAnimation(u16 species);
bool8 HasTwoFramesAnimation(enum Species species);
struct MonSpritesGfxManager *CreateMonSpritesGfxManager(u8 managerId, u8 mode);
void DestroyMonSpritesGfxManager(u8 managerId);
u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum);
u16 GetFormSpeciesId(u16 speciesId, u8 formId);
u16 GetFormSpeciesId(enum Species speciesId, u8 formId);
u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId);
u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx);
bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method);
enum Species GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx);
bool32 DoesSpeciesHaveFormChangeMethod(enum Species species, enum FormChanges method);
u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove);
void RemoveIVIndexFromList(u8 *ivs, u8 selectedIv);
void TrySpecialOverworldEvo(void);
bool32 SpeciesHasGenderDifferences(u16 species);
bool32 SpeciesHasGenderDifferences(enum Species species);
bool32 TryFormChange(struct Pokemon *mon, enum FormChanges method);
bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method);
void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method);
@ -922,27 +922,27 @@ u32 GetMonFriendshipScore(struct Pokemon *pokemon);
u32 GetMonAffectionHearts(struct Pokemon *pokemon);
void UpdateMonPersonality(struct BoxPokemon *boxMon, u32 personality);
u8 CalculatePartyCount(struct Pokemon *party);
u16 SanitizeSpeciesId(u16 species);
bool32 IsSpeciesEnabled(u16 species);
enum PokemonCry GetCryIdBySpecies(u16 species);
u16 GetSpeciesPreEvolution(u16 species);
u16 SanitizeSpeciesId(enum Species species);
bool32 IsSpeciesEnabled(enum Species species);
enum PokemonCry GetCryIdBySpecies(enum Species species);
u16 GetSpeciesPreEvolution(enum Species species);
void HealPokemon(struct Pokemon *mon);
void HealBoxPokemon(struct BoxPokemon *boxMon);
void UpdateDaysPassedSinceFormChange(u16 days);
void TrySetDayLimitToFormChange(struct Pokemon *mon);
enum Type CheckDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId battler, enum MonState state);
uq4_12_t GetDynamaxLevelHPMultiplier(u32 dynamaxLevel, bool32 inverseMultiplier);
u32 GetRegionalFormByRegion(u32 species, u32 region);
bool32 IsSpeciesForeignRegionalForm(u32 species, u32 currentRegion);
u32 GetRegionalFormByRegion(enum Species species, u32 region);
bool32 IsSpeciesForeignRegionalForm(enum Species species, u32 currentRegion);
enum Type GetTeraTypeFromPersonality(struct Pokemon *mon);
bool8 ShouldSkipFriendshipChange(void);
struct Pokemon *GetSavedPlayerPartyMon(u32 index);
u8 *GetSavedPlayerPartyCount(void);
void SavePlayerPartyMon(u32 index, struct Pokemon *mon);
bool32 IsSpeciesOfType(u32 species, enum Type type);
bool32 IsSpeciesOfType(enum Species species, enum Type type);
struct BoxPokemon *GetSelectedBoxMonFromPcOrParty(void);
u32 GiveScriptedMonToPlayer(struct Pokemon *mon, u8 slot);
void ChangePokemonNicknameWithCallback(void (*callback)(void));
bool32 HasShedinjaHPHandling(u32 species);
bool32 HasShedinjaHPHandling(enum Species species);
#endif // GUARD_POKEMON_H

View File

@ -193,7 +193,7 @@ enum AnimFunctionIDs
ANIM_COUNT,
};
enum BackAnim GetSpeciesBackAnimSet(u16 species);
enum BackAnim GetSpeciesBackAnimSet(enum Species species);
void LaunchAnimationTaskForFrontSprite(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId);
void StartMonSummaryAnimation(struct Sprite *sprite, enum AnimFunctionIDs frontAnimId);
void LaunchAnimationTaskForBackSprite(struct Sprite *sprite, enum BackAnim backAnimSet);

View File

@ -3,31 +3,31 @@
extern const struct SpritePalette gMonIconPaletteTable[];
const u8 *GetMonIconTiles(u16 species, u32 personality);
const u8 *GetMonIconTilesIsEgg(u16 species, u32 personality, bool32 isEgg);
const u8 *GetMonIconTiles(enum Species species, u32 personality);
const u8 *GetMonIconTilesIsEgg(enum Species species, u32 personality, bool32 isEgg);
void TryLoadAllMonIconPalettesAtOffset(u16 offset);
u8 GetValidMonIconPalIndex(u16 species);
const u8 *GetMonIconPtr(u16 species, u32 personality);
const u8 *GetMonIconPtrIsEgg(u16 species, u32 personality, bool32 isEgg);
const u16 *GetValidMonIconPalettePtr(u16 species);
u16 GetIconSpecies(u16 species, u32 personality);
u8 GetValidMonIconPalIndex(enum Species species);
const u8 *GetMonIconPtr(enum Species species, u32 personality);
const u8 *GetMonIconPtrIsEgg(enum Species species, u32 personality, bool32 isEgg);
const u16 *GetValidMonIconPalettePtr(enum Species species);
enum Species GetIconSpecies(enum Species species, u32 personality);
u16 GetUnownLetterByPersonality(u32 personality);
u16 GetIconSpeciesNoPersonality(u16 species);
enum Species GetIconSpeciesNoPersonality(enum Species species);
void LoadMonIconPalettes(void);
void LoadMonIconPalette(u16 species);
void LoadMonIconPalette(enum Species species);
void FreeMonIconPalettes(void);
u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 CreateMonIconNoPersonalityIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 isEgg);
void FreeMonIconPalette(u16 species);
u8 CreateMonIconNoPersonality(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority);
u8 CreateMonIconNoPersonalityIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 isEgg);
void FreeMonIconPalette(enum Species species);
void FreeAndDestroyMonIconSprite(struct Sprite *sprite);
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg);
u8 CreateMonIcon(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
u8 CreateMonIconIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg);
u8 UpdateMonIconFrame(struct Sprite *sprite);
void LoadMonIconPalette(u16 species);
void LoadMonIconPalettePersonality(u16 species, u32 personality);
void LoadMonIconPalette(enum Species species);
void LoadMonIconPalettePersonality(enum Species species, u32 personality);
void SpriteCB_MonIcon(struct Sprite *sprite);
void SetPartyHPBarSprite(struct Sprite *sprite, u8 animNum);
u8 GetMonIconPaletteIndexFromSpecies(u16 species);
void SafeFreeMonIconPalette(u16 species);
u8 GetMonIconPaletteIndexFromSpecies(enum Species species);
void SafeFreeMonIconPalette(enum Species species);
#endif // GUARD_POKEMON_ICON_H

View File

@ -4,7 +4,7 @@
#include "main.h"
void StartPokemonJump(u16 partyId, MainCallback exitCallback);
bool32 IsSpeciesAllowedInPokemonJump(u16 species);
bool32 IsSpeciesAllowedInPokemonJump(enum Species species);
void IsPokemonJumpSpeciesInParty(void);
void ResetPokemonJumpRecords(void);
void ShowPokemonJumpRecords(void);

View File

@ -12,7 +12,7 @@ bool8 TryStartRoamerEncounter(void);
void UpdateRoamerHPStatus(struct Pokemon *mon);
void SetRoamerInactive(u32 roamerIndex);
void GetRoamerLocation(u32 roamerIndex, u8 *mapGroup, u8 *mapNum);
bool8 TryAddRoamer(u16 species, u8 level);
bool8 TryAddRoamer(enum Species species, u8 level);
void MoveAllRoamersToOtherLocationSets(void);
void MoveAllRoamers(void);

View File

@ -37,7 +37,7 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, bool8
void DrawMultichoiceMenuInternal(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 cursorPos, const struct MenuAction *actions, int count);
bool8 ScriptMenu_YesNo(u8 left, u8 top);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y);
bool8 ScriptMenu_ShowPokemonPic(enum Species species, u8 x, u8 y);
bool8 (*ScriptMenu_HidePokemonPic(void))(void);
int ConvertPixelWidthToTileWidth(int width);
u8 CreateWindowFromRect(u8 x, u8 y, u8 width, u8 height);

View File

@ -1,10 +1,10 @@
#ifndef GUARD_SCRIPT_POKEMON_UTIL_H
#define GUARD_SCRIPT_POKEMON_UTIL_H
u32 ScriptGiveMon(u16 species, u8 level, enum Item item);
u8 ScriptGiveEgg(u16 species);
void CreateScriptedWildMon(u16 species, u8 level, enum Item item);
void CreateScriptedDoubleWildMon(u16 species, u8 level, enum Item item, u16 species2, u8 level2, enum Item item2);
u32 ScriptGiveMon(enum Species species, u8 level, enum Item item);
u8 ScriptGiveEgg(enum Species species);
void CreateScriptedWildMon(enum Species species, u8 level, enum Item item);
void CreateScriptedDoubleWildMon(enum Species species, u8 level, enum Item item, enum Species species2, u8 level2, enum Item item2);
void ScriptSetMonMoveSlot(u8 monIndex, enum Move move, u8 slot);
void ReducePlayerPartyToSelectedMons(void);
void HealPlayerParty(void);

View File

@ -24,13 +24,13 @@ bool8 IsBGMPausedOrStopped(void);
void FadeInBGM(u8 speed);
void FadeOutBGM(u8 speed);
bool8 IsBGMStopped(void);
void PlayCry_Normal(u16 species, s8 pan);
void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority);
void PlayCry_ByMode(u16 species, s8 pan, u8 mode);
void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode);
void PlayCry_Script(u16 species, u8 mode);
void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode);
void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode);
void PlayCry_Normal(enum Species species, s8 pan);
void PlayCry_NormalNoDucking(enum Species species, s8 pan, s8 volume, u8 priority);
void PlayCry_ByMode(enum Species species, s8 pan, u8 mode);
void PlayCry_ReleaseDouble(enum Species species, s8 pan, u8 mode);
void PlayCry_Script(enum Species species, u8 mode);
void PlayCry_DuckNoRestore(enum Species species, s8 pan, u8 mode);
void PlayCryInternal(enum Species species, s8 pan, s8 volume, u8 priority, u8 mode);
bool8 IsCryFinished(void);
void StopCryAndClearCrySongs(void);
void StopCry(void);

View File

@ -1058,8 +1058,8 @@ void TieBreakScore(u32 sourceLine, enum RandomTag rngTag, enum ScoreTieResolutio
void TieBreakTarget(u32 sourceLine, enum TargetTieResolution targetTieRes, u32 value);
void ClearFlagAfterTest(void);
void ClearVarAfterTest(void);
void OpenPokemon(u32 sourceLine, enum BattleTrainer trainer, u32 species);
void OpenPokemonMulti(u32 sourceLine, enum BattleTrainer trainer, u32 species);
void OpenPokemon(u32 sourceLine, enum BattleTrainer trainer, enum Species species);
void OpenPokemonMulti(u32 sourceLine, enum BattleTrainer trainer, enum Species species);
void ClosePokemon(u32 sourceLine);
void RNGSeed_(u32 sourceLine, rng_value_t seed);

View File

@ -15,8 +15,8 @@ extern const struct WindowTemplate gTradeEvolutionSceneYesNoWindowTemplate;
s32 GetGameProgressForLinkTrade(void);
void CB2_StartCreateTradeMenu(void);
void CB2_LinkTrade(void);
int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, u16 species2, u16 species, bool8 isModernFatefulEncounter);
int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct RfuGameCompatibilityData partner, u16 playerSpecies2, u16 partnerSpecies, enum Type requestedType, u16 playerSpecies, bool8 isModernFatefulEncounter);
int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, enum Species species2, enum Species species, bool8 isModernFatefulEncounter);
int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct RfuGameCompatibilityData partner, enum Species playerSpecies2, enum Species partnerSpecies, enum Type requestedType, enum Species playerSpecies, bool8 isModernFatefulEncounter);
int CanSpinTradeMon(struct Pokemon *mon, u16 monIdx);
void InitTradeSequenceBgGpuRegs(void);
void LinkTradeDrawWindow(void);

View File

@ -2,6 +2,7 @@
#define GUARD_TRAINER_CARD_H
#include "constants/trainer_card.h"
#include "constants/species.h"
struct TrainerCard
{
@ -39,7 +40,7 @@ struct TrainerCard
/*0x4E*/ u8 monIconTint; // FRLG only
/*0x4F*/ u8 unionRoomClass;
/*0x50*/ u8 stickers[TRAINER_CARD_STICKER_TYPES]; // FRLG only
/*0x54*/ u16 monSpecies[PARTY_SIZE]; // FRLG only
/*0x54*/ enum Species monSpecies[PARTY_SIZE]; // FRLG only
// Note: Link players use linkHasAllFrontierSymbols, not the field below,
// which they use for a Wonder Card flag id instead (see CreateTrainerCardInBuffer)
/*0x60*/ bool16 hasAllFrontierSymbols;

View File

@ -8,8 +8,8 @@
#define F_MON_PIC_NO_AFFINE (1 << 7)
bool16 ResetAllPicSprites(void);
u16 CreateMonPicSprite_Affine(u16 species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateMonPicSprite(u16 species, bool8 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateMonPicSprite_Affine(enum Species species, bool8 isShiny, u32 personality, u8 flags, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 CreateMonPicSprite(enum Species species, bool8 isShiny, u32 personality, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
u16 FreeAndDestroyMonPicSprite(u16 spriteId);
u16 FreeAndDestroyMonPicSpriteNoPalette(u16 spriteId);
u16 CreateTrainerPicSprite(u16 species, bool8 isFrontPic, s16 x, s16 y, u8 paletteSlot, u16 paletteTag);
@ -17,6 +17,6 @@ u16 FreeAndDestroyTrainerPicSprite(u16 spriteId);
u16 CreateTrainerCardTrainerPicSprite(u16 species, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
u16 PlayerGenderToFrontTrainerPicId_Debug(enum Gender gender, bool8 getClass);
void CopyTrainerBackspriteFramesToDest(enum TrainerPicID trainerPicId, u8 *dest);
u16 CreateTrainerCardMonIconSprite(u16 species, bool8 isShiny, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
u16 CreateTrainerCardMonIconSprite(enum Species species, bool8 isShiny, u32 personality, bool8 isFrontPic, u16 destX, u16 destY, u8 paletteSlot, u8 windowId);
#endif // GUARD_TRAINER_POKEMON_SPRITES_H

View File

@ -1,11 +1,13 @@
#ifndef GUARD_TV_H
#define GUARD_TV_H
#include "constants/species.h"
extern u8 *const gTVStringVarPtrs[3];
void ClearTVShowData(void);
void TryPutBreakingNewsOnAir(void);
void TryPutBattleSeminarOnAir(u16 foeSpecies, u16 species, u8 moveIndex, const u16 *movePtr, u16 betterMove);
void TryPutBattleSeminarOnAir(enum Species foeSpecies, enum Species species, u8 moveIndex, const u16 *movePtr, enum Move betterMove);
void TryPutFrontierTVShowOnAir(u16 winStreak, u8 facilityAndMode);
void DoTVShow(void);
void DoTVShowInSearchOfTrainers(void);
@ -39,11 +41,11 @@ void IncrementDailyBerryBlender(void);
void SanitizeTVShowsForRuby(TVShow *shows);
void TryPutSafariFanClubOnAir(u8 monsCaught, u8 pokeblocksUsed);
bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, enum Flavor flavor, u8 color, u8 sheen, u8 language);
void SetPokemonAnglerSpecies(u16 species);
void SetPokemonAnglerSpecies(enum Species species);
void UpdateTVShowsPerDay(u16 days);
void TryPutPokemonTodayOnAir(void);
void TryPutSecretBaseVisitOnAir(void);
void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, enum Move move, u16 speciesPlayer, u16 speciesOpponent);
void PutBattleUpdateOnTheAir(u8 opponentLinkPlayerId, enum Move move, enum Species speciesPlayer, enum Species speciesOpponent);
void BravoTrainerPokemonProfile_BeforeInterview1(enum Move move);
void InterviewBefore(void);
void InterviewAfter(void);

View File

@ -138,9 +138,9 @@ struct UnionRoomTrade
u16 type;
u32 playerPersonality;
u8 offerPlayerId;
u16 playerSpecies;
enum Species playerSpecies;
u16 playerLevel;
u16 species;
enum Species species;
u16 level;
u32 personality;
};
@ -148,7 +148,7 @@ struct UnionRoomTrade
extern u8 gPlayerCurrActivity;
extern struct RfuGameCompatibilityData gRfuPartnerCompatibilityData;
extern u16 gUnionRoomOfferedSpecies;
extern enum Species gUnionRoomOfferedSpecies;
extern enum Type gUnionRoomRequestedMonType;
u8 CreateTask_CreateTradeMenu(void);

View File

@ -18,7 +18,7 @@ struct WildPokemon
{
u8 minLevel;
u8 maxLevel;
u16 species;
enum Species species;
};
struct WildPokemonInfo
@ -60,7 +60,7 @@ bool8 UpdateRepelCounter(void);
bool8 TryDoDoubleWildBattle(void);
bool8 StandardWildEncounter_Debug(void);
u32 CalculateChainFishingShinyRolls(void);
void CreateWildMon(u16 species, u8 level);
void CreateWildMon(enum Species species, u8 level);
u16 GetCurrentMapWildMonHeaderId(void);
u32 ChooseWildMonIndex_Land(void);
u32 ChooseWildMonIndex_Water(void);

View File

@ -314,7 +314,7 @@ static u16 GetRandomAlternateMove(u8 monId)
u8 i, j;
u8 id;
u8 numLearnsetMoves;
u16 species;
enum Species species;
const struct LevelUpMove *learnset;
bool32 needTMs = FALSE;
enum Move move = MOVE_NONE;
@ -434,7 +434,7 @@ static bool8 TrySetMove(u8 monId, enum Move move)
return TRUE;
}
static void GetLatestLearnedMoves(u16 species, u16 *moves)
static void GetLatestLearnedMoves(enum Species species, u16 *moves)
{
u8 i, j;
u8 level, numLearnsetMoves;
@ -564,7 +564,7 @@ static void CreateApprenticeMenu(u8 menu)
top = 6;
for (i = 0; i < MULTI_PARTY_SIZE; i++)
{
u16 species;
enum Species species;
u32 speciesTableId;
speciesTableId = APPRENTICE_SPECIES_ID(i);

View File

@ -290,8 +290,8 @@ void BattleAI_SetupFlags(void)
// The check is here because wild natural enemies are not symmetrical.
if (B_WILD_NATURAL_ENEMIES && IsDoubleBattle())
{
u32 speciesLeft = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES);
u32 speciesRight = GetMonData(&gEnemyParty[1], MON_DATA_SPECIES);
enum Species speciesLeft = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES);
enum Species speciesRight = GetMonData(&gEnemyParty[1], MON_DATA_SPECIES);
if (IsNaturalEnemy(speciesLeft, speciesRight))
gAiThinkingStruct->aiFlags[B_BATTLER_1] |= AI_FLAG_ATTACKS_PARTNER;
if (IsNaturalEnemy(speciesRight, speciesLeft))
@ -760,7 +760,7 @@ void SetAiLogicDataForTurn(struct AiLogicData *aiData)
enum Ability GetPartyMonAbility(struct Pokemon *mon)
{
// Doesn't have any special handling yet
u32 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
enum Ability ability = GetSpeciesAbility(species, GetMonData(mon, MON_DATA_ABILITY_NUM));
return ability;
}

View File

@ -1042,7 +1042,7 @@ static bool32 FindMonWithFlagsAndSuperEffective(enum BattlerId battler, u16 flag
for (u32 monIndex = firstId; monIndex < lastId; monIndex++)
{
u16 species;
enum Species species;
enum Ability monAbility;
uq4_12_t typeMultiplier;
u16 moveFlags = 0;

View File

@ -298,7 +298,7 @@ bool32 ShouldRecordStatusMove(enum Move move)
return RandomPercentage(RNG_AI_ASSUME_ALL_STATUS, ASSUME_ALL_STATUS_ODDS) && IsBattleMoveStatus(move);
}
static bool32 ShouldFailForIllusion(u32 illusionSpecies, enum BattlerId battlerId)
static bool32 ShouldFailForIllusion(enum Species illusionSpecies, enum BattlerId battlerId)
{
u32 learnsetMoveIndex;
const struct LevelUpMove *learnset;
@ -338,7 +338,7 @@ void SetBattlerData(enum BattlerId battlerId)
{
if (!BattlerHasAi(battlerId) && gAiThinkingStruct->saved[battlerId].saved)
{
u32 species, illusionSpecies;
enum Species species, illusionSpecies;
enum BattleSide side = GetBattlerSide(battlerId);
// Simulate Illusion
@ -449,7 +449,7 @@ bool32 IsBattlerTrapped(enum BattlerId battlerAtk, enum BattlerId battlerDef)
return FALSE;
}
u32 GetTotalBaseStat(u32 species)
u32 GetTotalBaseStat(enum Species species)
{
return GetSpeciesBaseHP(species)
+ GetSpeciesBaseAttack(species)

View File

@ -119,7 +119,7 @@ EWRAM_DATA static u8 sAnimBackgroundFadeState = 0;
EWRAM_DATA u16 gAnimMoveIndex = 0;
EWRAM_DATA enum BattlerId gBattleAnimAttacker = 0;
EWRAM_DATA enum BattlerId gBattleAnimTarget = 0;
EWRAM_DATA u16 gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {0};
EWRAM_DATA enum Species gAnimBattlerSpecies[MAX_BATTLERS_COUNT] = {SPECIES_NONE};
EWRAM_DATA u8 gAnimCustomPanning = 0;
EWRAM_DATA static bool8 sAnimHideHpBoxes = FALSE;

View File

@ -907,7 +907,7 @@ void AnimTask_MetallicShine(u8 taskId)
{
CMD_ARGS(permanent, useColor, color);
u16 species;
enum Species species;
u8 spriteId;
u8 newSpriteId;
u16 paletteNum;

View File

@ -3372,7 +3372,7 @@ void AnimTask_RolePlaySilhouette(u8 taskId)
{
bool8 isBackPic, isShiny;
u32 personality;
u16 species;
enum Species species;
s16 xOffset;
u32 priority;
u8 spriteId;
@ -5259,7 +5259,7 @@ void AnimTask_SnatchOpposingMonMove(u8 taskId)
{
u8 spriteId, spriteId2;
int personality;
u16 species;
enum Species species;
u8 subpriority;
bool8 isBackPic, isShiny;
s16 x;

View File

@ -79,7 +79,7 @@ static const struct SpriteSheet sSpriteSheets_MoveEffectMons[] =
u8 GetBattlerSpriteCoord(enum BattlerId battler, u8 coordType)
{
u8 retVal;
u16 species;
enum Species species;
struct Pokemon *mon, *illusionMon;
struct BattleSpriteInfo *spriteInfo;
@ -130,7 +130,7 @@ u8 GetBattlerSpriteCoord(enum BattlerId battler, u8 coordType)
return retVal;
}
u8 GetBattlerYDelta(enum BattlerId battler, u16 species)
u8 GetBattlerYDelta(enum BattlerId battler, enum Species species)
{
u32 personality;
struct BattleSpriteInfo *spriteInfo;
@ -168,7 +168,7 @@ u8 GetBattlerYDelta(enum BattlerId battler, u16 species)
return ret;
}
u8 GetBattlerElevation(enum BattlerId battler, u16 species)
u8 GetBattlerElevation(enum BattlerId battler, enum Species species)
{
u8 ret = 0;
if (!IsOnPlayerSide(battler))
@ -182,7 +182,7 @@ u8 GetBattlerElevation(enum BattlerId battler, u16 species)
return ret;
}
u8 GetBattlerSpriteFinal_Y(enum BattlerId battler, u16 species, bool8 a3)
u8 GetBattlerSpriteFinal_Y(enum BattlerId battler, enum Species species, bool32 a3)
{
u16 offset;
u8 y;
@ -209,7 +209,7 @@ u8 GetBattlerSpriteFinal_Y(enum BattlerId battler, u16 species, bool8 a3)
u8 GetBattlerSpriteCoord2(enum BattlerId battler, u8 coordType)
{
u16 species;
enum Species species;
struct BattleSpriteInfo *spriteInfo;
if (coordType == BATTLER_COORD_Y_PIC_OFFSET || coordType == BATTLER_COORD_Y_PIC_OFFSET_DEFAULT)
@ -257,7 +257,7 @@ u8 GetSubstituteSpriteDefault_Y(enum BattlerId battler)
u8 GetBattlerYCoordWithElevation(enum BattlerId battler)
{
u16 species;
enum Species species;
u8 y;
struct BattleSpriteInfo *spriteInfo;
@ -1870,7 +1870,7 @@ static u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
{
struct BattleSpriteInfo *spriteInfo;
enum BattlerId battler = gSprites[spriteId].data[0];
u16 species;
enum Species species;
u16 i;
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
@ -2040,7 +2040,7 @@ u8 GetBattlerSpriteBGPriorityRank(enum BattlerId battler)
}
// Create Pokémon sprite to be used for a move animation effect (e.g. Role Play / Snatch)
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, enum BattlerId battler)
u8 CreateAdditionalMonSpriteForMoveAnim(enum Species species, bool32 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool32 isShiny, enum BattlerId battler)
{
u8 spriteId;
u16 sheet = LoadSpriteSheet(&sSpriteSheets_MoveEffectMons[id]);
@ -2088,7 +2088,7 @@ void DestroySpriteAndFreeResources_(struct Sprite *sprite)
s16 GetBattlerSpriteCoordAttr(enum BattlerId battler, u8 attr)
{
u16 species;
enum Species species;
u32 personality;
int ret;
u8 size;
@ -2244,7 +2244,7 @@ void SetToPartnerPositions(enum BattlerId battler, bool8 respectMonPicOffsets, s
*y = returnY;
}
u8 CreateInvisibleSpriteCopy(int battler, u8 spriteId, int species)
u8 CreateInvisibleSpriteCopy(enum BattlerId battler, u8 spriteId, enum Species species)
{
u8 newSpriteId = CreateInvisibleSpriteWithCallback(SpriteCallbackDummy);
gSprites[newSpriteId] = gSprites[spriteId];

View File

@ -133,7 +133,7 @@ static void SoundTask_LoopSEAdjustPanning_Step(u8 taskId)
void SoundTask_PlayCryHighPitch(u8 taskId)
{
u16 species = 0;
enum Species species = 0;
s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
enum AnimBattler animBattler = gBattleAnimArgs[0];
if (IsContest())
@ -186,7 +186,7 @@ void SoundTask_PlayCryHighPitch(u8 taskId)
void SoundTask_PlayDoubleCry(u8 taskId)
{
u16 species = 0;
enum Species species = 0;
s8 pan = BattleAnimAdjustPanning(SOUND_PAN_ATTACKER);
enum AnimBattler animBattler = gBattleAnimArgs[0];
if (IsContest())
@ -252,7 +252,7 @@ void SoundTask_PlayDoubleCry(u8 taskId)
static void SoundTask_PlayDoubleCry_Step(u8 taskId)
{
u16 species = gTasks[taskId].data[1];
enum Species species = gTasks[taskId].data[1];
s8 pan = gTasks[taskId].data[2];
if (gTasks[taskId].data[9] < 2)
@ -295,7 +295,7 @@ void SoundTask_WaitForCry(u8 taskId)
void SoundTask_PlayNormalCry(u8 taskId)
{
u16 species = (GetIllusionMonSpecies(gBattleAnimAttacker) != SPECIES_NONE) ? GetIllusionMonSpecies(gBattleAnimAttacker) : gAnimBattlerSpecies[gBattleAnimAttacker];
enum Species species = (GetIllusionMonSpecies(gBattleAnimAttacker) != SPECIES_NONE) ? GetIllusionMonSpecies(gBattleAnimAttacker) : gAnimBattlerSpecies[gBattleAnimAttacker];
PlayCry_ByMode(species, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER), CRY_MODE_NORMAL);
gTasks[taskId].func = SoundTask_WaitForCry;
}
@ -307,7 +307,7 @@ void SoundTask_PlayNormalCry(u8 taskId)
void SoundTask_PlayCryWithEcho(u8 taskId)
{
u16 species;
enum Species species;
s8 pan;
gTasks[taskId].tLastCry = gBattleAnimArgs[0];
@ -329,14 +329,14 @@ void SoundTask_PlayCryWithEcho(u8 taskId)
void SoundTask_PlayDynamaxCry(u8 taskId)
{
u16 species = (GetIllusionMonSpecies(gBattleAnimAttacker) != SPECIES_NONE) ? GetIllusionMonSpecies(gBattleAnimAttacker) : gAnimBattlerSpecies[gBattleAnimAttacker];
enum Species species = (GetIllusionMonSpecies(gBattleAnimAttacker) != SPECIES_NONE) ? GetIllusionMonSpecies(gBattleAnimAttacker) : gAnimBattlerSpecies[gBattleAnimAttacker];
PlayCry_ByMode(species, BattleAnimAdjustPanning(SOUND_PAN_ATTACKER), CRY_MODE_DYNAMAX);
gTasks[taskId].func = SoundTask_WaitForCry;
}
static void SoundTask_PlayCryWithEcho_Step(u8 taskId)
{
u16 species = gTasks[taskId].tSpecies;
enum Species species = gTasks[taskId].tSpecies;
s8 pan = gTasks[taskId].tPan;
// Note the cases are not in order of execution

View File

@ -19,7 +19,7 @@ struct AnimStatsChangeData
enum BattlerId battler2;
bool8 hidBattler2;
s16 data[8];
u16 species;
enum Species species;
};
static EWRAM_DATA struct AnimStatsChangeData *sAnimStatsChangeData = {0};
@ -248,7 +248,7 @@ static void AnimMonTrace(struct Sprite *sprite)
// Only used by Curse for non-Ghost mons
void AnimTask_DrawFallingWhiteLinesOnAttacker(u8 taskId)
{
u16 species;
enum Species species;
int spriteId, newSpriteId;
u16 var0;
u32 bg1Cnt;
@ -770,7 +770,7 @@ void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId)
void StartMonScrollingBgMask(u8 taskId, int UNUSED unused, u16 scrollSpeed, enum BattlerId battler, bool8 includePartner, u8 numFadeSteps, u8 fadeStepDelay, u8 duration, const u32 *gfx, const u32 *tilemap, const u16 *palette)
{
u16 species;
enum Species species;
u8 spriteId, spriteId2;
u32 bg1Cnt;
struct BattleAnimBgData animBgData;

View File

@ -846,7 +846,7 @@ static void OakOldManHandlePlaySE(enum BattlerId battler)
static void OakOldManHandleFaintingCry(enum BattlerId battler)
{
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
enum Species species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES);
PlayCry_Normal(species, 25);
OakOldManBufferExecCompleted(battler);

View File

@ -1424,7 +1424,7 @@ static void Task_GiveExpToMon(u8 taskId)
if (GetBattlerCoordsIndex(battler) == BATTLE_COORDS_DOUBLES || monId != gBattlerPartyIndexes[battler]) // Give exp without moving the expbar.
{
struct Pokemon *mon = &gPlayerParty[monId];
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u8 level = GetMonData(mon, MON_DATA_LEVEL);
u32 currExp = GetMonData(mon, MON_DATA_EXP);
u32 nextLvlExp = gExperienceTables[gSpeciesInfo[species].growthRate][level + 1];
@ -1471,7 +1471,7 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
enum BattlerId battler = gTasks[taskId].tExpTask_battler;
struct Pokemon *mon = &gPlayerParty[monIndex];
u8 level = GetMonData(mon, MON_DATA_LEVEL);
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u32 exp = GetMonData(mon, MON_DATA_EXP);
u32 currLvlExp = gExperienceTables[gSpeciesInfo[species].growthRate][level];
u32 expToNextLvl;
@ -1487,7 +1487,7 @@ static void Task_PrepareToGiveExpWithExpBar(u8 taskId)
static void Task_GiveExpWithExpBar(u8 taskId)
{
u32 level, expAfterGain;
u16 species;
enum Species species;
u32 oldMaxHP;
s32 currExp, expOnNextLvl, newExpPoints;
@ -1710,7 +1710,7 @@ static void MoveSelectionDisplayPpNumber(enum BattlerId battler)
static void MoveSelectionDisplayMoveType(enum BattlerId battler)
{
u8 *txtPtr, *end;
u32 speciesId = gBattleMons[battler].species;
enum Species speciesId = gBattleMons[battler].species;
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleResources->bufferA[battler][4]);
txtPtr = StringCopy(gDisplayedStringBattle, gText_MoveInterfaceType);
enum Move move = moveInfo->moves[gMoveSelectionCursor[battler]];

View File

@ -343,7 +343,7 @@ static void SafariHandleChoosePokemon(enum BattlerId battler)
// Player is not a pokemon, so it can't really faint in the Safari anyway.
static void SafariHandleFaintingCry(enum BattlerId battler)
{
u16 species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
enum Species species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
PlayCry_Normal(species, 25);
BtlController_Complete(battler);

View File

@ -358,7 +358,7 @@ static void WallyHandleChooseItem(enum BattlerId battler)
// Wally's Pokémon during the tutorial is never intended to faint, so that's probably why it's different here.
static void WallyHandleFaintingCry(enum BattlerId battler)
{
u16 species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
enum Species species = GetMonData(GetBattlerMon(battler), MON_DATA_SPECIES);
PlayCry_Normal(species, 25);
BtlController_Complete(battler);

View File

@ -385,7 +385,7 @@ static void InitBtlControllersInternal(void)
bool32 IsValidForBattle(struct Pokemon *mon)
{
u32 species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG);
return (species != SPECIES_NONE
&& species != SPECIES_EGG
&& GetMonData(mon, MON_DATA_HP) != 0
@ -394,7 +394,7 @@ bool32 IsValidForBattle(struct Pokemon *mon)
bool32 IsValidForBattleButDead(struct Pokemon *mon)
{
u32 species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG);
return (species != SPECIES_NONE
&& species != SPECIES_EGG
&& GetMonData(mon, MON_DATA_IS_EGG) == FALSE);
@ -1993,7 +1993,7 @@ static bool8 ShouldDoSlideInAnim(enum BattlerId battler)
void StartSendOutAnim(enum BattlerId battler, bool32 dontClearTransform, bool32 dontClearSubstituteBit, bool32 doSlideIn)
{
u16 species;
enum Species species;
struct Pokemon *mon = GetBattlerMon(battler);
u32 sendoutType;
@ -2337,7 +2337,7 @@ void BtlController_HandleLoadMonSprite(enum BattlerId battler)
{
u32 y;
struct Pokemon *mon = GetBattlerMon(battler);
u16 species = GetBattlerVisualSpecies(battler);
enum Species species = GetBattlerVisualSpecies(battler);
if (gBattleTypeFlags & BATTLE_TYPE_GHOST && GetBattlerSide(battler) == B_SIDE_OPPONENT)
{
@ -3059,7 +3059,7 @@ static void AnimateMonAfterKnockout(enum BattlerId battler)
static void LaunchKOAnimation(enum BattlerId battlerId, u16 animId, bool32 isFront)
{
u32 species = GetBattlerVisualSpecies(battlerId);
enum Species species = GetBattlerVisualSpecies(battlerId);
u32 spriteId = gBattlerSpriteIds[battlerId];
gBattleStruct->battlerKOAnimsRunning++;
@ -3081,7 +3081,7 @@ static void LaunchKOAnimation(enum BattlerId battlerId, u16 animId, bool32 isFro
static u32 ReturnAnimIdForBattler(bool32 wasPlayerSideKnockedOut, u32 specificBattler)
{
u32 species = GetBattlerVisualSpecies(specificBattler);
enum Species species = GetBattlerVisualSpecies(specificBattler);
if (wasPlayerSideKnockedOut)
return gSpeciesInfo[species].frontAnimId;
else

View File

@ -1068,7 +1068,7 @@ static void Task_ShowAiParty(u8 taskId)
aiMons = gAiPartyData->mons[GetBattlerSide(data->aiBattlerId)];
for (i = 0; i < gAiPartyData->count[GetBattlerSide(data->aiBattlerId)]; i++)
{
u16 species = SPECIES_NONE; // Question mark
enum Species species = SPECIES_NONE; // Question mark
if (aiMons[i].wasSentInBattle && aiMons[i].species)
species = aiMons[i].species;
data->spriteIds.aiPartyIcons[i] = CreateMonIcon(species, SpriteCallbackDummy, (i * 41) + 15, 7, 1, 0);

View File

@ -1911,7 +1911,7 @@ static void InitDomeTrainers(void)
{
int i, j, k;
int monLevel;
int species[FRONTIER_PARTY_SIZE];
enum Species species[FRONTIER_PARTY_SIZE];
int monTypesBits, monTypesCount;
int trainerId;
int monId;
@ -1919,9 +1919,9 @@ static void InitDomeTrainers(void)
int *statValues;
u8 ivs = 0;
species[0] = 0;
species[1] = 0;
species[2] = 0;
species[0] = SPECIES_NONE;
species[1] = SPECIES_NONE;
species[2] = SPECIES_NONE;
rankingScores = AllocZeroed(sizeof(u16) * DOME_TOURNAMENT_TRAINERS_COUNT);
statValues = AllocZeroed(sizeof(int) * NUM_STATS);
@ -4017,7 +4017,7 @@ static bool32 IsDomeStatusMoveEffect(enum Move move)
static bool32 IsDomeRareMove(enum Move move)
{
u16 i, j;
u16 species = 0;
enum Species species = SPECIES_NONE;
for (i = 0; i < NUM_SPECIES; i++)
{
if (!IsSpeciesEnabled(i))
@ -5125,7 +5125,7 @@ static u16 GetWinningMove(int winnerTournamentId, int loserTournamentId, u8 roun
for (k = 0; k < FRONTIER_PARTY_SIZE; k++)
{
u32 personality = 0;
u32 targetSpecies = 0;
enum Species targetSpecies = SPECIES_NONE;
enum Ability targetAbility = ABILITY_NONE;
uq4_12_t typeMultiplier = 0;
do
@ -5724,7 +5724,7 @@ static void InitRandomTourneyTreeResults(void)
{
int i, j, k;
int monLevel;
int species[FRONTIER_PARTY_SIZE];
enum Species species[FRONTIER_PARTY_SIZE];
int monTypesBits;
int trainerId;
int monId;
@ -5735,9 +5735,9 @@ static void InitRandomTourneyTreeResults(void)
int *statValues;
u8 ivs = 0;
species[0] = 0;
species[1] = 0;
species[2] = 0;
species[0] = SPECIES_NONE;
species[1] = SPECIES_NONE;
species[2] = SPECIES_NONE;
if ((gSaveBlock2Ptr->frontier.domeLvlMode != -gSaveBlock2Ptr->frontier.domeBattleMode) && gSaveBlock2Ptr->frontier.challengeStatus != CHALLENGE_STATUS_SAVING)
return;
@ -5894,7 +5894,7 @@ static void DecideRoundWinners(u8 roundId)
int i;
int moveSlot, monId1, monId2;
int tournamentId1, tournamentId2;
int species;
enum Species species;
int points1 = 0, points2 = 0;
for (i = 0; i < DOME_TOURNAMENT_TRAINERS_COUNT; i++)

View File

@ -26,7 +26,7 @@ static enum MaxPowerTier GetMaxPowerTier(enum Move move);
struct GMaxMove
{
u16 species;
enum Species species;
enum Type moveType;
u16 gmaxMove;
};
@ -72,7 +72,7 @@ static const struct GMaxMove sGMaxMoveTable[] =
// Returns whether a battler can Dynamax.
bool32 CanDynamax(enum BattlerId battler)
{
u16 species = GetBattlerVisualSpecies(battler);
enum Species species = GetBattlerVisualSpecies(battler);
enum HoldEffect holdEffect = GetBattlerHoldEffectIgnoreNegation(battler);
// Prevents Zigzagoon from dynamaxing in vanilla.
@ -244,8 +244,8 @@ static enum Move GetTypeBasedMaxMove(enum BattlerId battler, enum Type type)
{
// Gigantamax check
u32 i;
u32 species = gBattleMons[battler].species;
u32 targetSpecies = species;
enum Species species = gBattleMons[battler].species;
enum Species targetSpecies = species;
enum Ability ability = GetBattlerAbility(battler);
if (!gSpeciesInfo[species].isGigantamax)

View File

@ -235,7 +235,7 @@ static void SetPerformedRentalSwap(void)
static void GenerateOpponentMons(void)
{
int i, j, k;
u16 species[FRONTIER_PARTY_SIZE];
enum Species species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
int firstMonId = 0;
u16 trainerId = 0;
@ -390,8 +390,8 @@ static void GenerateInitialRentalMons(void)
u8 factoryBattleMode;
u8 rentalRank;
u16 monId;
u16 currSpecies;
u16 species[PARTY_SIZE];
enum Species currSpecies;
enum Species species[PARTY_SIZE];
u16 monIds[PARTY_SIZE];
u16 heldItems[PARTY_SIZE];
@ -490,7 +490,7 @@ static void GetOpponentMostCommonMonType(void)
typeCounts[i] = 0;
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
u32 species = gFacilityTrainerMons[gFrontierTempParty[i]].species;
enum Species species = gFacilityTrainerMons[gFrontierTempParty[i]].species;
typeCounts[GetSpeciesType(species, 0)]++;
if (GetSpeciesType(species, 0) != GetSpeciesType(species, 1))
typeCounts[GetSpeciesType(species, 1)]++;
@ -654,8 +654,8 @@ u8 GetFactoryMonFixedIV(u8 challengeNum, bool8 isLastBattle)
void FillFactoryBrainParty(void)
{
int i, j, k;
u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
enum Species species[FRONTIER_PARTY_SIZE];
enum Item heldItems[FRONTIER_PARTY_SIZE];
int monLevel;
u8 fixedIV;
u32 otId;

View File

@ -1831,7 +1831,7 @@ static void Select_PrintRentalPkmnString(void)
static void Select_PrintMonSpecies(void)
{
u16 species;
enum Species species;
u8 x;
u8 monId = sFactorySelectScreen->cursorPos;
@ -1948,7 +1948,7 @@ static u8 Select_OptionOthers(void)
static void Select_PrintMonCategory(void)
{
u16 species;
enum Species species;
u8 text[30];
u8 x;
u8 monId = sFactorySelectScreen->cursorPos;
@ -1968,7 +1968,7 @@ static void Select_CreateMonSprite(void)
{
u8 monId = sFactorySelectScreen->cursorPos;
struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData;
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
bool8 isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
@ -1987,7 +1987,7 @@ static void Select_SetMonPicAnimating(bool8 animating)
static void Select_ReshowMonSprite(void)
{
struct Pokemon *mon;
u16 species;
enum Species species;
u32 personality;
bool8 isShiny;
@ -2017,7 +2017,7 @@ static void Select_CreateChosenMonsSprites(void)
if (sFactorySelectScreen->mons[j].selectedId == i + 1)
{
struct Pokemon *mon = &sFactorySelectScreen->mons[j].monData;
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
bool8 isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
@ -2209,7 +2209,7 @@ static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V)
static bool32 Select_AreSpeciesValid(u16 monId)
{
u8 i, j;
u32 species = gFacilityTrainerMons[monId].species;
enum Species species = gFacilityTrainerMons[monId].species;
u8 selectState = sFactorySelectScreen->selectingMonsState;
for (i = 1; i < selectState; i++)
@ -3728,7 +3728,7 @@ static void Swap_PrintPkmnSwap(void)
static void Swap_PrintMonSpecies(void)
{
u16 species;
enum Species species;
u8 x;
FillWindowPixelBuffer(SWAP_WIN_SPECIES, PIXEL_FILL(0));
@ -3828,7 +3828,7 @@ static void Swap_PrintOneActionString(u8 which)
// For printing the species name once its selected. Keep the current fade but don't keep fading in and out
static void Swap_PrintMonSpeciesAtFade(void)
{
u16 species;
enum Species species;
u8 x;
u16 pal[5];
@ -3862,7 +3862,7 @@ static void Swap_PrintMonSpeciesAtFade(void)
// Reprints the species name over the faded one after a transition
static void Swap_PrintMonSpeciesForTransition(void)
{
u16 species;
enum Species species;
u8 x;
LoadPalette(sSwapText_Pal, BG_PLTT_ID(PALNUM_FADE_TEXT), sizeof(sSwapText_Pal));
@ -3888,7 +3888,7 @@ static void Swap_PrintMonSpeciesForTransition(void)
static void Swap_PrintMonCategory(void)
{
u16 species;
enum Species species;
u8 text[30];
u8 x;
u8 monId = sFactorySwapScreen->cursorPos;
@ -4029,7 +4029,7 @@ static void OpenMonPic(u8 *spriteId, bool8 *animating, bool8 swapScreen)
static void Swap_ShowSummaryMonSprite(void)
{
struct Pokemon *mon;
u16 species;
enum Species species;
u32 personality;
bool8 isShiny;
@ -4113,7 +4113,7 @@ static void Swap_TaskCantHaveSameMons(u8 taskId)
static bool8 Swap_AlreadyHasSameSpecies(u8 monId)
{
u8 i;
u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
enum Species species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES);
for (i = 0; i < FRONTIER_PARTY_SIZE; i++)
{
@ -4245,9 +4245,9 @@ static void Task_CloseMonPic(u8 taskId)
static void Swap_CreateMonSprite(void)
{
struct Pokemon *mon;
u16 species;
enum Species species;
u32 personality;
bool8 isShiny;
bool32 isShiny;
if (!sFactorySwapScreen->inEnemyScreen)
mon = &gPlayerParty[sFactorySwapScreen->cursorPos];

View File

@ -685,7 +685,7 @@ void BattleLoadMonSpriteGfx(struct Pokemon *mon, enum BattlerId battler)
}
}
void BattleGfxSfxDummy2(u16 species)
void BattleGfxSfxDummy2(enum Species species)
{
}
@ -1160,7 +1160,7 @@ void CreateEnemyShadowSprite(enum BattlerId battler)
{
if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
{
u16 species = GetBattlerVisualSpecies(battler);
enum Species species = GetBattlerVisualSpecies(battler);
u8 size = gSpeciesInfo[species].enemyShadowSize;
gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary = CreateSprite(&gSpriteTemplate_EnemyShadow,
@ -1255,7 +1255,7 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite)
bool8 invisible = FALSE;
enum BattlerId battler = shadowSprite->tBattlerId;
struct Sprite *battlerSprite = &gSprites[gBattlerSpriteIds[battler]];
u16 transformSpecies = SanitizeSpeciesId(gBattleSpritesDataPtr->battlerData[battler].transformSpecies);
enum Species transformSpecies = SanitizeSpeciesId(gBattleSpritesDataPtr->battlerData[battler].transformSpecies);
if (!battlerSprite->inUse || !IsBattlerSpritePresent(battler))
{
@ -1283,7 +1283,7 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite)
}
else if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
{
u16 species = GetBattlerVisualSpecies(battler);
enum Species species = GetBattlerVisualSpecies(battler);
xOffset = gSpeciesInfo[species].enemyShadowXOffset + (shadowSprite->tSpriteSide == SPRITE_SIDE_LEFT ? -16 : 16);
yOffset = gSpeciesInfo[species].enemyShadowYOffset + 16;
size = gSpeciesInfo[species].enemyShadowSize;
@ -1310,7 +1310,7 @@ void SpriteCB_SetInvisible(struct Sprite *sprite)
sprite->invisible = TRUE;
}
void SetBattlerShadowSpriteCallback(enum BattlerId battler, u16 species)
void SetBattlerShadowSpriteCallback(enum BattlerId battler, enum Species species)
{
if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
{
@ -1458,7 +1458,7 @@ bool32 ShouldPlayNormalMonCry(struct Pokemon *mon)
return TRUE;
}
void DecompressGhostFrontPic(u32 battler)
void DecompressGhostFrontPic(enum BattlerId battler)
{
u16 palOffset;
enum BattlerPosition position = GetBattlerPosition(battler);

View File

@ -1980,7 +1980,7 @@ void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elem
if (!isDoubles && (elementId == HEALTHBOX_EXP_BAR || elementId == HEALTHBOX_ALL))
{
u16 species;
enum Species species;
u32 exp, currLevelExp;
s32 currExpBarValue, maxExpBarValue;
u8 level;

View File

@ -635,7 +635,7 @@ static void CB2_InitBattleInternal(void)
#define BUFFER_PARTY_VS_SCREEN_STATUS(party, flags, i) \
for ((i) = 0; (i) < PARTY_SIZE; (i)++) \
{ \
u16 species = GetMonData(&(party)[(i)], MON_DATA_SPECIES_OR_EGG); \
enum Species species = GetMonData(&(party)[(i)], MON_DATA_SPECIES_OR_EGG); \
u16 hp = GetMonData(&(party)[(i)], MON_DATA_HP); \
u32 status = GetMonData(&(party)[(i)], MON_DATA_STATUS); \
\
@ -1888,7 +1888,7 @@ void ModifyPersonalityForNature(u32 *personality, u32 newNature)
*personality -= (diff * sign);
}
u32 GeneratePersonalityForGender(u32 gender, u32 species)
u32 GeneratePersonalityForGender(u32 gender, enum Species species)
{
const struct SpeciesInfo *speciesInfo = &gSpeciesInfo[species];
if (gender == MON_GENDERLESS)
@ -2743,7 +2743,7 @@ void SpriteCB_FaintOpponentMon(struct Sprite *sprite)
{
enum BattlerId battler = sprite->sBattler;
u32 personality = GetMonData(GetBattlerMon(battler), MON_DATA_PERSONALITY);
u16 species;
enum Species species;
u8 yOffset;
if (gBattleSpritesDataPtr->battlerData[battler].transformSpecies != 0)
@ -5671,7 +5671,7 @@ static void TryEvolvePokemon(void)
bool32 canStopEvo = TRUE;
enum EvolutionMode mode = EVO_MODE_BATTLE_SPECIAL;
u32 evolutionItemArg = i;
u32 species = GetEvolutionTargetSpecies(&gPlayerParty[i], mode, evolutionItemArg, NULL, &canStopEvo, CHECK_EVO);
enum Species species = GetEvolutionTargetSpecies(&gPlayerParty[i], mode, evolutionItemArg, NULL, &canStopEvo, CHECK_EVO);
sTriedEvolving |= 1u << i;
if (species == SPECIES_NONE && (gLeveledUpInBattle & (1u << i)))
@ -5809,7 +5809,8 @@ enum Type GetDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId
{
enum Type moveType = GetMoveType(move);
enum BattleMoveEffects moveEffect = GetMoveEffect(move);
u32 species, heldItem;
enum Species species;
enum Item heldItem;
enum Type type1, type2, type3;
enum Ability ability;
enum HoldEffect holdEffect;
@ -5942,6 +5943,8 @@ enum Type GetDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId
case SPECIES_TAUROS_PALDEA_BLAZE:
case SPECIES_TAUROS_PALDEA_AQUA:
return GetSpeciesType(species, 1);
default:
break;
}
break;
case EFFECT_IVY_CUDGEL:
@ -5954,6 +5957,8 @@ enum Type GetDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId
case SPECIES_OGERPON_CORNERSTONE:
case SPECIES_OGERPON_CORNERSTONE_TERA:
return GetSpeciesType(species, 1);
default:
break;
}
break;
case EFFECT_NATURAL_GIFT:

View File

@ -1942,7 +1942,7 @@ static enum CancelerResult CancelerMultihitMoves(struct BattleContext *ctx)
for (i = 0; i < PARTY_SIZE; i++)
{
u32 species = GetMonData(&party[i], MON_DATA_SPECIES);
enum Species species = GetMonData(&party[i], MON_DATA_SPECIES);
if (species != SPECIES_NONE
&& GetMonData(&party[i], MON_DATA_HP)
&& !GetMonData(&party[i], MON_DATA_IS_EGG)

View File

@ -34,7 +34,7 @@ struct PikeRoomNPC
struct PikeWildMon
{
u16 species;
enum Species species;
u8 levelDelta;
u16 moves[MAX_MON_MOVES];
};
@ -83,7 +83,7 @@ static void PrepareTwoTrainers(void);
static void TryHealMons(u8 healCount);
static void Task_DoStatusInflictionScreenFlash(u8 taskId);
static bool8 AtLeastTwoAliveMons(void);
static u8 SpeciesToPikeMonId(u16 species);
static u8 SpeciesToPikeMonId(enum Species species);
static bool8 CanEncounterWildMon(u8 monLevel);
static u8 GetPikeQueenFightType(u8);
static bool8 StatusInflictionFadeOut(struct Task *task);
@ -844,7 +844,7 @@ static bool8 DoesAbilityPreventStatus(struct Pokemon *mon, u32 status)
return ret;
}
static bool8 DoesTypePreventStatus(u16 species, u32 status)
static bool8 DoesTypePreventStatus(enum Species species, u32 status)
{
bool8 ret = FALSE;
@ -881,7 +881,7 @@ static bool8 TryInflictRandomStatus(void)
u8 count;
u8 indices[FRONTIER_PARTY_SIZE];
u32 status;
u16 species;
enum Species species;
bool8 statusChosen;
struct Pokemon *mon;
@ -1635,7 +1635,7 @@ static bool8 CanEncounterWildMon(u8 enemyMonLevel)
return TRUE;
}
static u8 SpeciesToPikeMonId(u16 species)
static u8 SpeciesToPikeMonId(enum Species species)
{
u8 ret;

View File

@ -38,6 +38,7 @@
#include "constants/layouts.h"
#include "constants/metatile_labels.h"
#include "constants/moves.h"
#include "constants/species.h"
#include "constants/trainers.h"
#define NUM_LAYOUT_OFFSETS 8
@ -46,7 +47,7 @@ extern const struct MapLayout *const gMapLayouts[];
struct PyramidWildMon
{
u16 species;
enum Species species;
u8 lvl;
u8 abilityNum;
u16 moves[MAX_MON_MOVES];
@ -1357,7 +1358,7 @@ static void MarkPyramidTrainerAsBattled(u16 trainerId)
#if BATTLE_PYRAMID_RANDOM_ENCOUNTERS == TRUE
// check if given species evolved from a specific evolutionary stone
// if nItems is passed as 0, it will check for any EVO_ITEM case
static bool32 CheckBattlePyramidEvoRequirement(u16 species, const u16 *evoItems, u8 nItems)
static bool32 CheckBattlePyramidEvoRequirement(enum Species species, const u16 *evoItems, u8 nItems)
{
u32 i, j, k;
for (i = 0; i < NUM_SPECIES; i++)
@ -1393,7 +1394,7 @@ static bool32 CheckBattlePyramidEvoRequirement(u16 species, const u16 *evoItems,
return FALSE;
}
extern u32 GetTotalBaseStat(u32 species);
extern u32 GetTotalBaseStat(enum Species species);
void GenerateBattlePyramidWildMon(void)
{
u8 name[POKEMON_NAME_LENGTH + 1];
@ -1402,7 +1403,7 @@ void GenerateBattlePyramidWildMon(void)
u32 lvl = gSaveBlock2Ptr->frontier.lvlMode;
u16 round = (gSaveBlock2Ptr->frontier.pyramidWinStreaks[lvl] / 7) % TOTAL_PYRAMID_ROUNDS;
const struct BattlePyramidRequirement *reqs = &sBattlePyramidRequirementsByRound[round];
u16 species;
enum Species species;
u32 bstLim;
u16 *moves = NULL;
u16 *abilities = NULL;

View File

@ -1387,7 +1387,7 @@ static void Cmd_multihitresultmessage(void)
static inline bool32 DoesBattlerNegateDamage(enum BattlerId battler)
{
u32 species = gBattleMons[battler].species;
enum Species species = gBattleMons[battler].species;
enum Ability ability = GetBattlerAbility(battler);
if (gBattleMons[battler].volatiles.transformed)
@ -6842,7 +6842,7 @@ static void PutMonIconOnLvlUpBanner(void)
struct SpritePalette iconPalSheet;
struct Pokemon *mon = &gPlayerParty[gBattleStruct->expGetterMonId];
u32 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u32 personality = GetMonData(mon, MON_DATA_PERSONALITY);
iconSheet.data = GetMonIconPtr(species, personality);
@ -9142,7 +9142,7 @@ static void Cmd_healpartystatus(void)
for (i = 0; i < PARTY_SIZE; i++)
{
u16 species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG);
u8 abilityNum = GetMonData(&party[i], MON_DATA_ABILITY_NUM);
if (species != SPECIES_NONE && species != SPECIES_EGG)
@ -10247,7 +10247,8 @@ static void Cmd_pickup(void)
CMD_ARGS();
u32 i, j;
u16 species, heldItem;
enum Species species;
enum Item heldItem;
u8 lvlDivBy10;
enum Ability ability;
@ -11158,7 +11159,7 @@ static void Cmd_trysetcaughtmondexflags(void)
CMD_ARGS(const u8 *failInstr);
struct Pokemon *caughtMon = GetBattlerMon(GetCatchingBattler());
u32 species = GetMonData(caughtMon, MON_DATA_SPECIES);
enum Species species = GetMonData(caughtMon, MON_DATA_SPECIES);
u32 personality = GetMonData(caughtMon, MON_DATA_PERSONALITY);
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
@ -11178,7 +11179,7 @@ static void Cmd_displaydexinfo(void)
u32 caughtBattler = GetCatchingBattler();
struct Pokemon *mon = GetBattlerMon(caughtBattler);
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
switch (gBattleCommunication[0])
{
@ -11420,7 +11421,7 @@ static void Cmd_trainerslideout(void)
}
//note test wiglett when becomes possible
bool32 IsTelekinesisBannedSpecies(u16 species)
bool32 IsTelekinesisBannedSpecies(enum Species species)
{
species = SanitizeSpeciesId(species);
@ -11940,7 +11941,7 @@ u8 GetFirstFaintedPartyIndex(enum BattlerId battler)
// Loop through to find fainted battler.
for (i = start; i < end; ++i)
{
u32 species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG);
if (species != SPECIES_NONE
&& species != SPECIES_EGG
&& GetMonData(&party[i], MON_DATA_HP) == 0)
@ -12267,7 +12268,7 @@ void BS_JumpIfTerrainAffected(void)
void BS_TryReflectType(void)
{
NATIVE_ARGS(const u8 *failInstr);
u16 targetBaseSpecies = GET_BASE_SPECIES_ID(gBattleMons[gBattlerTarget].species);
enum Species targetBaseSpecies = GET_BASE_SPECIES_ID(gBattleMons[gBattlerTarget].species);
enum Type targetTypes[3];
GetBattlerTypes(gBattlerTarget, FALSE, targetTypes);
@ -12960,7 +12961,8 @@ static void UpdatePokeFlutePartyStatus(struct Pokemon* party, u8 position)
s32 i;
enum BattlerId battler;
u32 monToCheck, status;
u16 species, abilityNum;
enum Species species;
u16 abilityNum;
monToCheck = 0;
for (i = 0; i < PARTY_SIZE; i++)
{
@ -14790,7 +14792,7 @@ void BS_JumpIfWeatherAffected(void)
void BS_JumpIfSpecies(void)
{
NATIVE_ARGS(u16 species, const u8 *jumpInstr);
NATIVE_ARGS(enum Species species, const u8 *jumpInstr);
if (gBattleMons[gBattlerAttacker].species == cmd->species)
gBattlescriptCurrInstr = cmd->jumpInstr;
else

View File

@ -598,7 +598,7 @@ void StartGroudonKyogreBattle(void)
void StartRegiBattle(void)
{
enum BattleTransition transitionId;
u16 species;
enum Species species;
LockPlayerFieldControls();
gMain.savedCallback = CB2_EndScriptedWildBattle;
@ -803,7 +803,7 @@ static u16 GetSumOfPlayerPartyLevel(u8 numMons)
for (i = 0; i < PARTY_SIZE; i++)
{
u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG);
if (species != SPECIES_EGG && species != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0)
{
@ -2130,4 +2130,3 @@ void SetMultiTrainerBattle(struct ScriptContext *ctx)
TRAINER_BATTLE_PARAM.defeatTextB = (u8*)ScriptReadWord(ctx);
gPartnerTrainerId = TRAINER_PARTNER(ScriptReadHalfword(ctx));
};

View File

@ -294,10 +294,10 @@ static void GenerateInitialRentalMons(void)
s32 i, j;
u8 firstMonId;
u16 monSetId;
u16 currSpecies;
u16 species[PARTY_SIZE];
enum Species currSpecies;
enum Species species[PARTY_SIZE];
u16 monIds[PARTY_SIZE];
u16 heldItems[PARTY_SIZE];
enum Item heldItems[PARTY_SIZE];
firstMonId = 0;
gFacilityTrainers = gSlateportBattleTentTrainers;
@ -355,8 +355,8 @@ static void GenerateOpponentMons(void)
u16 trainerId;
s32 i, j, k;
const u16 *monSet;
u16 species[FRONTIER_PARTY_SIZE];
u16 heldItems[FRONTIER_PARTY_SIZE];
enum Species species[FRONTIER_PARTY_SIZE];
enum Item heldItems[FRONTIER_PARTY_SIZE];
s32 numMons = 0;
gFacilityTrainers = gSlateportBattleTentTrainers;

View File

@ -1176,14 +1176,14 @@ static void BattleTowerNop2(void)
static void GetApprenticeMultiPartnerParty(u16 trainerId)
{
s32 i, count;
u32 validSpecies[MULTI_PARTY_SIZE];
u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
enum Species validSpecies[MULTI_PARTY_SIZE];
enum Species species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
enum Species species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
count = 0;
for (i = 0; i < MULTI_PARTY_SIZE; i++)
{
u16 apprenticeSpecies = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[i].species;
enum Species apprenticeSpecies = gSaveBlock2Ptr->apprentices[trainerId - TRAINER_RECORD_MIXING_APPRENTICE].party[i].species;
if (apprenticeSpecies != species1 && apprenticeSpecies != species2)
{
validSpecies[count] = i;
@ -1201,10 +1201,10 @@ static void GetApprenticeMultiPartnerParty(u16 trainerId)
static void GetRecordMixFriendMultiPartnerParty(u16 trainerId)
{
s32 i, count;
u32 validSpecies[3];
enum Species validSpecies[3];
enum FrontierLevelMode lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
u16 species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
u16 species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
enum Species species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES);
enum Species species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES);
count = 0;
for (i = 0; i < MAX_FRONTIER_PARTY_SIZE; i++)
@ -1376,7 +1376,7 @@ static void LoadMultiPartnerCandidatesData(void)
static void GetPotentialPartnerMoveAndSpecies(u16 trainerId, u16 monId)
{
enum Move move = MOVE_NONE;
u16 species = SPECIES_NONE;
enum Species species = SPECIES_NONE;
SetFacilityPtrsGetLevel();
if (trainerId != TRAINER_EREADER)
@ -2129,7 +2129,7 @@ void TrySetLinkBattleTowerEnemyPartyLevel(void)
for (u32 i = 0; i < PARTY_SIZE; i++)
{
u32 species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES);
enum Species species = GetMonData(&gEnemyParty[i], MON_DATA_SPECIES);
if (species)
{
SetMonData(&gEnemyParty[i], MON_DATA_EXP, &gExperienceTables[gSpeciesInfo[species].growthRate][enemyLevel]);

View File

@ -660,13 +660,13 @@ void BattleTv_SetDataBasedOnAnimation(u8 animationId)
void TryPutLinkBattleTvShowOnAir(void)
{
u16 playerBestSpecies = 0, opponentBestSpecies = 0;
enum Species playerBestSpecies = 0, opponentBestSpecies = 0;
s16 playerBestSum = 0, opponentBestSum = SHRT_MAX;
u8 playerBestMonId = 0, opponentBestMonId = 0;
struct BattleTvMovePoints *movePoints = NULL;
u8 countPlayer = 0, countOpponent = 0;
s16 sum = 0;
u16 species = SPECIES_NONE;
enum Species species = SPECIES_NONE;
enum Move move = MOVE_NONE;
s32 i, j;
int zero = 0, one = 1; //needed for matching
@ -1307,7 +1307,7 @@ static void TrySetBattleSeminarShow(void)
{
if (i != gMoveSelectionCursor[gBattlerAttacker] && dmgByMove[i] > dmgByMove[gMoveSelectionCursor[gBattlerAttacker]])
{
u16 opponentSpecies, playerSpecies;
enum Species opponentSpecies, playerSpecies;
s32 bestMoveId;
if (gMoveSelectionCursor[gBattlerAttacker] != 0)

View File

@ -271,7 +271,7 @@ bool32 EndOrContinueWeather(void)
// Gen5+
static u32 CalcBeatUpPower(void)
{
u32 species = gBattleStruct->beatUpSpecies[gBattleStruct->beatUpSlot++];
enum Species species = gBattleStruct->beatUpSpecies[gBattleStruct->beatUpSlot++];
// FIXME: Why call CalcBeatUpPower when 'beatUpSlot' is OOB?
if (species == 0xFFFF)
return 0;
@ -283,7 +283,7 @@ static s32 CalcBeatUpDamage(struct BattleContext *ctx)
{
u32 partyIndex = gBattleStruct->beatUpSpecies[gBattleStruct->beatUpSlot++];
struct Pokemon *party = GetBattlerParty(ctx->battlerAtk);
u32 species = GetMonData(&party[partyIndex], MON_DATA_SPECIES);
enum Species species = GetMonData(&party[partyIndex], MON_DATA_SPECIES);
u32 levelFactor = GetMonData(&party[partyIndex], MON_DATA_LEVEL) * 2 / 5 + 2;
s32 dmg = GetSpeciesBaseAttack(species);
@ -1693,7 +1693,7 @@ u8 GetImprisonedMovesCount(enum BattlerId battler, enum Move move)
u32 GetBattlerAffectionHearts(enum BattlerId battler)
{
struct Pokemon *mon = GetBattlerMon(battler);
u16 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
if (!IsOnPlayerSide(battler))
return AFFECTION_NO_HEARTS;
@ -3040,7 +3040,7 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, enum BattlerId battler, enum
u32 side = 0;
u32 i = 0, j = 0;
u32 partner = 0;
u32 speciesForm = SPECIES_NONE;
enum Species speciesForm = SPECIES_NONE;
if (gBattleTypeFlags & BATTLE_TYPE_SAFARI)
return 0;
@ -7036,7 +7036,7 @@ static inline u32 CalcAttackStat(struct BattleContext *ctx)
return uq4_12_multiply_by_int_half_down(modifier, atkStat);
}
static bool32 CanEvolve(u32 species)
static bool32 CanEvolve(enum Species species)
{
u32 i;
const struct Evolution *evolutions = GetSpeciesEvolutions(species);
@ -7206,7 +7206,7 @@ static inline u32 CalcDefenseStat(struct BattleContext *ctx)
break;
case HOLD_EFFECT_EVIOLITE:
{
u16 species = gBattleMons[battlerDef].species;
enum Species species = gBattleMons[battlerDef].species;
if (gBattleMons[battlerDef].volatiles.transformed && gBattleMons[battlerDef].volatiles.transformedMonSpecies != SPECIES_NONE)
species = gBattleMons[battlerDef].volatiles.transformedMonSpecies;
if (CanEvolve(species))
@ -7760,7 +7760,7 @@ static inline s32 DoFutureSightAttackDamageCalcVars(struct BattleContext *ctx)
struct Pokemon *party = GetBattlerParty(battlerAtk);
struct Pokemon *partyMon = &party[gBattleStruct->futureSight[battlerDef].partyIndex];
u32 partyMonLevel = GetMonData(partyMon, MON_DATA_LEVEL);
u32 partyMonSpecies = GetMonData(partyMon, MON_DATA_SPECIES);
enum Species partyMonSpecies = GetMonData(partyMon, MON_DATA_SPECIES);
gBattleMovePower = GetMovePower(move);
if (IsBattleMovePhysical(move))
@ -8148,7 +8148,7 @@ static inline void MulByTypeEffectiveness(struct BattleContext *ctx, uq4_12_t *m
*modifier = uq4_12_multiply(*modifier, mod);
}
static inline void TryNoticeIllusionInTypeEffectiveness(enum Move move, enum Type moveType, enum BattlerId battlerAtk, enum BattlerId battlerDef, uq4_12_t resultingModifier, u32 illusionSpecies)
static inline void TryNoticeIllusionInTypeEffectiveness(enum Move move, enum Type moveType, enum BattlerId battlerAtk, enum BattlerId battlerDef, uq4_12_t resultingModifier, enum Species illusionSpecies)
{
// Check if the type effectiveness would've been different if the pokemon really had the types as the disguise.
uq4_12_t presumedModifier = UQ_4_12(1.0);
@ -8198,7 +8198,7 @@ void UpdateMoveResultFlags(uq4_12_t modifier, u16 *resultFlags)
static inline uq4_12_t CalcTypeEffectivenessMultiplierInternal(struct BattleContext *ctx, uq4_12_t modifier)
{
u32 illusionSpecies;
enum Species illusionSpecies;
enum Type types[3];
GetBattlerTypes(ctx->battlerDef, FALSE, types);
@ -8299,7 +8299,7 @@ uq4_12_t CalcTypeEffectivenessMultiplier(struct BattleContext *ctx)
return modifier;
}
uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(enum Move move, u16 speciesDef, enum Ability abilityDef)
uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(enum Move move, enum Species speciesDef, enum Ability abilityDef)
{
uq4_12_t modifier = UQ_4_12(1.0);
enum Type moveType = GetBattleMoveType(move);
@ -8354,7 +8354,7 @@ uq4_12_t GetOverworldTypeEffectiveness(struct Pokemon *mon, enum Type moveType)
ctx.moveType = moveType;
ctx.updateFlags = FALSE;
u32 speciesDef = GetMonData(mon, MON_DATA_SPECIES);
enum Species speciesDef = GetMonData(mon, MON_DATA_SPECIES);
enum Type type1 = GetSpeciesType(speciesDef, 0);
enum Type type2 = GetSpeciesType(speciesDef, 1);
@ -8437,7 +8437,7 @@ bool32 IsPartnerMonFromSameTrainer(enum BattlerId battler)
return !(gBattleTypeFlags & BATTLE_TYPE_MULTI);
}
bool32 DoesSpeciesUseHoldItemToChangeForm(u16 species, u16 heldItemId)
bool32 DoesSpeciesUseHoldItemToChangeForm(enum Species species, u16 heldItemId)
{
u32 i;
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
@ -8599,9 +8599,9 @@ bool32 IsBattlerInTeraForm(enum BattlerId battler)
return (gSpeciesInfo[gBattleMons[battler].species].isTeraForm);
}
u32 GetBattleFormChangeTargetSpecies(enum BattlerId battler, enum FormChanges method, enum Ability ability)
enum Species GetBattleFormChangeTargetSpecies(enum BattlerId battler, enum FormChanges method, enum Ability ability)
{
u32 species = gBattleMons[battler].species;
enum Species species = gBattleMons[battler].species;
const struct FormChange *formChanges = GetSpeciesFormChanges(species);
if (formChanges == NULL)
@ -8684,8 +8684,8 @@ bool32 TryBattleFormChange(enum BattlerId battler, enum FormChanges method, enum
if (!CanBattlerFormChange(battler, method))
return FALSE;
u32 currentSpecies = GetMonData(mon, MON_DATA_SPECIES);
u32 targetSpecies = GetBattleFormChangeTargetSpecies(battler, method, ability);
enum Species currentSpecies = GetMonData(mon, MON_DATA_SPECIES);
enum Species targetSpecies = GetBattleFormChangeTargetSpecies(battler, method, ability);
struct PartyState *battlePartyState = GetBattlerPartyState(battler);
// If the battle ends, and there's not a specified species to change back to,
@ -8747,8 +8747,8 @@ bool32 DoBattlersShareType(enum BattlerId battler1, enum BattlerId battler2)
bool32 CanBattlerGetOrLoseItem(enum BattlerId fromBattler, enum BattlerId battler, enum Item itemId)
{
u32 fromSpecies = gBattleMons[fromBattler].species;
u32 otherSpecies = gBattleMons[battler].species;
enum Species fromSpecies = gBattleMons[fromBattler].species;
enum Species otherSpecies = gBattleMons[battler].species;
enum HoldEffect holdEffect = GetItemHoldEffect(itemId); // Raw hold effect
@ -8769,9 +8769,9 @@ bool32 CanBattlerGetOrLoseItem(enum BattlerId fromBattler, enum BattlerId battle
return TRUE;
}
u32 GetBattlerVisualSpecies(enum BattlerId battler)
enum Species GetBattlerVisualSpecies(enum BattlerId battler)
{
u32 illusionSpecies = GetIllusionMonSpecies(battler);
enum Species illusionSpecies = GetIllusionMonSpecies(battler);
if (illusionSpecies != SPECIES_NONE)
return illusionSpecies;
return gBattleMons[battler].species;
@ -8804,7 +8804,7 @@ void ClearIllusionMon(enum BattlerId battler)
memset(&gBattleStruct->illusion[battler], 0, sizeof(gBattleStruct->illusion[battler]));
}
u32 GetIllusionMonSpecies(enum BattlerId battler)
enum Species GetIllusionMonSpecies(enum BattlerId battler)
{
struct Pokemon *illusionMon = GetIllusionMonPtr(battler);
if (illusionMon != NULL)
@ -8840,7 +8840,7 @@ u32 GetIllusionMonPartyId(struct Pokemon *party, struct Pokemon *mon, struct Pok
&& GetMonData(&party[id], MON_DATA_HP)
&& !GetMonData(&party[id], MON_DATA_IS_EGG))
{
u32 species = GetMonData(&party[id], MON_DATA_SPECIES);
enum Species species = GetMonData(&party[id], MON_DATA_SPECIES);
if (species == SPECIES_TERAPAGOS_STELLAR || (species >= SPECIES_OGERPON_TEAL_TERA && species <= SPECIES_OGERPON_CORNERSTONE_TERA))
continue;
if (&party[id] != mon && &party[id] != partnerMon)
@ -9612,7 +9612,7 @@ bool32 MoveIsAffectedBySheerForce(enum Move move)
bool32 CanMonParticipateInSkyBattle(struct Pokemon *mon)
{
u32 species = GetMonData(mon, MON_DATA_SPECIES);
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
u32 monAbilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM);
bool32 hasLevitateAbility = GetSpeciesAbility(species, monAbilityNum) == ABILITY_LEVITATE;
@ -10915,7 +10915,7 @@ enum BattlerId GetTargetBySlot(enum BattlerId battlerAtk, enum BattlerId battler
}
}
bool32 IsNaturalEnemy(u32 speciesAttacker, u32 speciesTarget)
bool32 IsNaturalEnemy(enum Species speciesAttacker, enum Species speciesTarget)
{
if (B_WILD_NATURAL_ENEMIES != TRUE)
return FALSE;

View File

@ -227,7 +227,7 @@ bool32 TryChangeZTrigger(enum BattlerId battler, u32 moveIndex)
return viableZMove;
}
enum Move GetSignatureZMove(enum Move move, u32 species, enum Item item)
enum Move GetSignatureZMove(enum Move move, enum Species species, enum Item item)
{
u32 i;

View File

@ -29,7 +29,7 @@ static u8 GetWeedingBonusByBerryType(u8);
static u8 GetPestsBonusByBerryType(u8);
static void SetTreeMutations(u8 id, u8 berry);
static u8 GetTreeMutationValue(u8 id);
static u16 GetBerryPestSpecies(u8 berryId);
static enum Species GetBerryPestSpecies(u8 berryId);
static void TryForWeeds(struct BerryTree *tree);
static void TryForPests(struct BerryTree *tree);
static void AddTreeBonus(struct BerryTree *tree, u8 bonus);
@ -2286,7 +2286,7 @@ bool8 ObjectEventInteractionBerryHasWeed(void)
bool8 ObjectEventInteractionBerryHasPests(void)
{
u16 species;
enum Species species;
if (!OW_BERRY_PESTS || !gSaveBlock1Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].pests)
return FALSE;
species = GetBerryPestSpecies(gSaveBlock1Ptr->berryTrees[GetObjectEventBerryTreeId(gSelectedObjectEvent)].berry);
@ -2458,7 +2458,7 @@ static void SetTreeMutations(u8 id, u8 berry)
#endif
}
static u16 GetBerryPestSpecies(u8 berryId)
static enum Species GetBerryPestSpecies(u8 berryId)
{
#if OW_BERRY_PESTS == TRUE
const struct Berry *berry = GetBerryInfo(berryId);

View File

@ -98,9 +98,9 @@ static void PrintContestantMonName(u8);
static void PrintContestantMonNameWithColor(u8, u8);
static u8 CreateJudgeSprite(void);
static u8 CreateJudgeSpeechBubbleSprite(void);
static u8 CreateContestantSprite(u16, bool8, u32, u32);
static u8 CreateContestantSprite(enum Species, bool8, u32, u32);
static void PrintContestMoveDescription(enum Move move);
static u16 SanitizeSpecies(u16);
static enum Species SanitizeSpecies(enum Species);
static void ContestClearGeneralTextWindow(void);
static enum Move GetChosenMove(u8);
static void GetAllChosenMoves(void);
@ -3150,7 +3150,7 @@ static u8 CreateJudgeSpeechBubbleSprite(void)
return spriteId;
}
static u8 CreateContestantSprite(u16 species, bool8 isShiny, u32 personality, u32 index)
static u8 CreateContestantSprite(enum Species species, bool8 isShiny, u32 personality, u32 index)
{
u8 spriteId;
species = SanitizeSpecies(species);
@ -3176,7 +3176,7 @@ static u8 CreateContestantSprite(u16 species, bool8 isShiny, u32 personality, u3
return spriteId;
}
bool8 IsSpeciesNotUnown(u16 species)
bool8 IsSpeciesNotUnown(enum Species species)
{
if (species == SPECIES_UNOWN)
return FALSE;
@ -5310,7 +5310,7 @@ static u16 SanitizeMove(enum Move move)
return move;
}
static u16 SanitizeSpecies(u16 species)
static enum Species SanitizeSpecies(enum Species species)
{
assertf(species < NUM_SPECIES, "invalid species: %d", species)
{
@ -5323,7 +5323,7 @@ static u16 SanitizeSpecies(u16 species)
static void SetMoveSpecificAnimData(u8 contestant)
{
enum Move move = SanitizeMove(eContestantStatus[contestant].currMove);
u16 species = SanitizeSpecies(gContestMons[contestant].species);
enum Species species = SanitizeSpecies(gContestMons[contestant].species);
u8 targetContestant;
memset(&gContestResources->moveAnim->species, 0, 20);

View File

@ -335,7 +335,7 @@ static void VBlankCB_ContestPainting(void)
TransferPlttBuffer();
}
static void InitContestMonPixels(u16 species, bool8 backPic)
static void InitContestMonPixels(enum Species species, bool8 backPic)
{
const void *pal = GetMonSpritePalFromSpeciesAndPersonality(species, gContestPaintingWinner->isShiny, gContestPaintingWinner->personality);
memcpy(gContestPaintingMonPalette, pal, PLTT_SIZE_4BPP);

View File

@ -868,7 +868,7 @@ static void Task_ShowWinnerMonBanner(u8 taskId)
{
int i;
u8 spriteId;
u16 species;
enum Species species;
bool8 isShiny;
u32 personality;
@ -1081,7 +1081,7 @@ static void Task_FlashStarsAndHearts(u8 taskId)
sContestResults->data->pointsFlashing = TRUE;
}
static void LoadContestMonIcon(u16 species, u8 monIndex, u8 srcOffset, u8 useDmaNow, u32 personality)
static void LoadContestMonIcon(enum Species species, u8 monIndex, u8 srcOffset, u8 useDmaNow, u32 personality)
{
const u8 *iconPtr;
u16 var0, var1;
@ -2559,7 +2559,7 @@ bool8 IsContestDebugActive(void)
void ShowContestEntryMonPic(void)
{
u32 personality;
u16 species;
enum Species species;
u8 spriteId;
u8 taskId;
u8 left, top;

View File

@ -1191,7 +1191,7 @@ static void LoadCreditsMonPic(u8 whichMon)
CopyWindowToVram(2, COPYWIN_GFX);
}
static u16 GetCreditsMonSpecies(u8 whichMon)
static enum Species GetCreditsMonSpecies(u8 whichMon)
{
switch (whichMon)
{

View File

@ -1,11 +1,12 @@
#include "constants/event_objects.h"
#include "constants/items.h"
#include "constants/moves.h"
#include "constants/species.h"
struct LilycoveContestLadyValues
{
u16 monGfxId;
u16 monSpecies;
enum Species monSpecies;
const u8 *monName;
const u8 *categoryName;
const u8 *contestName;

View File

@ -32,10 +32,10 @@
#define IS_DITTO(species) (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_DITTO || gSpeciesInfo[species].eggGroups[1] == EGG_GROUP_DITTO)
static void ClearDaycareMonMail(struct DaycareMail *mail);
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare);
static void SetInitialEggData(struct Pokemon *mon, enum Species species, struct DayCare *daycare);
static void DaycarePrintMonInfo(u8 windowId, u32 daycareSlotId, u8 y);
static u8 ModifyBreedingScoreForOvalCharm(u8 score);
static u16 GetEggSpecies(u16 species);
static enum Species GetEggSpecies(enum Species species);
// RAM buffers used to assist with BuildEggMoveset()
EWRAM_DATA static u16 sHatchedEggLevelUpMoves[EGG_LVL_UP_MOVES_ARRAY_COUNT] = {0};
@ -87,9 +87,9 @@ static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
};
static const struct {
u16 currSpecies;
enum Species currSpecies;
enum Item item;
u16 babySpecies;
enum Species babySpecies;
} sIncenseBabyTable[] =
{
// Regular offspring, Item, Incense Offspring
@ -195,8 +195,8 @@ static void TransferEggMoves(void)
for (i = 0; i < DAYCARE_MON_COUNT; i++)
{
u16 moveLearnerSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SPECIES);
u16 eggSpecies = GetEggSpecies(moveLearnerSpecies);
enum Species moveLearnerSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SPECIES);
enum Species eggSpecies = GetEggSpecies(moveLearnerSpecies);
if (!GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[i].mon, MON_DATA_SANITY_HAS_SPECIES))
continue;
@ -221,7 +221,7 @@ static void TransferEggMoves(void)
// Go through other Daycare mons
for (k = 0; k < DAYCARE_MON_COUNT; k++)
{
u16 moveTeacherSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[k].mon, MON_DATA_SPECIES);
enum Species moveTeacherSpecies = GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[k].mon, MON_DATA_SPECIES);
if (k == i || !GetBoxMonData(&gSaveBlock1Ptr->daycare.mons[k].mon, MON_DATA_SANITY_HAS_SPECIES))
continue;
@ -384,7 +384,7 @@ static u16 TakeSelectedPokemonFromDaycare(struct DaycareMon *daycareMon)
static u16 TakeSelectedPokemonMonFromDaycareShiftSlots(struct DayCare *daycare, u8 slotId)
{
u16 species = TakeSelectedPokemonFromDaycare(&daycare->mons[slotId]);
enum Species species = TakeSelectedPokemonFromDaycare(&daycare->mons[slotId]);
ShiftDaycareSlots(daycare);
return species;
}
@ -491,7 +491,7 @@ static void UNUSED ClearAllDaycareData(struct DayCare *daycare)
// Determines what the species of an Egg would be based on the given species.
// It determines this by working backwards through the evolution chain of the
// given species.
static u16 GetEggSpecies(u16 species)
static enum Species GetEggSpecies(enum Species species)
{
int i, j, k;
bool8 found;
@ -714,8 +714,8 @@ static void InheritPokeball(struct Pokemon *egg, struct BoxPokemon *father, stru
enum PokeBall inheritBall = BALL_POKE;
enum PokeBall fatherBall = GetBoxMonData(father, MON_DATA_POKEBALL);
enum PokeBall motherBall = GetBoxMonData(mother, MON_DATA_POKEBALL);
u16 fatherSpecies = GetBoxMonData(father, MON_DATA_SPECIES);
u16 motherSpecies = GetBoxMonData(mother, MON_DATA_SPECIES);
enum Species fatherSpecies = GetBoxMonData(father, MON_DATA_SPECIES);
enum Species motherSpecies = GetBoxMonData(mother, MON_DATA_SPECIES);
if (fatherBall == BALL_MASTER || fatherBall == BALL_CHERISH || fatherBall == BALL_STRANGE)
fatherBall = BALL_POKE;
@ -743,7 +743,7 @@ static void InheritAbility(struct Pokemon *egg, struct BoxPokemon *father, struc
{
enum Ability fatherAbility = GetBoxMonData(father, MON_DATA_ABILITY_NUM);
enum Ability motherAbility = GetBoxMonData(mother, MON_DATA_ABILITY_NUM);
u16 motherSpecies = GetBoxMonData(mother, MON_DATA_SPECIES);
enum Species motherSpecies = GetBoxMonData(mother, MON_DATA_SPECIES);
enum Ability inheritAbility = motherAbility;
if (motherSpecies == SPECIES_DITTO)
@ -770,7 +770,7 @@ static void InheritAbility(struct Pokemon *egg, struct BoxPokemon *father, struc
u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
{
u16 numEggMoves;
u16 species;
enum Species species;
u32 i;
const u16 *eggMoveLearnset;
@ -787,7 +787,7 @@ u8 GetEggMoves(struct Pokemon *pokemon, u16 *eggMoves)
return numEggMoves;
}
u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves)
u8 GetEggMovesBySpecies(enum Species species, u16 *eggMoves)
{
u16 numEggMoves;
const u16 *eggMoveLearnset;
@ -805,7 +805,7 @@ u8 GetEggMovesBySpecies(u16 species, u16 *eggMoves)
return numEggMoves;
}
bool8 SpeciesCanLearnEggMove(u16 species, enum Move move) //Move search PokedexPlus HGSS_Ui
bool8 SpeciesCanLearnEggMove(enum Species species, enum Move move) //Move search PokedexPlus HGSS_Ui
{
u32 i;
const u16 *eggMoveLearnset = GetSpeciesEggMoves(species);
@ -946,7 +946,7 @@ void RejectEggFromDayCare(void)
RemoveEggFromDayCare(&gSaveBlock1Ptr->daycare);
}
static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare)
static void AlterEggSpeciesWithIncenseItem(enum Species *species, struct DayCare *daycare)
{
u32 i;
enum Item motherItem, fatherItem;
@ -975,7 +975,8 @@ static const struct {
static void GiveMoveIfItem(struct Pokemon *mon, struct DayCare *daycare)
{
u16 i, species = GetMonData(mon, MON_DATA_SPECIES);
u16 i;
enum Species species = GetMonData(mon, MON_DATA_SPECIES);
enum Item motherItem = GetBoxMonData(&daycare->mons[0].mon, MON_DATA_HELD_ITEM);
enum Item fatherItem = GetBoxMonData(&daycare->mons[1].mon, MON_DATA_HELD_ITEM);
@ -993,11 +994,11 @@ static void GiveMoveIfItem(struct Pokemon *mon, struct DayCare *daycare)
STATIC_ASSERT(P_SCATTERBUG_LINE_FORM_BREED == SPECIES_SCATTERBUG_ICY_SNOW || (P_SCATTERBUG_LINE_FORM_BREED >= SPECIES_SCATTERBUG_POLAR && P_SCATTERBUG_LINE_FORM_BREED <= SPECIES_SCATTERBUG_POKEBALL), ScatterbugLineFormBreedMustBeAValidScatterbugForm);
static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
static enum Species DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots)
{
u32 i;
u32 species[DAYCARE_MON_COUNT];
u32 eggSpecies, parentSpecies;
enum Species species[DAYCARE_MON_COUNT];
enum Species eggSpecies, parentSpecies;
bool32 hasMotherEverstone, hasFatherEverstone, motherIsForeign, fatherIsForeign;
bool32 motherEggSpecies, fatherEggSpecies;
u32 currentRegion = GetCurrentRegion();
@ -1075,7 +1076,7 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent
static void _GiveEggFromDaycare(struct DayCare *daycare)
{
struct Pokemon egg;
u16 species;
enum Species species;
u8 parentSlots[DAYCARE_MON_COUNT] = {0};
bool8 isEgg;
@ -1102,7 +1103,7 @@ static void _GiveEggFromDaycare(struct DayCare *daycare)
RemoveEggFromDayCare(daycare);
}
void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
void CreateEgg(struct Pokemon *mon, enum Species species, bool8 setHotSpringsLocation)
{
u8 metLevel;
enum PokeBall ball;
@ -1129,7 +1130,7 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation)
SetMonData(mon, MON_DATA_IS_EGG, &isEgg);
}
static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare)
static void SetInitialEggData(struct Pokemon *mon, enum Species species, struct DayCare *daycare)
{
u32 personality;
enum PokeBall ball;
@ -1244,7 +1245,7 @@ static void _GetDaycareMonNicknames(struct DayCare *daycare)
}
}
u16 GetSelectedMonNicknameAndSpecies(void)
enum Species GetSelectedMonNicknameAndSpecies(void)
{
struct BoxPokemon *boxmon = GetSelectedBoxMonFromPcOrParty();
GetBoxMonNickname(boxmon, gStringVar1);
@ -1304,7 +1305,7 @@ u8 GetDaycareCompatibilityScore(struct DayCare *daycare)
{
u32 i;
u16 eggGroups[DAYCARE_MON_COUNT][EGG_GROUPS_PER_MON];
u16 species[DAYCARE_MON_COUNT];
enum Species species[DAYCARE_MON_COUNT];
u32 trainerIds[DAYCARE_MON_COUNT];
u32 genders[DAYCARE_MON_COUNT];

View File

@ -209,7 +209,7 @@ struct DebugMenuOption
struct DebugMonData
{
u16 species;
enum Species species;
u8 level;
bool8 isShiny:1;
u8 nature:5;
@ -2422,7 +2422,7 @@ static void DebugAction_FlagsVars_PokedexFlags_All(u8 taskId)
static void DebugAction_FlagsVars_PokedexFlags_Reset(u8 taskId)
{
int boxId, boxPosition, partyId;
u16 species;
enum Species species;
// Reset Pokedex to emtpy
memset(&gSaveBlock1Ptr->dexCaught, 0, sizeof(gSaveBlock1Ptr->dexCaught));
@ -2784,7 +2784,7 @@ static void ResetMonDataStruct(struct DebugMonData *sDebugMonData)
#define tIterator data[7]
#define tIsEgg data[8]
static void Debug_Display_SpeciesInfo(u32 species, u32 number, u32 digit, u8 windowId)
static void Debug_Display_SpeciesInfo(enum Species species, u32 number, u32 digit, u8 windowId)
{
u8 *end;
StringCopy(gStringVar2, gText_DigitIndicator[digit]);
@ -2945,7 +2945,7 @@ static void DebugAction_Give_Pokemon_SelectId(u8 taskId)
{
PlaySE(SE_SELECT);
Debug_HandleInput_Numeric(taskId, 1, NUM_SPECIES - 1, DEBUG_NUMBER_DIGITS_ITEMS);
u32 species = gTasks[taskId].tInput;
enum Species species = gTasks[taskId].tInput;
if (!IsSpeciesEnabled(species))
species = SPECIES_NONE;
Debug_Display_SpeciesInfo(species, gTasks[taskId].tInput, gTasks[taskId].tDigit, gTasks[taskId].tSubWindowId);
@ -3503,7 +3503,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
u8 iv_val;
u8 EVs[NUM_STATS];
u8 ev_val;
u16 species = sDebugMonData->species;
enum Species species = sDebugMonData->species;
u8 level = sDebugMonData->level;
bool8 isShiny = sDebugMonData->isShiny;
u8 nature = sDebugMonData->nature;
@ -3746,7 +3746,7 @@ static void DebugAction_PCBag_Fill_PCBoxes_Fast(u8 taskId) //Credit: Sierraffini
{
int boxId, boxPosition;
struct BoxPokemon boxMon;
u16 species = SPECIES_BULBASAUR;
enum Species species = SPECIES_BULBASAUR;
u8 speciesName[POKEMON_NAME_LENGTH + 1];
CreateBoxMon(&boxMon, species, 100, Random32(), OTID_STRUCT_PLAYER_ID);
@ -3777,7 +3777,7 @@ static void DebugAction_PCBag_Fill_PCBoxes_Slow(u8 taskId)
{
int boxId, boxPosition;
struct BoxPokemon boxMon;
u32 species = SPECIES_BULBASAUR;
enum Species species = SPECIES_BULBASAUR;
bool8 spaceAvailable = FALSE;
for (boxId = 0; boxId < TOTAL_BOXES_COUNT; boxId++)
@ -4686,7 +4686,7 @@ static void DebugAction_Party_HealParty(u8 taskId)
void DebugNative_GetAbilityNames(void)
{
u32 species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES);
enum Species species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES);
StringCopy(gStringVar1, gAbilitiesInfo[GetAbilityBySpecies(species, 0)].name);
StringCopy(gStringVar2, gAbilitiesInfo[GetAbilityBySpecies(species, 1)].name);
StringCopy(gStringVar3, gAbilitiesInfo[GetAbilityBySpecies(species, 2)].name);

View File

@ -249,12 +249,12 @@ void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void *buffe
DecompressDataWithHeaderWram(src->data, buffer);
}
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, s32 species, u32 personality)
void HandleLoadSpecialPokePic(bool32 isFrontPic, void *dest, enum Species species, u32 personality)
{
LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, FALSE);
}
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, s32 species, u32 personality, bool32 isEgg)
void HandleLoadSpecialPokePicIsEgg(bool32 isFrontPic, void *dest, enum Species species, u32 personality, bool32 isEgg)
{
LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, isEgg);
}
@ -1129,12 +1129,12 @@ static bool32 isModeSymDelta(enum CompressionMode mode)
return FALSE;
}
void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontPic)
void LoadSpecialPokePic(void *dest, enum Species species, u32 personality, bool8 isFrontPic)
{
LoadSpecialPokePicIsEgg(dest, species, personality, isFrontPic, FALSE);
}
void LoadSpecialPokePicIsEgg(void *dest, s32 species, u32 personality, bool8 isFrontPic, bool32 isEgg)
void LoadSpecialPokePicIsEgg(void *dest, enum Species species, u32 personality, bool8 isFrontPic, bool32 isEgg)
{
species = SanitizeSpeciesId(species);
if (species == SPECIES_UNOWN)

View File

@ -86,9 +86,9 @@ enum Statuses
struct DexNavSearch
{
u16 species;
u16 moves[MAX_MON_MOVES];
u16 heldItem;
enum Species species;
enum Move moves[MAX_MON_MOVES];
enum Item heldItem;
u8 abilityNum;
u8 potential;
u8 searchLevel;
@ -119,9 +119,9 @@ struct DexNavGUI
MainCallback savedCallback;
u8 state;
u8 cursorSpriteId;
u16 landSpecies[LAND_WILD_COUNT];
u16 waterSpecies[WATER_WILD_COUNT];
u16 hiddenSpecies[HIDDEN_WILD_COUNT];
enum Species landSpecies[LAND_WILD_COUNT];
enum Species waterSpecies[WATER_WILD_COUNT];
enum Species hiddenSpecies[HIDDEN_WILD_COUNT];
u8 cursorRow;
u8 cursorCol;
u8 environment;
@ -135,7 +135,7 @@ struct DexNavGUI
EWRAM_DATA static struct DexNavSearch *sDexNavSearchDataPtr = NULL;
EWRAM_DATA static struct DexNavGUI *sDexNavUiDataPtr = NULL;
EWRAM_DATA static u8 *sBg1TilemapBuffer = NULL;
EWRAM_DATA u16 gDexNavSpecies = SPECIES_NONE;
EWRAM_DATA enum Species gDexNavSpecies = SPECIES_NONE;
//// Function Declarations
//GUI
@ -144,13 +144,13 @@ static void Task_DexNavMain(u8 taskId);
static void PrintCurrentSpeciesInfo(void);
// SEARCH
static bool8 TryStartHiddenMonFieldEffect(enum EncounterType environment, u8 xSize, u8 ySize, bool8 smallScan);
static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel, u16 *moveDst);
static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel);
static u8 DexNavGetAbilityNum(u16 species, u8 searchLevel);
static void DexNavGenerateMoveset(enum Species species, u8 searchLevel, u8 encounterLevel, u16 *moveDst);
static u16 DexNavGenerateHeldItem(enum Species species, u8 searchLevel);
static u8 DexNavGetAbilityNum(enum Species species, u8 searchLevel);
static u8 DexNavGeneratePotential(u8 searchLevel);
static u8 DexNavTryGenerateMonLevel(u16 species, enum EncounterType environment);
static u8 GetEncounterLevelFromMapData(u16 species, enum EncounterType environment);
static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move *moves);
static u8 DexNavTryGenerateMonLevel(enum Species species, enum EncounterType environment);
static u8 GetEncounterLevelFromMapData(enum Species species, enum EncounterType environment);
static void CreateDexNavWildMon(enum Species species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move *moves);
static u8 GetPlayerDistance(s16 x, s16 y);
static u8 DexNavPickTile(enum EncounterType environment, u8 xSize, u8 ySize, bool8 smallScan);
static void DexNavProximityUpdate(void);
@ -410,7 +410,7 @@ static s16 GetSearchWindowY(void)
}
#define SPECIES_ICON_X 28
static void DrawDexNavSearchMonIcon(u16 species, u8 *dst, bool8 owned)
static void DrawDexNavSearchMonIcon(enum Species species, u8 *dst, bool8 owned)
{
u8 spriteId;
@ -449,7 +449,7 @@ static void AddSearchWindow(u8 width)
#define SEARCH_ARROW_X (WINDOW_MOVE_NAME_X + 90)
#define SEARCH_ARROW_Y 0
static void AddSearchWindowText(u16 species, u8 proximity, u8 searchLevel, bool8 hidden)
static void AddSearchWindowText(enum Species species, u8 proximity, u8 searchLevel, bool8 hidden)
{
u8 windowId = sDexNavSearchDataPtr->windowId;
@ -511,7 +511,7 @@ static void AddSearchWindowText(u16 species, u8 proximity, u8 searchLevel, bool8
#define SEARCH_WINDOW_WIDTH 28
static void DrawSearchWindow(u16 species, u8 potential, bool8 hidden)
static void DrawSearchWindow(enum Species species, u8 potential, bool8 hidden)
{
u8 searchLevel = sDexNavSearchDataPtr->searchLevel;
@ -779,7 +779,7 @@ static void LoadSearchIconData(void)
LoadCompressedSpriteSheetUsingHeap(&sHiddenMonIconSpriteSheet);
}
static u8 GetSearchLevel(u16 species)
static u8 GetSearchLevel(enum Species species)
{
u8 searchLevel;
#if USE_DEXNAV_SEARCH_LEVELS == TRUE
@ -792,7 +792,7 @@ static u8 GetSearchLevel(u16 species)
static void SetUpDexNavSearch(void)
{
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
u8 searchLevel = GetSearchLevel(species);
// init sprites
@ -837,7 +837,7 @@ static void DexNavSearchBail(const u8 *script)
ScriptContext_SetupScript(script);
}
static bool8 InitDexNavSearch(u32 species, u32 environment)
static bool8 InitDexNavSearch(enum Species species, u32 environment)
{
sDexNavSearchDataPtr = AllocZeroed(sizeof(struct DexNavSearch));
if (sDexNavSearchDataPtr == NULL)
@ -924,7 +924,7 @@ static void DexNavUpdateDirectionArrow(void)
static void DexNavDrawIcons(void)
{
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
DrawSearchWindow(species, sDexNavSearchDataPtr->potential, FALSE);
DrawDexNavSearchMonIcon(species, &sDexNavSearchDataPtr->iconSpriteId, GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT));
@ -995,7 +995,7 @@ static u8 GetMovementProximityBySearchLevel(void)
static void RevealHiddenMon(void)
{
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
// remove owned icon if it exists
if (sDexNavSearchDataPtr->ownedIconSpriteId != MAX_SPRITES)
@ -1179,7 +1179,7 @@ static void DexNavUpdateSearchWindow(u8 proximity, u8 searchLevel)
//////////////////////////////
//// DEXNAV MON GENERATOR ////
//////////////////////////////
static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move *moves)
static void CreateDexNavWildMon(enum Species species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move *moves)
{
struct Pokemon *mon = &gEnemyParty[0];
@ -1202,7 +1202,7 @@ static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityN
// gets a random level of the species based on map data.
//if it was a hidden encounter, updates the environment it is to be found from the wildheader encounterRate
static u8 DexNavTryGenerateMonLevel(u16 species, enum EncounterType environment)
static u8 DexNavTryGenerateMonLevel(enum Species species, enum EncounterType environment)
{
u8 levelBase = GetEncounterLevelFromMapData(species, environment);
u8 levelBonus = gSaveBlock3Ptr->dexNavChain / 5;
@ -1219,7 +1219,7 @@ static u8 DexNavTryGenerateMonLevel(u16 species, enum EncounterType environment)
return levelBase + levelBonus;
}
static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel, u16 *moveDst)
static void DexNavGenerateMoveset(enum Species species, u8 searchLevel, u8 encounterLevel, u16 *moveDst)
{
bool8 genMove = FALSE;
u16 randVal = Random() % 100;
@ -1274,7 +1274,7 @@ static void DexNavGenerateMoveset(u16 species, u8 searchLevel, u8 encounterLevel
}
}
static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel)
static u16 DexNavGenerateHeldItem(enum Species species, u8 searchLevel)
{
u16 randVal = Random() % 100;
u8 searchLevelInfluence = searchLevel >> 1;
@ -1302,7 +1302,7 @@ static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel)
return ITEM_NONE;
}
static u8 DexNavGetAbilityNum(u16 species, u8 searchLevel)
static u8 DexNavGetAbilityNum(enum Species species, u8 searchLevel)
{
bool8 genAbility = FALSE;
u16 randVal = Random() % 100;
@ -1463,7 +1463,7 @@ static u8 DexNavGeneratePotential(u8 searchLevel)
return 0; // No potential
}
static u8 GetEncounterLevelFromMapData(u16 species, enum EncounterType environment)
static u8 GetEncounterLevelFromMapData(enum Species species, enum EncounterType environment)
{
u32 headerId = GetCurrentMapWildMonHeaderId();
enum TimeOfDay timeOfDay;
@ -1718,7 +1718,7 @@ static bool8 CapturedAllLandMons(u32 headerId)
static bool8 CapturedAllWaterMons(u32 headerId)
{
u32 i;
u16 species;
enum Species species;
u8 count = 0;
enum TimeOfDay timeOfDay = GetTimeOfDayForEncounters(headerId, WILD_AREA_WATER);
@ -1751,7 +1751,7 @@ static bool8 CapturedAllWaterMons(u32 headerId)
static bool8 CapturedAllHiddenMons(u32 headerId)
{
u32 i;
u16 species;
enum Species species;
u8 count = 0;
enum TimeOfDay timeOfDay = GetTimeOfDayForEncounters(headerId, WILD_AREA_HIDDEN);
@ -1852,7 +1852,7 @@ static void DexNavFadeAndExit(void)
SetMainCallback2(DexNav_MainCB);
}
static bool8 SpeciesInArray(u16 species, u8 section)
static bool8 SpeciesInArray(enum Species species, u8 section)
{
u32 i;
enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(species);
@ -1893,7 +1893,7 @@ static void DexNavLoadEncounterData(void)
u8 grassIndex = 0;
u8 waterIndex = 0;
u8 hiddenIndex = 0;
u16 species;
enum Species species;
u32 i;
u32 headerId = GetCurrentMapWildMonHeaderId();
enum TimeOfDay timeOfDay;
@ -1944,7 +1944,7 @@ static void DexNavLoadEncounterData(void)
}
}
static void TryDrawIconInSlot(u16 species, s16 x, s16 y)
static void TryDrawIconInSlot(enum Species species, s16 x, s16 y)
{
if (species == SPECIES_NONE || species > NUM_SPECIES)
CreateNoDataIcon(x, y); //'X' in slot
@ -1958,7 +1958,7 @@ static void DrawSpeciesIcons(void)
{
s16 x, y;
u32 i;
u16 species;
enum Species species;
LoadCompressedSpriteSheetUsingHeap(&sNoDataIconSpriteSheet);
for (i = 0; i < LAND_WILD_COUNT; i++)
@ -1991,9 +1991,9 @@ static void DrawSpeciesIcons(void)
}
}
static u16 DexNavGetSpecies(void)
static enum Species DexNavGetSpecies(void)
{
u16 species;
enum Species species;
switch (sDexNavUiDataPtr->cursorRow)
{
@ -2067,7 +2067,7 @@ static void SetTypeIconPosAndPal(u8 typeId, u8 x, u8 y, u8 spriteArrayId)
static void PrintCurrentSpeciesInfo(void)
{
u16 species = DexNavGetSpecies();
enum Species species = DexNavGetSpecies();
enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(species);
enum Type type1, type2;
@ -2145,7 +2145,7 @@ static void PrintMapName(void)
CopyWindowToVram(WINDOW_REGISTERED, 3);
}
static void PrintSearchableSpecies(u16 species)
static void PrintSearchableSpecies(enum Species species)
{
FillWindowPixelBuffer(WINDOW_REGISTERED, PIXEL_FILL(TEXT_COLOR_TRANSPARENT));
PutWindowTilemap(WINDOW_REGISTERED);
@ -2314,7 +2314,7 @@ static void Task_DexNavWaitFadeIn(u8 taskId)
static void Task_DexNavMain(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u16 species;
enum Species species;
if (IsSEPlaying())
return;
@ -2479,7 +2479,7 @@ bool32 TryFindHiddenPokemon(void)
// hidden pokemon
u32 headerId = GetCurrentMapWildMonHeaderId();
u8 index;
u16 species;
enum Species species;
enum EncounterType environment;
enum TimeOfDay timeOfDay = GetTimeOfDayForEncounters(headerId, WILD_AREA_HIDDEN);
@ -2612,7 +2612,7 @@ static void DrawHiddenSearchWindow(u8 width)
static void DexNavDrawHiddenIcons(void)
{
u16 species = sDexNavSearchDataPtr->species;
enum Species species = sDexNavSearchDataPtr->species;
DrawHiddenSearchWindow(12);
DrawSearchIcon();

View File

@ -221,7 +221,7 @@ static u8 IsEasyChatWordUnlocked(u16);
static u16 SetSelectedWordGroup_GroupMode(u16);
static u16 SetSelectedWordGroup_AlphabetMode(u16);
static bool32 IsEasyChatIndexAndGroupUnlocked(u16, u8);
static bool32 IsRestrictedWordSpecies(u16);
static bool32 IsRestrictedWordSpecies(enum Species);
static void DoQuizAnswerEasyChatScreen(void);
static void DoQuizQuestionEasyChatScreen(void);
static void DoQuizSetAnswerEasyChatScreen(void);
@ -5783,7 +5783,7 @@ static bool32 IsEasyChatIndexAndGroupUnlocked(u16 wordIndex, u8 groupId)
// Pokémon words in EC_GROUP_POKEMON_NATIONAL are always allowed (assuming the group is unlocked)
// unless they are in this group. If they are in this group (just Deoxys), they must also have been seen.
static bool32 IsRestrictedWordSpecies(u16 species)
static bool32 IsRestrictedWordSpecies(enum Species species)
{
u32 i;
for (i = 0; i < ARRAY_COUNT(sRestrictedWordSpecies); i++)

View File

@ -60,7 +60,7 @@ struct EggHatchData
u8 windowId;
u8 unused_9;
u8 unused_A;
u16 species;
enum Species species;
u8 textColor[3];
};
@ -307,7 +307,7 @@ static const s16 sEggShardVelocities[][2] =
static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
{
u16 species;
enum Species species;
u32 personality, pokerus;
enum PokeBall ball;
u8 i, friendship, language, gameMet, markings, isModernFatefulEncounter;
@ -356,7 +356,8 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp)
static void AddHatchedMonToParty(u8 id)
{
u8 isEgg = 0x46; // ?
enum NationalDexOrder species;
enum Species species;
enum NationalDexOrder nationalDexNum;
u8 name[POKEMON_NAME_LENGTH + 1];
u16 metLevel;
metloc_u8_t metLocation;
@ -369,9 +370,9 @@ static void AddHatchedMonToParty(u8 id)
StringCopy(name, GetSpeciesName(species));
SetMonData(mon, MON_DATA_NICKNAME, name);
species = SpeciesToNationalPokedexNum(species);
GetSetPokedexFlag(species, FLAG_SET_SEEN);
GetSetPokedexFlag(species, FLAG_SET_CAUGHT);
nationalDexNum = SpeciesToNationalPokedexNum(species);
GetSetPokedexFlag(nationalDexNum, FLAG_SET_SEEN);
GetSetPokedexFlag(nationalDexNum, FLAG_SET_CAUGHT);
GetMonNickname(mon, gStringVar1);
@ -419,7 +420,7 @@ static u8 EggHatchCreateMonSprite(u8 useAlt, u8 state, u8 partyId, u16 *speciesL
u8 position = 0;
u8 spriteId = 0;
struct Pokemon *mon = NULL;
u16 species = SPECIES_NONE;
enum Species species = SPECIES_NONE;
if (useAlt == FALSE)
{
@ -532,7 +533,7 @@ static void CB2_LoadEggHatch(void)
break;
case 3:
{
u32 species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyId], MON_DATA_SPECIES);
enum Species species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyId], MON_DATA_SPECIES);
if (gSpeciesInfo[species].eggId != EGG_ID_NONE)
{
u32 *tempSprite = malloc_and_decompress(gEggDatas[gSpeciesInfo[species].eggId].eggHatchGfx, NULL);
@ -632,7 +633,7 @@ static void Task_EggHatchPlayBGM(u8 taskId)
static void CB2_EggHatch(void)
{
u16 species;
enum Species species;
u8 gender;
u32 personality;

View File

@ -199,7 +199,7 @@ static void SetSpriteDataForNormalStep(struct Sprite *, enum Direction, u8);
static void InitSpriteForFigure8Anim(struct Sprite *);
static bool8 AnimateSpriteInFigure8(struct Sprite *);
enum Direction GetDirectionToFace(s16 x1, s16 y1, s16 x2, s16 y2);
static void FollowerSetGraphics(struct ObjectEvent *objEvent, u32 species, bool32 shiny, bool32 female);
static void FollowerSetGraphics(struct ObjectEvent *objEvent, enum Species species, bool32 shiny, bool32 female);
static void ObjectEventSetGraphics(struct ObjectEvent *, const struct ObjectEventGraphicsInfo *);
static void SpriteCB_VirtualObject(struct Sprite *);
static void DoShadowFieldEffect(struct ObjectEvent *);
@ -211,14 +211,14 @@ static u8 DoJumpSpriteMovement(struct Sprite *);
static u8 DoJumpSpecialSpriteMovement(struct Sprite *);
static void CreateLevitateMovementTask(struct ObjectEvent *);
static void DestroyLevitateMovementTask(u8);
static u32 LoadDynamicFollowerPalette(u32 species, bool32 shiny, bool32 female);
const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32 shiny, bool32 female);
static u32 LoadDynamicFollowerPalette(enum Species species, bool32 shiny, bool32 female);
const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(enum Species species, bool32 shiny, bool32 female);
static bool8 NpcTakeStep(struct Sprite *);
static bool8 AreElevationsCompatible(u8, u8);
static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphicsId, u16 movementType, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);
static u16 GetGraphicsIdForMon(u32 species, bool32 shiny, bool32 female);
static u16 GetUnownSpecies(struct Pokemon *mon);
static u16 GetGraphicsIdForMon(enum Species species, bool32 shiny, bool32 female);
static enum Species GetUnownSpecies(struct Pokemon *mon);
static const struct SpriteFrameImage sPicTable_PechaBerryTree[];
@ -1985,7 +1985,7 @@ static void UNUSED MakeSpriteTemplateFromObjectEventTemplate(const struct Object
// also can write palette tag to the template
static u32 LoadDynamicFollowerPaletteFromGraphicsId(u16 graphicsId, struct SpriteTemplate *template)
{
u16 species = graphicsId & OBJ_EVENT_MON_SPECIES_MASK;
enum Species species = graphicsId & OBJ_EVENT_MON_SPECIES_MASK;
bool32 shiny = graphicsId & OBJ_EVENT_MON_SHINY;
bool32 female = graphicsId & OBJ_EVENT_MON_FEMALE;
u8 paletteNum = LoadDynamicFollowerPalette(species, shiny, female);
@ -2115,7 +2115,7 @@ struct Pokemon *GetFirstLiveMon(void)
for (i = 0; i < PARTY_SIZE; i++)
{
struct Pokemon *mon = &gPlayerParty[i];
u32 species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG);
if (species == SPECIES_NONE)
continue;
@ -2143,7 +2143,7 @@ struct ObjectEvent *GetFollowerObject(void)
}
// Return graphicsInfo for a pokemon species & form
const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32 shiny, bool32 female)
const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(enum Species species, bool32 shiny, bool32 female)
{
const struct ObjectEventGraphicsInfo *graphicsInfo = NULL;
#if OW_POKEMON_OBJECT_EVENTS
@ -2178,7 +2178,7 @@ const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u32 species, bool32
}
// Find, or load, the palette for the specified pokemon info
static u32 LoadDynamicFollowerPalette(u32 species, bool32 shiny, bool32 female)
static u32 LoadDynamicFollowerPalette(enum Species species, bool32 shiny, bool32 female)
{
u32 paletteNum;
// Use standalone palette, unless entry is OOB or NULL (fallback to front-sprite-based)
@ -2236,7 +2236,7 @@ static u32 LoadDynamicFollowerPalette(u32 species, bool32 shiny, bool32 female)
}
// Set graphics & sprite for a follower object event by species & shininess.
static void FollowerSetGraphics(struct ObjectEvent *objEvent, u32 species, bool32 shiny, bool32 female)
static void FollowerSetGraphics(struct ObjectEvent *objEvent, enum Species species, bool32 shiny, bool32 female)
{
const struct ObjectEventGraphicsInfo *graphicsInfo = SpeciesToGraphicsInfo(species, shiny, female);
ObjectEventSetGraphics(objEvent, graphicsInfo);
@ -2256,7 +2256,7 @@ static void FollowerSetGraphics(struct ObjectEvent *objEvent, u32 species, bool3
// Intended to be used for mid-movement form changes, etc.
static void RefreshFollowerGraphics(struct ObjectEvent *objEvent)
{
u32 species = OW_SPECIES(objEvent);
enum Species species = OW_SPECIES(objEvent);
bool32 shiny = OW_SHINY(objEvent);
bool32 female = OW_FEMALE(objEvent);
const struct ObjectEventGraphicsInfo *graphicsInfo = SpeciesToGraphicsInfo(species, shiny, female);
@ -2298,7 +2298,7 @@ static void RefreshFollowerGraphics(struct ObjectEvent *objEvent)
}
}
u16 GetOverworldWeatherSpecies(u16 species)
enum Species GetOverworldWeatherSpecies(enum Species species)
{
u32 i;
u32 weather = GetCurrentWeather();
@ -2427,7 +2427,7 @@ bool32 IsFollowerVisible(void)
|| MetatileBehavior_IsForcedMovementTile(gObjectEvents[gPlayerAvatar.objectEventId].currentMetatileBehavior));
}
static bool8 SpeciesHasType(u16 species, u8 type)
static bool8 SpeciesHasType(enum Species species, u8 type)
{
return GetSpeciesType(species, 0) == type || GetSpeciesType(species, 1) == type;
}
@ -2475,7 +2475,7 @@ static enum Direction FindMetatileBehaviorWithinRange(s32 x, s32 y, u32 mb, u8 d
}
// Check a single follower message condition
bool32 CheckMsgCondition(const struct MsgCondition *cond, struct Pokemon *mon, u32 species, struct ObjectEvent *obj)
bool32 CheckMsgCondition(const struct MsgCondition *cond, struct Pokemon *mon, enum Species species, struct ObjectEvent *obj)
{
u32 multi;
if (species == SPECIES_NONE)
@ -2541,7 +2541,7 @@ bool32 CheckMsgCondition(const struct MsgCondition *cond, struct Pokemon *mon, u
// Check if follower info can be displayed in the current situation;
// i.e, if all its conditions match
bool32 CheckMsgInfo(const struct FollowerMsgInfoExtended *info, struct Pokemon *mon, u32 species, struct ObjectEvent *obj)
bool32 CheckMsgInfo(const struct FollowerMsgInfoExtended *info, struct Pokemon *mon, enum Species species, struct ObjectEvent *obj)
{
u32 i;
@ -11616,7 +11616,7 @@ bool8 MovementAction_WalkSlowStairsRight_Step1(struct ObjectEvent *objectEvent,
return FALSE;
}
static u16 GetGraphicsIdForMon(u32 species, bool32 shiny, bool32 female)
static u16 GetGraphicsIdForMon(enum Species species, bool32 shiny, bool32 female)
{
u16 graphicsId = species + OBJ_EVENT_MON;
if (shiny)
@ -11626,7 +11626,7 @@ static u16 GetGraphicsIdForMon(u32 species, bool32 shiny, bool32 female)
return graphicsId;
}
static u16 GetUnownSpecies(struct Pokemon *mon)
static enum Species GetUnownSpecies(struct Pokemon *mon)
{
u32 form = GET_UNOWN_LETTER(mon->box.personality);
if (form == 0)

View File

@ -410,7 +410,7 @@ static void Task_Sparkles_CircleInward_End(u8 taskId)
#define tSpecies data[2] // Never read
u8 EvolutionSparkles_SprayAndFlash(u16 species)
u8 EvolutionSparkles_SprayAndFlash(enum Species species)
{
u8 taskId = CreateTask(Task_Sparkles_SprayAndFlash_Init, 0);
gTasks[taskId].tSpecies = species;
@ -461,7 +461,7 @@ static void Task_Sparkles_SprayAndFlash_End(u8 taskId)
}
// Separate from EvolutionSparkles_SprayAndFlash for difference in fade color
u8 EvolutionSparkles_SprayAndFlash_Trade(u16 species)
u8 EvolutionSparkles_SprayAndFlash_Trade(enum Species species)
{
u8 taskId = CreateTask(Task_Sparkles_SprayAndFlashTrade_Init, 0);
gTasks[taskId].tSpecies = species;

View File

@ -60,7 +60,7 @@ static void CB2_TradeEvolutionSceneUpdate(void);
static void EvoDummyFunc(void);
static void VBlankCB_EvolutionScene(void);
static void VBlankCB_TradeEvolutionScene(void);
static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, u16 speciesId);
static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, enum Species speciesId);
static bool32 EvoScene_IsMonAnimFinished(u8 monSpriteId);
static void StartBgAnimation(bool8 isLink);
static void StopBgAnimation(void);
@ -180,8 +180,8 @@ static void Task_BeginEvolutionScene(u8 taskId)
case 1:
if (!gPaletteFade.active)
{
u16 postEvoSpecies;
bool8 canStopEvo;
enum Species postEvoSpecies;
bool32 canStopEvo;
u8 partyId;
mon = &gPlayerParty[gTasks[taskId].tPartyId];
@ -196,7 +196,7 @@ static void Task_BeginEvolutionScene(u8 taskId)
}
}
void BeginEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId)
void BeginEvolutionScene(struct Pokemon *mon, enum Species postEvoSpecies, bool32 canStopEvo, u8 partyId)
{
u8 taskId = CreateTask(Task_BeginEvolutionScene, 0);
gTasks[taskId].tState = 0;
@ -206,10 +206,10 @@ void BeginEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopE
SetMainCallback2(CB2_BeginEvolutionScene);
}
void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u8 partyId)
void EvolutionScene(struct Pokemon *mon, enum Species postEvoSpecies, bool32 canStopEvo, u8 partyId)
{
u8 name[POKEMON_NAME_BUFFER_SIZE];
u16 currSpecies;
enum Species currSpecies;
u32 personality;
bool32 isShiny;
u8 id;
@ -311,10 +311,10 @@ void EvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, bool8 canStopEvo, u
static void CB2_EvolutionSceneLoadGraphics(void)
{
u8 id;
u16 postEvoSpecies;
enum Species postEvoSpecies;
u32 personality;
struct Pokemon *mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskId].tPartyId];
bool8 isShiny;
bool32 isShiny;
postEvoSpecies = gTasks[sEvoStructPtr->evoTaskId].tPostEvoSpecies;
isShiny = GetMonData(mon, MON_DATA_IS_SHINY);
@ -385,7 +385,7 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
mon = &gEnemyParty[TRADEMON_FROM_PC];
else
mon = &gPlayerParty[gTasks[sEvoStructPtr->evoTaskId].tPartyId];
u16 postEvoSpecies = gTasks[sEvoStructPtr->evoTaskId].tPostEvoSpecies;
enum Species postEvoSpecies = gTasks[sEvoStructPtr->evoTaskId].tPostEvoSpecies;
switch (gMain.state)
{
@ -467,13 +467,13 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void)
}
}
void TradeEvolutionScene(struct Pokemon *mon, u16 postEvoSpecies, u8 preEvoSpriteId, u8 partyId)
void TradeEvolutionScene(struct Pokemon *mon, enum Species postEvoSpecies, u8 preEvoSpriteId, u8 partyId)
{
u8 name[POKEMON_NAME_BUFFER_SIZE];
u16 currSpecies;
enum Species currSpecies;
u32 personality;
u8 id;
bool8 isShiny;
bool32 isShiny;
GetMonData(mon, MON_DATA_NICKNAME, name);
StringCopy_Nickname(gStringVar1, name);
@ -547,7 +547,7 @@ static void CB2_TradeEvolutionSceneUpdate(void)
RunTasks();
}
static void CreateShedinja(u32 preEvoSpecies, u32 postEvoSpecies, struct Pokemon *mon)
static void CreateShedinja(enum Species preEvoSpecies, enum Species postEvoSpecies, struct Pokemon *mon)
{
u32 data = 0;
enum Item ball = ITEM_POKE_BALL;
@ -1716,7 +1716,7 @@ static void RestoreBgAfterAnim(void)
Free(sBgAnimPal);
}
static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, u16 speciesId)
static void EvoScene_DoMonAnimAndCry(u8 monSpriteId, enum Species speciesId)
{
DoMonFrontSpriteAnimation(&gSprites[monSpriteId], speciesId, FALSE, 0);
}

View File

@ -192,7 +192,7 @@ static void AnimateIndoorShowMonBg(struct Task *);
static bool8 SlideIndoorBannerOnscreen(struct Task *);
static bool8 SlideIndoorBannerOffscreen(struct Task *);
static u8 InitFieldMoveMonSprite(u32, bool8, u32);
static u8 InitFieldMoveMonSprite(enum Species, bool8, u32);
static void SpriteCB_FieldMoveMonSlideOnscreen(struct Sprite *);
static void SpriteCB_FieldMoveMonWaitAfterCry(struct Sprite *);
static void SpriteCB_FieldMoveMonSlideOffscreen(struct Sprite *);
@ -1015,7 +1015,7 @@ u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority)
return CreateSprite(&sSpriteTemplate_NewGameBirch, x, y, subpriority);
}
u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
u8 CreateMonSprite_PicBox(enum Species species, s16 x, s16 y, u8 subpriority)
{
s32 spriteId = CreateMonPicSprite(species, FALSE, 0x8000, TRUE, x, y, 0, species);
PreservePaletteInWeather(IndexOfSpritePaletteTag(species) + 0x10);
@ -1025,7 +1025,7 @@ u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
return spriteId;
}
u8 CreateMonSprite_FieldMove(u16 species, bool8 isShiny, u32 personality, s16 x, s16 y, u8 subpriority)
u8 CreateMonSprite_FieldMove(enum Species species, bool8 isShiny, u32 personality, s16 x, s16 y, u8 subpriority)
{
u16 spriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, x, y, 0, species);
PreservePaletteInWeather(gSprites[spriteId].oam.paletteNum + 0x10);
@ -3267,7 +3267,7 @@ static bool8 SlideIndoorBannerOffscreen(struct Task *task)
#undef tBgOffset
#undef tMonSpriteId
static u8 InitFieldMoveMonSprite(u32 species, bool8 isShiny, u32 personality)
static u8 InitFieldMoveMonSprite(enum Species species, bool8 isShiny, u32 personality)
{
bool16 noDucking;
u8 monSprite;

View File

@ -837,7 +837,7 @@ bool32 CanTriggerSpinEvolution()
{
for (u32 i = 0; i < PARTY_SIZE; i++)
{
u16 species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_OVERWORLD_SPECIAL, 0, NULL, &canStopEvo, CHECK_EVO);
enum Species species = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_OVERWORLD_SPECIAL, 0, NULL, &canStopEvo, CHECK_EVO);
if (species != SPECIES_NONE)
{
return TRUE;

View File

@ -21,7 +21,7 @@
static bool32 IsMonValidSpecies(struct Pokemon *pokemon)
{
u16 species = GetMonData(pokemon, MON_DATA_SPECIES_OR_EGG);
enum Species species = GetMonData(pokemon, MON_DATA_SPECIES_OR_EGG);
if (species == SPECIES_NONE || species == SPECIES_EGG)
return FALSE;

View File

@ -167,7 +167,7 @@ static void AnimateElevatorWindowView(u16 nfloors, bool8 direction);
static void Task_AnimateElevatorWindowView(u8 taskId);
static void Task_RunPokemonLeagueLightingEffect(u8 taskId);
static void Task_CancelPokemonLeagueLightingEffect(u8 taskId);
static u16 SampleResortGorgeousMon(void);
static enum Species SampleResortGorgeousMon(void);
static u16 SampleResortGorgeousReward(void);
static void Task_ShakeScreen(u8 taskId);
static void Task_EndScreenShake(u8 taskId);
@ -1335,7 +1335,7 @@ bool8 CheckLeadMonTough(void)
void IsGrassTypeInParty(void)
{
u8 i;
u16 species;
enum Species species;
struct Pokemon *pokemon;
for (i = 0; i < PARTY_SIZE; i++)
{
@ -1638,12 +1638,12 @@ u8 GetLeadMonIndex(void)
return 0;
}
u16 ScriptGetPartyMonSpecies(void)
enum Species ScriptGetPartyMonSpecies(void)
{
return GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES_OR_EGG, NULL);
}
u16 ScriptGetSelectedMonSpecies(void)
enum Species ScriptGetSelectedMonSpecies(void)
{
struct BoxPokemon *boxmon = GetSelectedBoxMonFromPcOrParty();
return GetBoxMonData(boxmon, MON_DATA_SPECIES_OR_EGG);
@ -4456,7 +4456,7 @@ bool32 CheckObjectAtXY(u32 x, u32 y)
return FALSE;
}
bool32 CheckPartyHasSpecies(u32 givenSpecies)
bool32 CheckPartyHasSpecies(enum Species givenSpecies)
{
u32 partyIndex;
@ -4623,7 +4623,7 @@ u8 GetLeadMonFriendship(void)
return 0;
}
enum Move GetFirstPartnerMove(u16 species)
enum Move GetFirstPartnerMove(enum Species species)
{
switch (species)
{
@ -5583,7 +5583,7 @@ void UpdateLoreleiDollCollection(void)
void SampleResortGorgeousMonAndReward(void)
{
u16 requestedSpecies = VarGet(VAR_RESORT_GORGEOUS_REQUESTED_MON);
enum Species requestedSpecies = VarGet(VAR_RESORT_GORGEOUS_REQUESTED_MON);
if (requestedSpecies == SPECIES_NONE || requestedSpecies == 0xFFFF)
{
VarSet(VAR_RESORT_GORGEOUS_REQUESTED_MON, SampleResortGorgeousMon());
@ -5593,10 +5593,10 @@ void SampleResortGorgeousMonAndReward(void)
StringCopy(gStringVar1, gSpeciesInfo[VarGet(VAR_RESORT_GORGEOUS_REQUESTED_MON)].speciesName);
}
static u16 SampleResortGorgeousMon(void)
static enum Species SampleResortGorgeousMon(void)
{
u16 i;
u16 species;
enum Species species;
for (i = 0; i < 100; i++)
{
species = (Random() % (NUM_SPECIES - 1)) + 1;
@ -5729,7 +5729,7 @@ void ForcePlayerToStartSurfing(void)
void UpdateTrainerCardPhotoIcons(void)
{
u16 species[PARTY_SIZE];
enum Species species[PARTY_SIZE];
u32 personality[PARTY_SIZE];
u8 i;
u8 partyCount;

Some files were not shown because too many files have changed in this diff Show More