diff --git a/include/apprentice.h b/include/apprentice.h index 75a773bde1..9fa5c6f1f3 100644 --- a/include/apprentice.h +++ b/include/apprentice.h @@ -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]; }; diff --git a/include/battle.h b/include/battle.h index 5f9bda0151..79db3261e9 100644 --- a/include/battle.h +++ b/include/battle.h @@ -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 diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index bdabb32a27..841d4f208a 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -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); diff --git a/include/battle_anim.h b/include/battle_anim.h index 079ee026b8..f20a09bb5f 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -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; diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 134bb2df5c..1ed57e317f 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -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; }; diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 95bc25bdca..ccc3631a6d 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -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); diff --git a/include/battle_main.h b/include/battle_main.h index f288a018e6..6a79b2aad3 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -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); diff --git a/include/battle_util.h b/include/battle_util.h index 2486bdd2b1..3f89134156 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -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 diff --git a/include/battle_z_move.h b/include/battle_z_move.h index 6a039c21f0..dbdc5054c1 100644 --- a/include/battle_z_move.h +++ b/include/battle_z_move.h @@ -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); diff --git a/include/constants/species.h b/include/constants/species.h index 98b6f3c8e5..49079d5494 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -6,1691 +6,1693 @@ // Discussion: https://github.com/rh-hideout/pokeemerald-expansion/pull/5075#issuecomment-2384088602 // Showdown: https://github.com/smogon/Pokemon-Showdown/blob/master/data/pokedex.ts -#define SPECIES_NONE 0 -#define SPECIES_BULBASAUR 1 -#define SPECIES_IVYSAUR 2 -#define SPECIES_VENUSAUR 3 -#define SPECIES_CHARMANDER 4 -#define SPECIES_CHARMELEON 5 -#define SPECIES_CHARIZARD 6 -#define SPECIES_SQUIRTLE 7 -#define SPECIES_WARTORTLE 8 -#define SPECIES_BLASTOISE 9 -#define SPECIES_CATERPIE 10 -#define SPECIES_METAPOD 11 -#define SPECIES_BUTTERFREE 12 -#define SPECIES_WEEDLE 13 -#define SPECIES_KAKUNA 14 -#define SPECIES_BEEDRILL 15 -#define SPECIES_PIDGEY 16 -#define SPECIES_PIDGEOTTO 17 -#define SPECIES_PIDGEOT 18 -#define SPECIES_RATTATA 19 -#define SPECIES_RATICATE 20 -#define SPECIES_SPEAROW 21 -#define SPECIES_FEAROW 22 -#define SPECIES_EKANS 23 -#define SPECIES_ARBOK 24 -#define SPECIES_PIKACHU 25 -#define SPECIES_RAICHU 26 -#define SPECIES_SANDSHREW 27 -#define SPECIES_SANDSLASH 28 -#define SPECIES_NIDORAN_F 29 -#define SPECIES_NIDORINA 30 -#define SPECIES_NIDOQUEEN 31 -#define SPECIES_NIDORAN_M 32 -#define SPECIES_NIDORINO 33 -#define SPECIES_NIDOKING 34 -#define SPECIES_CLEFAIRY 35 -#define SPECIES_CLEFABLE 36 -#define SPECIES_VULPIX 37 -#define SPECIES_NINETALES 38 -#define SPECIES_JIGGLYPUFF 39 -#define SPECIES_WIGGLYTUFF 40 -#define SPECIES_ZUBAT 41 -#define SPECIES_GOLBAT 42 -#define SPECIES_ODDISH 43 -#define SPECIES_GLOOM 44 -#define SPECIES_VILEPLUME 45 -#define SPECIES_PARAS 46 -#define SPECIES_PARASECT 47 -#define SPECIES_VENONAT 48 -#define SPECIES_VENOMOTH 49 -#define SPECIES_DIGLETT 50 -#define SPECIES_DUGTRIO 51 -#define SPECIES_MEOWTH 52 -#define SPECIES_PERSIAN 53 -#define SPECIES_PSYDUCK 54 -#define SPECIES_GOLDUCK 55 -#define SPECIES_MANKEY 56 -#define SPECIES_PRIMEAPE 57 -#define SPECIES_GROWLITHE 58 -#define SPECIES_ARCANINE 59 -#define SPECIES_POLIWAG 60 -#define SPECIES_POLIWHIRL 61 -#define SPECIES_POLIWRATH 62 -#define SPECIES_ABRA 63 -#define SPECIES_KADABRA 64 -#define SPECIES_ALAKAZAM 65 -#define SPECIES_MACHOP 66 -#define SPECIES_MACHOKE 67 -#define SPECIES_MACHAMP 68 -#define SPECIES_BELLSPROUT 69 -#define SPECIES_WEEPINBELL 70 -#define SPECIES_VICTREEBEL 71 -#define SPECIES_TENTACOOL 72 -#define SPECIES_TENTACRUEL 73 -#define SPECIES_GEODUDE 74 -#define SPECIES_GRAVELER 75 -#define SPECIES_GOLEM 76 -#define SPECIES_PONYTA 77 -#define SPECIES_RAPIDASH 78 -#define SPECIES_SLOWPOKE 79 -#define SPECIES_SLOWBRO 80 -#define SPECIES_MAGNEMITE 81 -#define SPECIES_MAGNETON 82 -#define SPECIES_FARFETCHD 83 -#define SPECIES_DODUO 84 -#define SPECIES_DODRIO 85 -#define SPECIES_SEEL 86 -#define SPECIES_DEWGONG 87 -#define SPECIES_GRIMER 88 -#define SPECIES_MUK 89 -#define SPECIES_SHELLDER 90 -#define SPECIES_CLOYSTER 91 -#define SPECIES_GASTLY 92 -#define SPECIES_HAUNTER 93 -#define SPECIES_GENGAR 94 -#define SPECIES_ONIX 95 -#define SPECIES_DROWZEE 96 -#define SPECIES_HYPNO 97 -#define SPECIES_KRABBY 98 -#define SPECIES_KINGLER 99 -#define SPECIES_VOLTORB 100 -#define SPECIES_ELECTRODE 101 -#define SPECIES_EXEGGCUTE 102 -#define SPECIES_EXEGGUTOR 103 -#define SPECIES_CUBONE 104 -#define SPECIES_MAROWAK 105 -#define SPECIES_HITMONLEE 106 -#define SPECIES_HITMONCHAN 107 -#define SPECIES_LICKITUNG 108 -#define SPECIES_KOFFING 109 -#define SPECIES_WEEZING 110 -#define SPECIES_RHYHORN 111 -#define SPECIES_RHYDON 112 -#define SPECIES_CHANSEY 113 -#define SPECIES_TANGELA 114 -#define SPECIES_KANGASKHAN 115 -#define SPECIES_HORSEA 116 -#define SPECIES_SEADRA 117 -#define SPECIES_GOLDEEN 118 -#define SPECIES_SEAKING 119 -#define SPECIES_STARYU 120 -#define SPECIES_STARMIE 121 -#define SPECIES_MR_MIME 122 -#define SPECIES_SCYTHER 123 -#define SPECIES_JYNX 124 -#define SPECIES_ELECTABUZZ 125 -#define SPECIES_MAGMAR 126 -#define SPECIES_PINSIR 127 -#define SPECIES_TAUROS 128 -#define SPECIES_MAGIKARP 129 -#define SPECIES_GYARADOS 130 -#define SPECIES_LAPRAS 131 -#define SPECIES_DITTO 132 -#define SPECIES_EEVEE 133 -#define SPECIES_VAPOREON 134 -#define SPECIES_JOLTEON 135 -#define SPECIES_FLAREON 136 -#define SPECIES_PORYGON 137 -#define SPECIES_OMANYTE 138 -#define SPECIES_OMASTAR 139 -#define SPECIES_KABUTO 140 -#define SPECIES_KABUTOPS 141 -#define SPECIES_AERODACTYL 142 -#define SPECIES_SNORLAX 143 -#define SPECIES_ARTICUNO 144 -#define SPECIES_ZAPDOS 145 -#define SPECIES_MOLTRES 146 -#define SPECIES_DRATINI 147 -#define SPECIES_DRAGONAIR 148 -#define SPECIES_DRAGONITE 149 -#define SPECIES_MEWTWO 150 -#define SPECIES_MEW 151 -#define SPECIES_CHIKORITA 152 -#define SPECIES_BAYLEEF 153 -#define SPECIES_MEGANIUM 154 -#define SPECIES_CYNDAQUIL 155 -#define SPECIES_QUILAVA 156 -#define SPECIES_TYPHLOSION 157 -#define SPECIES_TOTODILE 158 -#define SPECIES_CROCONAW 159 -#define SPECIES_FERALIGATR 160 -#define SPECIES_SENTRET 161 -#define SPECIES_FURRET 162 -#define SPECIES_HOOTHOOT 163 -#define SPECIES_NOCTOWL 164 -#define SPECIES_LEDYBA 165 -#define SPECIES_LEDIAN 166 -#define SPECIES_SPINARAK 167 -#define SPECIES_ARIADOS 168 -#define SPECIES_CROBAT 169 -#define SPECIES_CHINCHOU 170 -#define SPECIES_LANTURN 171 -#define SPECIES_PICHU 172 -#define SPECIES_CLEFFA 173 -#define SPECIES_IGGLYBUFF 174 -#define SPECIES_TOGEPI 175 -#define SPECIES_TOGETIC 176 -#define SPECIES_NATU 177 -#define SPECIES_XATU 178 -#define SPECIES_MAREEP 179 -#define SPECIES_FLAAFFY 180 -#define SPECIES_AMPHAROS 181 -#define SPECIES_BELLOSSOM 182 -#define SPECIES_MARILL 183 -#define SPECIES_AZUMARILL 184 -#define SPECIES_SUDOWOODO 185 -#define SPECIES_POLITOED 186 -#define SPECIES_HOPPIP 187 -#define SPECIES_SKIPLOOM 188 -#define SPECIES_JUMPLUFF 189 -#define SPECIES_AIPOM 190 -#define SPECIES_SUNKERN 191 -#define SPECIES_SUNFLORA 192 -#define SPECIES_YANMA 193 -#define SPECIES_WOOPER 194 -#define SPECIES_QUAGSIRE 195 -#define SPECIES_ESPEON 196 -#define SPECIES_UMBREON 197 -#define SPECIES_MURKROW 198 -#define SPECIES_SLOWKING 199 -#define SPECIES_MISDREAVUS 200 -#define SPECIES_UNOWN 201 -#define SPECIES_WOBBUFFET 202 -#define SPECIES_GIRAFARIG 203 -#define SPECIES_PINECO 204 -#define SPECIES_FORRETRESS 205 -#define SPECIES_DUNSPARCE 206 -#define SPECIES_GLIGAR 207 -#define SPECIES_STEELIX 208 -#define SPECIES_SNUBBULL 209 -#define SPECIES_GRANBULL 210 -#define SPECIES_QWILFISH 211 -#define SPECIES_SCIZOR 212 -#define SPECIES_SHUCKLE 213 -#define SPECIES_HERACROSS 214 -#define SPECIES_SNEASEL 215 -#define SPECIES_TEDDIURSA 216 -#define SPECIES_URSARING 217 -#define SPECIES_SLUGMA 218 -#define SPECIES_MAGCARGO 219 -#define SPECIES_SWINUB 220 -#define SPECIES_PILOSWINE 221 -#define SPECIES_CORSOLA 222 -#define SPECIES_REMORAID 223 -#define SPECIES_OCTILLERY 224 -#define SPECIES_DELIBIRD 225 -#define SPECIES_MANTINE 226 -#define SPECIES_SKARMORY 227 -#define SPECIES_HOUNDOUR 228 -#define SPECIES_HOUNDOOM 229 -#define SPECIES_KINGDRA 230 -#define SPECIES_PHANPY 231 -#define SPECIES_DONPHAN 232 -#define SPECIES_PORYGON2 233 -#define SPECIES_STANTLER 234 -#define SPECIES_SMEARGLE 235 -#define SPECIES_TYROGUE 236 -#define SPECIES_HITMONTOP 237 -#define SPECIES_SMOOCHUM 238 -#define SPECIES_ELEKID 239 -#define SPECIES_MAGBY 240 -#define SPECIES_MILTANK 241 -#define SPECIES_BLISSEY 242 -#define SPECIES_RAIKOU 243 -#define SPECIES_ENTEI 244 -#define SPECIES_SUICUNE 245 -#define SPECIES_LARVITAR 246 -#define SPECIES_PUPITAR 247 -#define SPECIES_TYRANITAR 248 -#define SPECIES_LUGIA 249 -#define SPECIES_HO_OH 250 -#define SPECIES_CELEBI 251 -#define SPECIES_TREECKO 252 -#define SPECIES_GROVYLE 253 -#define SPECIES_SCEPTILE 254 -#define SPECIES_TORCHIC 255 -#define SPECIES_COMBUSKEN 256 -#define SPECIES_BLAZIKEN 257 -#define SPECIES_MUDKIP 258 -#define SPECIES_MARSHTOMP 259 -#define SPECIES_SWAMPERT 260 -#define SPECIES_POOCHYENA 261 -#define SPECIES_MIGHTYENA 262 -#define SPECIES_ZIGZAGOON 263 -#define SPECIES_LINOONE 264 -#define SPECIES_WURMPLE 265 -#define SPECIES_SILCOON 266 -#define SPECIES_BEAUTIFLY 267 -#define SPECIES_CASCOON 268 -#define SPECIES_DUSTOX 269 -#define SPECIES_LOTAD 270 -#define SPECIES_LOMBRE 271 -#define SPECIES_LUDICOLO 272 -#define SPECIES_SEEDOT 273 -#define SPECIES_NUZLEAF 274 -#define SPECIES_SHIFTRY 275 -#define SPECIES_TAILLOW 276 -#define SPECIES_SWELLOW 277 -#define SPECIES_WINGULL 278 -#define SPECIES_PELIPPER 279 -#define SPECIES_RALTS 280 -#define SPECIES_KIRLIA 281 -#define SPECIES_GARDEVOIR 282 -#define SPECIES_SURSKIT 283 -#define SPECIES_MASQUERAIN 284 -#define SPECIES_SHROOMISH 285 -#define SPECIES_BRELOOM 286 -#define SPECIES_SLAKOTH 287 -#define SPECIES_VIGOROTH 288 -#define SPECIES_SLAKING 289 -#define SPECIES_NINCADA 290 -#define SPECIES_NINJASK 291 -#define SPECIES_SHEDINJA 292 -#define SPECIES_WHISMUR 293 -#define SPECIES_LOUDRED 294 -#define SPECIES_EXPLOUD 295 -#define SPECIES_MAKUHITA 296 -#define SPECIES_HARIYAMA 297 -#define SPECIES_AZURILL 298 -#define SPECIES_NOSEPASS 299 -#define SPECIES_SKITTY 300 -#define SPECIES_DELCATTY 301 -#define SPECIES_SABLEYE 302 -#define SPECIES_MAWILE 303 -#define SPECIES_ARON 304 -#define SPECIES_LAIRON 305 -#define SPECIES_AGGRON 306 -#define SPECIES_MEDITITE 307 -#define SPECIES_MEDICHAM 308 -#define SPECIES_ELECTRIKE 309 -#define SPECIES_MANECTRIC 310 -#define SPECIES_PLUSLE 311 -#define SPECIES_MINUN 312 -#define SPECIES_VOLBEAT 313 -#define SPECIES_ILLUMISE 314 -#define SPECIES_ROSELIA 315 -#define SPECIES_GULPIN 316 -#define SPECIES_SWALOT 317 -#define SPECIES_CARVANHA 318 -#define SPECIES_SHARPEDO 319 -#define SPECIES_WAILMER 320 -#define SPECIES_WAILORD 321 -#define SPECIES_NUMEL 322 -#define SPECIES_CAMERUPT 323 -#define SPECIES_TORKOAL 324 -#define SPECIES_SPOINK 325 -#define SPECIES_GRUMPIG 326 -#define SPECIES_SPINDA 327 -#define SPECIES_TRAPINCH 328 -#define SPECIES_VIBRAVA 329 -#define SPECIES_FLYGON 330 -#define SPECIES_CACNEA 331 -#define SPECIES_CACTURNE 332 -#define SPECIES_SWABLU 333 -#define SPECIES_ALTARIA 334 -#define SPECIES_ZANGOOSE 335 -#define SPECIES_SEVIPER 336 -#define SPECIES_LUNATONE 337 -#define SPECIES_SOLROCK 338 -#define SPECIES_BARBOACH 339 -#define SPECIES_WHISCASH 340 -#define SPECIES_CORPHISH 341 -#define SPECIES_CRAWDAUNT 342 -#define SPECIES_BALTOY 343 -#define SPECIES_CLAYDOL 344 -#define SPECIES_LILEEP 345 -#define SPECIES_CRADILY 346 -#define SPECIES_ANORITH 347 -#define SPECIES_ARMALDO 348 -#define SPECIES_FEEBAS 349 -#define SPECIES_MILOTIC 350 -#define SPECIES_CASTFORM SPECIES_CASTFORM_NORMAL -#define SPECIES_CASTFORM_NORMAL 351 -#define SPECIES_KECLEON 352 -#define SPECIES_SHUPPET 353 -#define SPECIES_BANETTE 354 -#define SPECIES_DUSKULL 355 -#define SPECIES_DUSCLOPS 356 -#define SPECIES_TROPIUS 357 -#define SPECIES_CHIMECHO 358 -#define SPECIES_ABSOL 359 -#define SPECIES_WYNAUT 360 -#define SPECIES_SNORUNT 361 -#define SPECIES_GLALIE 362 -#define SPECIES_SPHEAL 363 -#define SPECIES_SEALEO 364 -#define SPECIES_WALREIN 365 -#define SPECIES_CLAMPERL 366 -#define SPECIES_HUNTAIL 367 -#define SPECIES_GOREBYSS 368 -#define SPECIES_RELICANTH 369 -#define SPECIES_LUVDISC 370 -#define SPECIES_BAGON 371 -#define SPECIES_SHELGON 372 -#define SPECIES_SALAMENCE 373 -#define SPECIES_BELDUM 374 -#define SPECIES_METANG 375 -#define SPECIES_METAGROSS 376 -#define SPECIES_REGIROCK 377 -#define SPECIES_REGICE 378 -#define SPECIES_REGISTEEL 379 -#define SPECIES_LATIAS 380 -#define SPECIES_LATIOS 381 -#define SPECIES_KYOGRE 382 -#define SPECIES_GROUDON 383 -#define SPECIES_RAYQUAZA 384 -#define SPECIES_JIRACHI 385 -#define SPECIES_DEOXYS SPECIES_DEOXYS_NORMAL -#define SPECIES_DEOXYS_NORMAL 386 -#define SPECIES_TURTWIG 387 -#define SPECIES_GROTLE 388 -#define SPECIES_TORTERRA 389 -#define SPECIES_CHIMCHAR 390 -#define SPECIES_MONFERNO 391 -#define SPECIES_INFERNAPE 392 -#define SPECIES_PIPLUP 393 -#define SPECIES_PRINPLUP 394 -#define SPECIES_EMPOLEON 395 -#define SPECIES_STARLY 396 -#define SPECIES_STARAVIA 397 -#define SPECIES_STARAPTOR 398 -#define SPECIES_BIDOOF 399 -#define SPECIES_BIBAREL 400 -#define SPECIES_KRICKETOT 401 -#define SPECIES_KRICKETUNE 402 -#define SPECIES_SHINX 403 -#define SPECIES_LUXIO 404 -#define SPECIES_LUXRAY 405 -#define SPECIES_BUDEW 406 -#define SPECIES_ROSERADE 407 -#define SPECIES_CRANIDOS 408 -#define SPECIES_RAMPARDOS 409 -#define SPECIES_SHIELDON 410 -#define SPECIES_BASTIODON 411 -#define SPECIES_BURMY_PLANT 412 -#define SPECIES_BURMY SPECIES_BURMY_PLANT -#define SPECIES_WORMADAM_PLANT 413 -#define SPECIES_WORMADAM SPECIES_WORMADAM_PLANT -#define SPECIES_MOTHIM_PLANT 414 -#define SPECIES_MOTHIM SPECIES_MOTHIM_PLANT -#define SPECIES_COMBEE 415 -#define SPECIES_VESPIQUEN 416 -#define SPECIES_PACHIRISU 417 -#define SPECIES_BUIZEL 418 -#define SPECIES_FLOATZEL 419 -#define SPECIES_CHERUBI 420 -#define SPECIES_CHERRIM SPECIES_CHERRIM_OVERCAST -#define SPECIES_CHERRIM_OVERCAST 421 -#define SPECIES_SHELLOS_WEST 422 -#define SPECIES_SHELLOS SPECIES_SHELLOS_WEST -#define SPECIES_GASTRODON_WEST 423 -#define SPECIES_GASTRODON SPECIES_GASTRODON_WEST -#define SPECIES_AMBIPOM 424 -#define SPECIES_DRIFLOON 425 -#define SPECIES_DRIFBLIM 426 -#define SPECIES_BUNEARY 427 -#define SPECIES_LOPUNNY 428 -#define SPECIES_MISMAGIUS 429 -#define SPECIES_HONCHKROW 430 -#define SPECIES_GLAMEOW 431 -#define SPECIES_PURUGLY 432 -#define SPECIES_CHINGLING 433 -#define SPECIES_STUNKY 434 -#define SPECIES_SKUNTANK 435 -#define SPECIES_BRONZOR 436 -#define SPECIES_BRONZONG 437 -#define SPECIES_BONSLY 438 -#define SPECIES_MIME_JR 439 -#define SPECIES_HAPPINY 440 -#define SPECIES_CHATOT 441 -#define SPECIES_SPIRITOMB 442 -#define SPECIES_GIBLE 443 -#define SPECIES_GABITE 444 -#define SPECIES_GARCHOMP 445 -#define SPECIES_MUNCHLAX 446 -#define SPECIES_RIOLU 447 -#define SPECIES_LUCARIO 448 -#define SPECIES_HIPPOPOTAS 449 -#define SPECIES_HIPPOWDON 450 -#define SPECIES_SKORUPI 451 -#define SPECIES_DRAPION 452 -#define SPECIES_CROAGUNK 453 -#define SPECIES_TOXICROAK 454 -#define SPECIES_CARNIVINE 455 -#define SPECIES_FINNEON 456 -#define SPECIES_LUMINEON 457 -#define SPECIES_MANTYKE 458 -#define SPECIES_SNOVER 459 -#define SPECIES_ABOMASNOW 460 -#define SPECIES_WEAVILE 461 -#define SPECIES_MAGNEZONE 462 -#define SPECIES_LICKILICKY 463 -#define SPECIES_RHYPERIOR 464 -#define SPECIES_TANGROWTH 465 -#define SPECIES_ELECTIVIRE 466 -#define SPECIES_MAGMORTAR 467 -#define SPECIES_TOGEKISS 468 -#define SPECIES_YANMEGA 469 -#define SPECIES_LEAFEON 470 -#define SPECIES_GLACEON 471 -#define SPECIES_GLISCOR 472 -#define SPECIES_MAMOSWINE 473 -#define SPECIES_PORYGON_Z 474 -#define SPECIES_GALLADE 475 -#define SPECIES_PROBOPASS 476 -#define SPECIES_DUSKNOIR 477 -#define SPECIES_FROSLASS 478 -#define SPECIES_ROTOM 479 -#define SPECIES_UXIE 480 -#define SPECIES_MESPRIT 481 -#define SPECIES_AZELF 482 -#define SPECIES_DIALGA 483 -#define SPECIES_PALKIA 484 -#define SPECIES_HEATRAN 485 -#define SPECIES_REGIGIGAS 486 -#define SPECIES_GIRATINA SPECIES_GIRATINA_ALTERED -#define SPECIES_GIRATINA_ALTERED 487 -#define SPECIES_CRESSELIA 488 -#define SPECIES_PHIONE 489 -#define SPECIES_MANAPHY 490 -#define SPECIES_DARKRAI 491 -#define SPECIES_SHAYMIN SPECIES_SHAYMIN_LAND -#define SPECIES_SHAYMIN_LAND 492 -#define SPECIES_ARCEUS SPECIES_ARCEUS_NORMAL -#define SPECIES_ARCEUS_NORMAL 493 -#define SPECIES_VICTINI 494 -#define SPECIES_SNIVY 495 -#define SPECIES_SERVINE 496 -#define SPECIES_SERPERIOR 497 -#define SPECIES_TEPIG 498 -#define SPECIES_PIGNITE 499 -#define SPECIES_EMBOAR 500 -#define SPECIES_OSHAWOTT 501 -#define SPECIES_DEWOTT 502 -#define SPECIES_SAMUROTT 503 -#define SPECIES_PATRAT 504 -#define SPECIES_WATCHOG 505 -#define SPECIES_LILLIPUP 506 -#define SPECIES_HERDIER 507 -#define SPECIES_STOUTLAND 508 -#define SPECIES_PURRLOIN 509 -#define SPECIES_LIEPARD 510 -#define SPECIES_PANSAGE 511 -#define SPECIES_SIMISAGE 512 -#define SPECIES_PANSEAR 513 -#define SPECIES_SIMISEAR 514 -#define SPECIES_PANPOUR 515 -#define SPECIES_SIMIPOUR 516 -#define SPECIES_MUNNA 517 -#define SPECIES_MUSHARNA 518 -#define SPECIES_PIDOVE 519 -#define SPECIES_TRANQUILL 520 -#define SPECIES_UNFEZANT 521 -#define SPECIES_BLITZLE 522 -#define SPECIES_ZEBSTRIKA 523 -#define SPECIES_ROGGENROLA 524 -#define SPECIES_BOLDORE 525 -#define SPECIES_GIGALITH 526 -#define SPECIES_WOOBAT 527 -#define SPECIES_SWOOBAT 528 -#define SPECIES_DRILBUR 529 -#define SPECIES_EXCADRILL 530 -#define SPECIES_AUDINO 531 -#define SPECIES_TIMBURR 532 -#define SPECIES_GURDURR 533 -#define SPECIES_CONKELDURR 534 -#define SPECIES_TYMPOLE 535 -#define SPECIES_PALPITOAD 536 -#define SPECIES_SEISMITOAD 537 -#define SPECIES_THROH 538 -#define SPECIES_SAWK 539 -#define SPECIES_SEWADDLE 540 -#define SPECIES_SWADLOON 541 -#define SPECIES_LEAVANNY 542 -#define SPECIES_VENIPEDE 543 -#define SPECIES_WHIRLIPEDE 544 -#define SPECIES_SCOLIPEDE 545 -#define SPECIES_COTTONEE 546 -#define SPECIES_WHIMSICOTT 547 -#define SPECIES_PETILIL 548 -#define SPECIES_LILLIGANT 549 -#define SPECIES_BASCULIN SPECIES_BASCULIN_RED_STRIPED -#define SPECIES_BASCULIN_RED_STRIPED 550 -#define SPECIES_SANDILE 551 -#define SPECIES_KROKOROK 552 -#define SPECIES_KROOKODILE 553 -#define SPECIES_DARUMAKA 554 -#define SPECIES_DARMANITAN SPECIES_DARMANITAN_STANDARD -#define SPECIES_DARMANITAN_STANDARD 555 -#define SPECIES_MARACTUS 556 -#define SPECIES_DWEBBLE 557 -#define SPECIES_CRUSTLE 558 -#define SPECIES_SCRAGGY 559 -#define SPECIES_SCRAFTY 560 -#define SPECIES_SIGILYPH 561 -#define SPECIES_YAMASK 562 -#define SPECIES_COFAGRIGUS 563 -#define SPECIES_TIRTOUGA 564 -#define SPECIES_CARRACOSTA 565 -#define SPECIES_ARCHEN 566 -#define SPECIES_ARCHEOPS 567 -#define SPECIES_TRUBBISH 568 -#define SPECIES_GARBODOR 569 -#define SPECIES_ZORUA 570 -#define SPECIES_ZOROARK 571 -#define SPECIES_MINCCINO 572 -#define SPECIES_CINCCINO 573 -#define SPECIES_GOTHITA 574 -#define SPECIES_GOTHORITA 575 -#define SPECIES_GOTHITELLE 576 -#define SPECIES_SOLOSIS 577 -#define SPECIES_DUOSION 578 -#define SPECIES_REUNICLUS 579 -#define SPECIES_DUCKLETT 580 -#define SPECIES_SWANNA 581 -#define SPECIES_VANILLITE 582 -#define SPECIES_VANILLISH 583 -#define SPECIES_VANILLUXE 584 -#define SPECIES_DEERLING SPECIES_DEERLING_SPRING -#define SPECIES_DEERLING_SPRING 585 -#define SPECIES_SAWSBUCK SPECIES_SAWSBUCK_SPRING -#define SPECIES_SAWSBUCK_SPRING 586 -#define SPECIES_EMOLGA 587 -#define SPECIES_KARRABLAST 588 -#define SPECIES_ESCAVALIER 589 -#define SPECIES_FOONGUS 590 -#define SPECIES_AMOONGUSS 591 -#define SPECIES_FRILLISH 592 -#define SPECIES_JELLICENT 593 -#define SPECIES_ALOMOMOLA 594 -#define SPECIES_JOLTIK 595 -#define SPECIES_GALVANTULA 596 -#define SPECIES_FERROSEED 597 -#define SPECIES_FERROTHORN 598 -#define SPECIES_KLINK 599 -#define SPECIES_KLANG 600 -#define SPECIES_KLINKLANG 601 -#define SPECIES_TYNAMO 602 -#define SPECIES_EELEKTRIK 603 -#define SPECIES_EELEKTROSS 604 -#define SPECIES_ELGYEM 605 -#define SPECIES_BEHEEYEM 606 -#define SPECIES_LITWICK 607 -#define SPECIES_LAMPENT 608 -#define SPECIES_CHANDELURE 609 -#define SPECIES_AXEW 610 -#define SPECIES_FRAXURE 611 -#define SPECIES_HAXORUS 612 -#define SPECIES_CUBCHOO 613 -#define SPECIES_BEARTIC 614 -#define SPECIES_CRYOGONAL 615 -#define SPECIES_SHELMET 616 -#define SPECIES_ACCELGOR 617 -#define SPECIES_STUNFISK 618 -#define SPECIES_MIENFOO 619 -#define SPECIES_MIENSHAO 620 -#define SPECIES_DRUDDIGON 621 -#define SPECIES_GOLETT 622 -#define SPECIES_GOLURK 623 -#define SPECIES_PAWNIARD 624 -#define SPECIES_BISHARP 625 -#define SPECIES_BOUFFALANT 626 -#define SPECIES_RUFFLET 627 -#define SPECIES_BRAVIARY 628 -#define SPECIES_VULLABY 629 -#define SPECIES_MANDIBUZZ 630 -#define SPECIES_HEATMOR 631 -#define SPECIES_DURANT 632 -#define SPECIES_DEINO 633 -#define SPECIES_ZWEILOUS 634 -#define SPECIES_HYDREIGON 635 -#define SPECIES_LARVESTA 636 -#define SPECIES_VOLCARONA 637 -#define SPECIES_COBALION 638 -#define SPECIES_TERRAKION 639 -#define SPECIES_VIRIZION 640 -#define SPECIES_TORNADUS SPECIES_TORNADUS_INCARNATE -#define SPECIES_TORNADUS_INCARNATE 641 -#define SPECIES_THUNDURUS SPECIES_THUNDURUS_INCARNATE -#define SPECIES_THUNDURUS_INCARNATE 642 -#define SPECIES_RESHIRAM 643 -#define SPECIES_ZEKROM 644 -#define SPECIES_LANDORUS SPECIES_LANDORUS_INCARNATE -#define SPECIES_LANDORUS_INCARNATE 645 -#define SPECIES_KYUREM 646 -#define SPECIES_KELDEO SPECIES_KELDEO_ORDINARY -#define SPECIES_KELDEO_ORDINARY 647 -#define SPECIES_MELOETTA SPECIES_MELOETTA_ARIA -#define SPECIES_MELOETTA_ARIA 648 -#define SPECIES_GENESECT 649 -#define SPECIES_CHESPIN 650 -#define SPECIES_QUILLADIN 651 -#define SPECIES_CHESNAUGHT 652 -#define SPECIES_FENNEKIN 653 -#define SPECIES_BRAIXEN 654 -#define SPECIES_DELPHOX 655 -#define SPECIES_FROAKIE 656 -#define SPECIES_FROGADIER 657 -#define SPECIES_GRENINJA 658 -#define SPECIES_BUNNELBY 659 -#define SPECIES_DIGGERSBY 660 -#define SPECIES_FLETCHLING 661 -#define SPECIES_FLETCHINDER 662 -#define SPECIES_TALONFLAME 663 -#define SPECIES_SCATTERBUG SPECIES_SCATTERBUG_ICY_SNOW -#define SPECIES_SCATTERBUG_ICY_SNOW 664 -#define SPECIES_SPEWPA SPECIES_SPEWPA_ICY_SNOW -#define SPECIES_SPEWPA_ICY_SNOW 665 -#define SPECIES_VIVILLON SPECIES_VIVILLON_ICY_SNOW -#define SPECIES_VIVILLON_ICY_SNOW 666 -#define SPECIES_LITLEO 667 -#define SPECIES_PYROAR 668 -#define SPECIES_FLABEBE SPECIES_FLABEBE_RED -#define SPECIES_FLABEBE_RED 669 -#define SPECIES_FLOETTE SPECIES_FLOETTE_RED -#define SPECIES_FLOETTE_RED 670 -#define SPECIES_FLORGES SPECIES_FLORGES_RED -#define SPECIES_FLORGES_RED 671 -#define SPECIES_SKIDDO 672 -#define SPECIES_GOGOAT 673 -#define SPECIES_PANCHAM 674 -#define SPECIES_PANGORO 675 -#define SPECIES_FURFROU SPECIES_FURFROU_NATURAL -#define SPECIES_FURFROU_NATURAL 676 -#define SPECIES_ESPURR 677 -#define SPECIES_MEOWSTIC SPECIES_MEOWSTIC_M -#define SPECIES_MEOWSTIC_M 678 -#define SPECIES_HONEDGE 679 -#define SPECIES_DOUBLADE 680 -#define SPECIES_AEGISLASH SPECIES_AEGISLASH_SHIELD -#define SPECIES_AEGISLASH_SHIELD 681 -#define SPECIES_SPRITZEE 682 -#define SPECIES_AROMATISSE 683 -#define SPECIES_SWIRLIX 684 -#define SPECIES_SLURPUFF 685 -#define SPECIES_INKAY 686 -#define SPECIES_MALAMAR 687 -#define SPECIES_BINACLE 688 -#define SPECIES_BARBARACLE 689 -#define SPECIES_SKRELP 690 -#define SPECIES_DRAGALGE 691 -#define SPECIES_CLAUNCHER 692 -#define SPECIES_CLAWITZER 693 -#define SPECIES_HELIOPTILE 694 -#define SPECIES_HELIOLISK 695 -#define SPECIES_TYRUNT 696 -#define SPECIES_TYRANTRUM 697 -#define SPECIES_AMAURA 698 -#define SPECIES_AURORUS 699 -#define SPECIES_SYLVEON 700 -#define SPECIES_HAWLUCHA 701 -#define SPECIES_DEDENNE 702 -#define SPECIES_CARBINK 703 -#define SPECIES_GOOMY 704 -#define SPECIES_SLIGGOO 705 -#define SPECIES_GOODRA 706 -#define SPECIES_KLEFKI 707 -#define SPECIES_PHANTUMP 708 -#define SPECIES_TREVENANT 709 -#define SPECIES_PUMPKABOO SPECIES_PUMPKABOO_AVERAGE -#define SPECIES_PUMPKABOO_AVERAGE 710 -#define SPECIES_GOURGEIST SPECIES_GOURGEIST_AVERAGE -#define SPECIES_GOURGEIST_AVERAGE 711 -#define SPECIES_BERGMITE 712 -#define SPECIES_AVALUGG 713 -#define SPECIES_NOIBAT 714 -#define SPECIES_NOIVERN 715 -#define SPECIES_XERNEAS SPECIES_XERNEAS_NEUTRAL -#define SPECIES_XERNEAS_NEUTRAL 716 -#define SPECIES_YVELTAL 717 -#define SPECIES_ZYGARDE SPECIES_ZYGARDE_50 -#define SPECIES_ZYGARDE_50 718 -#define SPECIES_DIANCIE 719 -#define SPECIES_HOOPA SPECIES_HOOPA_CONFINED -#define SPECIES_HOOPA_CONFINED 720 -#define SPECIES_VOLCANION 721 -#define SPECIES_ROWLET 722 -#define SPECIES_DARTRIX 723 -#define SPECIES_DECIDUEYE 724 -#define SPECIES_LITTEN 725 -#define SPECIES_TORRACAT 726 -#define SPECIES_INCINEROAR 727 -#define SPECIES_POPPLIO 728 -#define SPECIES_BRIONNE 729 -#define SPECIES_PRIMARINA 730 -#define SPECIES_PIKIPEK 731 -#define SPECIES_TRUMBEAK 732 -#define SPECIES_TOUCANNON 733 -#define SPECIES_YUNGOOS 734 -#define SPECIES_GUMSHOOS 735 -#define SPECIES_GRUBBIN 736 -#define SPECIES_CHARJABUG 737 -#define SPECIES_VIKAVOLT 738 -#define SPECIES_CRABRAWLER 739 -#define SPECIES_CRABOMINABLE 740 -#define SPECIES_ORICORIO SPECIES_ORICORIO_BAILE -#define SPECIES_ORICORIO_BAILE 741 -#define SPECIES_CUTIEFLY 742 -#define SPECIES_RIBOMBEE 743 -#define SPECIES_ROCKRUFF 744 -#define SPECIES_LYCANROC SPECIES_LYCANROC_MIDDAY -#define SPECIES_LYCANROC_MIDDAY 745 -#define SPECIES_WISHIWASHI SPECIES_WISHIWASHI_SOLO -#define SPECIES_WISHIWASHI_SOLO 746 -#define SPECIES_MAREANIE 747 -#define SPECIES_TOXAPEX 748 -#define SPECIES_MUDBRAY 749 -#define SPECIES_MUDSDALE 750 -#define SPECIES_DEWPIDER 751 -#define SPECIES_ARAQUANID 752 -#define SPECIES_FOMANTIS 753 -#define SPECIES_LURANTIS 754 -#define SPECIES_MORELULL 755 -#define SPECIES_SHIINOTIC 756 -#define SPECIES_SALANDIT 757 -#define SPECIES_SALAZZLE 758 -#define SPECIES_STUFFUL 759 -#define SPECIES_BEWEAR 760 -#define SPECIES_BOUNSWEET 761 -#define SPECIES_STEENEE 762 -#define SPECIES_TSAREENA 763 -#define SPECIES_COMFEY 764 -#define SPECIES_ORANGURU 765 -#define SPECIES_PASSIMIAN 766 -#define SPECIES_WIMPOD 767 -#define SPECIES_GOLISOPOD 768 -#define SPECIES_SANDYGAST 769 -#define SPECIES_PALOSSAND 770 -#define SPECIES_PYUKUMUKU 771 -#define SPECIES_TYPE_NULL 772 -#define SPECIES_SILVALLY SPECIES_SILVALLY_NORMAL -#define SPECIES_SILVALLY_NORMAL 773 -#define SPECIES_MINIOR SPECIES_MINIOR_METEOR -#define SPECIES_MINIOR_METEOR SPECIES_MINIOR_METEOR_RED -#define SPECIES_MINIOR_RED SPECIES_MINIOR_METEOR_RED -#define SPECIES_MINIOR_METEOR_RED 774 -#define SPECIES_KOMALA 775 -#define SPECIES_TURTONATOR 776 -#define SPECIES_TOGEDEMARU 777 -#define SPECIES_MIMIKYU SPECIES_MIMIKYU_DISGUISED -#define SPECIES_MIMIKYU_DISGUISED 778 -#define SPECIES_BRUXISH 779 -#define SPECIES_DRAMPA 780 -#define SPECIES_DHELMISE 781 -#define SPECIES_JANGMO_O 782 -#define SPECIES_HAKAMO_O 783 -#define SPECIES_KOMMO_O 784 -#define SPECIES_TAPU_KOKO 785 -#define SPECIES_TAPU_LELE 786 -#define SPECIES_TAPU_BULU 787 -#define SPECIES_TAPU_FINI 788 -#define SPECIES_COSMOG 789 -#define SPECIES_COSMOEM 790 -#define SPECIES_SOLGALEO 791 -#define SPECIES_LUNALA 792 -#define SPECIES_NIHILEGO 793 -#define SPECIES_BUZZWOLE 794 -#define SPECIES_PHEROMOSA 795 -#define SPECIES_XURKITREE 796 -#define SPECIES_CELESTEELA 797 -#define SPECIES_KARTANA 798 -#define SPECIES_GUZZLORD 799 -#define SPECIES_NECROZMA 800 -#define SPECIES_MAGEARNA 801 -#define SPECIES_MARSHADOW 802 -#define SPECIES_POIPOLE 803 -#define SPECIES_NAGANADEL 804 -#define SPECIES_STAKATAKA 805 -#define SPECIES_BLACEPHALON 806 -#define SPECIES_ZERAORA 807 -#define SPECIES_MELTAN 808 -#define SPECIES_MELMETAL 809 -#define SPECIES_GROOKEY 810 -#define SPECIES_THWACKEY 811 -#define SPECIES_RILLABOOM 812 -#define SPECIES_SCORBUNNY 813 -#define SPECIES_RABOOT 814 -#define SPECIES_CINDERACE 815 -#define SPECIES_SOBBLE 816 -#define SPECIES_DRIZZILE 817 -#define SPECIES_INTELEON 818 -#define SPECIES_SKWOVET 819 -#define SPECIES_GREEDENT 820 -#define SPECIES_ROOKIDEE 821 -#define SPECIES_CORVISQUIRE 822 -#define SPECIES_CORVIKNIGHT 823 -#define SPECIES_BLIPBUG 824 -#define SPECIES_DOTTLER 825 -#define SPECIES_ORBEETLE 826 -#define SPECIES_NICKIT 827 -#define SPECIES_THIEVUL 828 -#define SPECIES_GOSSIFLEUR 829 -#define SPECIES_ELDEGOSS 830 -#define SPECIES_WOOLOO 831 -#define SPECIES_DUBWOOL 832 -#define SPECIES_CHEWTLE 833 -#define SPECIES_DREDNAW 834 -#define SPECIES_YAMPER 835 -#define SPECIES_BOLTUND 836 -#define SPECIES_ROLYCOLY 837 -#define SPECIES_CARKOL 838 -#define SPECIES_COALOSSAL 839 -#define SPECIES_APPLIN 840 -#define SPECIES_FLAPPLE 841 -#define SPECIES_APPLETUN 842 -#define SPECIES_SILICOBRA 843 -#define SPECIES_SANDACONDA 844 -#define SPECIES_CRAMORANT 845 -#define SPECIES_ARROKUDA 846 -#define SPECIES_BARRASKEWDA 847 -#define SPECIES_TOXEL 848 -#define SPECIES_TOXTRICITY SPECIES_TOXTRICITY_AMPED -#define SPECIES_TOXTRICITY_AMPED 849 -#define SPECIES_SIZZLIPEDE 850 -#define SPECIES_CENTISKORCH 851 -#define SPECIES_CLOBBOPUS 852 -#define SPECIES_GRAPPLOCT 853 -#define SPECIES_SINISTEA SPECIES_SINISTEA_PHONY -#define SPECIES_SINISTEA_PHONY 854 -#define SPECIES_POLTEAGEIST SPECIES_POLTEAGEIST_PHONY -#define SPECIES_POLTEAGEIST_PHONY 855 -#define SPECIES_HATENNA 856 -#define SPECIES_HATTREM 857 -#define SPECIES_HATTERENE 858 -#define SPECIES_IMPIDIMP 859 -#define SPECIES_MORGREM 860 -#define SPECIES_GRIMMSNARL 861 -#define SPECIES_OBSTAGOON 862 -#define SPECIES_PERRSERKER 863 -#define SPECIES_CURSOLA 864 -#define SPECIES_SIRFETCHD 865 -#define SPECIES_MR_RIME 866 -#define SPECIES_RUNERIGUS 867 -#define SPECIES_MILCERY 868 -#define SPECIES_ALCREMIE SPECIES_ALCREMIE_STRAWBERRY -#define SPECIES_ALCREMIE_STRAWBERRY SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_VANILLA_CREAM SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM 869 -#define SPECIES_FALINKS 870 -#define SPECIES_PINCURCHIN 871 -#define SPECIES_SNOM 872 -#define SPECIES_FROSMOTH 873 -#define SPECIES_STONJOURNER 874 -#define SPECIES_EISCUE SPECIES_EISCUE_ICE -#define SPECIES_EISCUE_ICE 875 -#define SPECIES_INDEEDEE SPECIES_INDEEDEE_M -#define SPECIES_INDEEDEE_M 876 -#define SPECIES_MORPEKO SPECIES_MORPEKO_FULL_BELLY -#define SPECIES_MORPEKO_FULL_BELLY 877 -#define SPECIES_CUFANT 878 -#define SPECIES_COPPERAJAH 879 -#define SPECIES_DRACOZOLT 880 -#define SPECIES_ARCTOZOLT 881 -#define SPECIES_DRACOVISH 882 -#define SPECIES_ARCTOVISH 883 -#define SPECIES_DURALUDON 884 -#define SPECIES_DREEPY 885 -#define SPECIES_DRAKLOAK 886 -#define SPECIES_DRAGAPULT 887 -#define SPECIES_ZACIAN SPECIES_ZACIAN_HERO -#define SPECIES_ZACIAN_HERO 888 -#define SPECIES_ZAMAZENTA SPECIES_ZAMAZENTA_HERO -#define SPECIES_ZAMAZENTA_HERO 889 -#define SPECIES_ETERNATUS 890 -#define SPECIES_KUBFU 891 -#define SPECIES_URSHIFU SPECIES_URSHIFU_SINGLE_STRIKE -#define SPECIES_URSHIFU_SINGLE_STRIKE 892 -#define SPECIES_ZARUDE 893 -#define SPECIES_REGIELEKI 894 -#define SPECIES_REGIDRAGO 895 -#define SPECIES_GLASTRIER 896 -#define SPECIES_SPECTRIER 897 -#define SPECIES_CALYREX 898 -#define SPECIES_WYRDEER 899 -#define SPECIES_KLEAVOR 900 -#define SPECIES_URSALUNA 901 -#define SPECIES_BASCULEGION SPECIES_BASCULEGION_M -#define SPECIES_BASCULEGION_M 902 -#define SPECIES_SNEASLER 903 -#define SPECIES_OVERQWIL 904 -#define SPECIES_ENAMORUS SPECIES_ENAMORUS_INCARNATE -#define SPECIES_ENAMORUS_INCARNATE 905 -#define SPECIES_VENUSAUR_MEGA 906 -#define SPECIES_CHARIZARD_MEGA_X 907 -#define SPECIES_CHARIZARD_MEGA_Y 908 -#define SPECIES_BLASTOISE_MEGA 909 -#define SPECIES_BEEDRILL_MEGA 910 -#define SPECIES_PIDGEOT_MEGA 911 -#define SPECIES_ALAKAZAM_MEGA 912 -#define SPECIES_SLOWBRO_MEGA 913 -#define SPECIES_GENGAR_MEGA 914 -#define SPECIES_KANGASKHAN_MEGA 915 -#define SPECIES_PINSIR_MEGA 916 -#define SPECIES_GYARADOS_MEGA 917 -#define SPECIES_AERODACTYL_MEGA 918 -#define SPECIES_MEWTWO_MEGA_X 919 -#define SPECIES_MEWTWO_MEGA_Y 920 -#define SPECIES_AMPHAROS_MEGA 921 -#define SPECIES_STEELIX_MEGA 922 -#define SPECIES_SCIZOR_MEGA 923 -#define SPECIES_HERACROSS_MEGA 924 -#define SPECIES_HOUNDOOM_MEGA 925 -#define SPECIES_TYRANITAR_MEGA 926 -#define SPECIES_SCEPTILE_MEGA 927 -#define SPECIES_BLAZIKEN_MEGA 928 -#define SPECIES_SWAMPERT_MEGA 929 -#define SPECIES_GARDEVOIR_MEGA 930 -#define SPECIES_SABLEYE_MEGA 931 -#define SPECIES_MAWILE_MEGA 932 -#define SPECIES_AGGRON_MEGA 933 -#define SPECIES_MEDICHAM_MEGA 934 -#define SPECIES_MANECTRIC_MEGA 935 -#define SPECIES_SHARPEDO_MEGA 936 -#define SPECIES_CAMERUPT_MEGA 937 -#define SPECIES_ALTARIA_MEGA 938 -#define SPECIES_BANETTE_MEGA 939 -#define SPECIES_ABSOL_MEGA 940 -#define SPECIES_GLALIE_MEGA 941 -#define SPECIES_SALAMENCE_MEGA 942 -#define SPECIES_METAGROSS_MEGA 943 -#define SPECIES_LATIAS_MEGA 944 -#define SPECIES_LATIOS_MEGA 945 -#define SPECIES_LOPUNNY_MEGA 946 -#define SPECIES_GARCHOMP_MEGA 947 -#define SPECIES_LUCARIO_MEGA 948 -#define SPECIES_ABOMASNOW_MEGA 949 -#define SPECIES_GALLADE_MEGA 950 -#define SPECIES_AUDINO_MEGA 951 -#define SPECIES_DIANCIE_MEGA 952 -#define SPECIES_RAYQUAZA_MEGA 953 -#define SPECIES_KYOGRE_PRIMAL 954 -#define SPECIES_GROUDON_PRIMAL 955 -#define SPECIES_RATTATA_ALOLA 956 -#define SPECIES_RATICATE_ALOLA 957 -#define SPECIES_RAICHU_ALOLA 958 -#define SPECIES_SANDSHREW_ALOLA 959 -#define SPECIES_SANDSLASH_ALOLA 960 -#define SPECIES_VULPIX_ALOLA 961 -#define SPECIES_NINETALES_ALOLA 962 -#define SPECIES_DIGLETT_ALOLA 963 -#define SPECIES_DUGTRIO_ALOLA 964 -#define SPECIES_MEOWTH_ALOLA 965 -#define SPECIES_PERSIAN_ALOLA 966 -#define SPECIES_GEODUDE_ALOLA 967 -#define SPECIES_GRAVELER_ALOLA 968 -#define SPECIES_GOLEM_ALOLA 969 -#define SPECIES_GRIMER_ALOLA 970 -#define SPECIES_MUK_ALOLA 971 -#define SPECIES_EXEGGUTOR_ALOLA 972 -#define SPECIES_MAROWAK_ALOLA 973 -#define SPECIES_MEOWTH_GALAR 974 -#define SPECIES_PONYTA_GALAR 975 -#define SPECIES_RAPIDASH_GALAR 976 -#define SPECIES_SLOWPOKE_GALAR 977 -#define SPECIES_SLOWBRO_GALAR 978 -#define SPECIES_FARFETCHD_GALAR 979 -#define SPECIES_WEEZING_GALAR 980 -#define SPECIES_MR_MIME_GALAR 981 -#define SPECIES_ARTICUNO_GALAR 982 -#define SPECIES_ZAPDOS_GALAR 983 -#define SPECIES_MOLTRES_GALAR 984 -#define SPECIES_SLOWKING_GALAR 985 -#define SPECIES_CORSOLA_GALAR 986 -#define SPECIES_ZIGZAGOON_GALAR 987 -#define SPECIES_LINOONE_GALAR 988 -#define SPECIES_DARUMAKA_GALAR 989 -#define SPECIES_DARMANITAN_GALAR_STANDARD 990 -#define SPECIES_DARMANITAN_GALAR SPECIES_DARMANITAN_GALAR_STANDARD -#define SPECIES_YAMASK_GALAR 991 -#define SPECIES_STUNFISK_GALAR 992 +enum __attribute__((packed)) Species +{ + SPECIES_NONE = 0, + SPECIES_BULBASAUR = 1, + SPECIES_IVYSAUR = 2, + SPECIES_VENUSAUR = 3, + SPECIES_CHARMANDER = 4, + SPECIES_CHARMELEON = 5, + SPECIES_CHARIZARD = 6, + SPECIES_SQUIRTLE = 7, + SPECIES_WARTORTLE = 8, + SPECIES_BLASTOISE = 9, + SPECIES_CATERPIE = 10, + SPECIES_METAPOD = 11, + SPECIES_BUTTERFREE = 12, + SPECIES_WEEDLE = 13, + SPECIES_KAKUNA = 14, + SPECIES_BEEDRILL = 15, + SPECIES_PIDGEY = 16, + SPECIES_PIDGEOTTO = 17, + SPECIES_PIDGEOT = 18, + SPECIES_RATTATA = 19, + SPECIES_RATICATE = 20, + SPECIES_SPEAROW = 21, + SPECIES_FEAROW = 22, + SPECIES_EKANS = 23, + SPECIES_ARBOK = 24, + SPECIES_PIKACHU = 25, + SPECIES_RAICHU = 26, + SPECIES_SANDSHREW = 27, + SPECIES_SANDSLASH = 28, + SPECIES_NIDORAN_F = 29, + SPECIES_NIDORINA = 30, + SPECIES_NIDOQUEEN = 31, + SPECIES_NIDORAN_M = 32, + SPECIES_NIDORINO = 33, + SPECIES_NIDOKING = 34, + SPECIES_CLEFAIRY = 35, + SPECIES_CLEFABLE = 36, + SPECIES_VULPIX = 37, + SPECIES_NINETALES = 38, + SPECIES_JIGGLYPUFF = 39, + SPECIES_WIGGLYTUFF = 40, + SPECIES_ZUBAT = 41, + SPECIES_GOLBAT = 42, + SPECIES_ODDISH = 43, + SPECIES_GLOOM = 44, + SPECIES_VILEPLUME = 45, + SPECIES_PARAS = 46, + SPECIES_PARASECT = 47, + SPECIES_VENONAT = 48, + SPECIES_VENOMOTH = 49, + SPECIES_DIGLETT = 50, + SPECIES_DUGTRIO = 51, + SPECIES_MEOWTH = 52, + SPECIES_PERSIAN = 53, + SPECIES_PSYDUCK = 54, + SPECIES_GOLDUCK = 55, + SPECIES_MANKEY = 56, + SPECIES_PRIMEAPE = 57, + SPECIES_GROWLITHE = 58, + SPECIES_ARCANINE = 59, + SPECIES_POLIWAG = 60, + SPECIES_POLIWHIRL = 61, + SPECIES_POLIWRATH = 62, + SPECIES_ABRA = 63, + SPECIES_KADABRA = 64, + SPECIES_ALAKAZAM = 65, + SPECIES_MACHOP = 66, + SPECIES_MACHOKE = 67, + SPECIES_MACHAMP = 68, + SPECIES_BELLSPROUT = 69, + SPECIES_WEEPINBELL = 70, + SPECIES_VICTREEBEL = 71, + SPECIES_TENTACOOL = 72, + SPECIES_TENTACRUEL = 73, + SPECIES_GEODUDE = 74, + SPECIES_GRAVELER = 75, + SPECIES_GOLEM = 76, + SPECIES_PONYTA = 77, + SPECIES_RAPIDASH = 78, + SPECIES_SLOWPOKE = 79, + SPECIES_SLOWBRO = 80, + SPECIES_MAGNEMITE = 81, + SPECIES_MAGNETON = 82, + SPECIES_FARFETCHD = 83, + SPECIES_DODUO = 84, + SPECIES_DODRIO = 85, + SPECIES_SEEL = 86, + SPECIES_DEWGONG = 87, + SPECIES_GRIMER = 88, + SPECIES_MUK = 89, + SPECIES_SHELLDER = 90, + SPECIES_CLOYSTER = 91, + SPECIES_GASTLY = 92, + SPECIES_HAUNTER = 93, + SPECIES_GENGAR = 94, + SPECIES_ONIX = 95, + SPECIES_DROWZEE = 96, + SPECIES_HYPNO = 97, + SPECIES_KRABBY = 98, + SPECIES_KINGLER = 99, + SPECIES_VOLTORB = 100, + SPECIES_ELECTRODE = 101, + SPECIES_EXEGGCUTE = 102, + SPECIES_EXEGGUTOR = 103, + SPECIES_CUBONE = 104, + SPECIES_MAROWAK = 105, + SPECIES_HITMONLEE = 106, + SPECIES_HITMONCHAN = 107, + SPECIES_LICKITUNG = 108, + SPECIES_KOFFING = 109, + SPECIES_WEEZING = 110, + SPECIES_RHYHORN = 111, + SPECIES_RHYDON = 112, + SPECIES_CHANSEY = 113, + SPECIES_TANGELA = 114, + SPECIES_KANGASKHAN = 115, + SPECIES_HORSEA = 116, + SPECIES_SEADRA = 117, + SPECIES_GOLDEEN = 118, + SPECIES_SEAKING = 119, + SPECIES_STARYU = 120, + SPECIES_STARMIE = 121, + SPECIES_MR_MIME = 122, + SPECIES_SCYTHER = 123, + SPECIES_JYNX = 124, + SPECIES_ELECTABUZZ = 125, + SPECIES_MAGMAR = 126, + SPECIES_PINSIR = 127, + SPECIES_TAUROS = 128, + SPECIES_MAGIKARP = 129, + SPECIES_GYARADOS = 130, + SPECIES_LAPRAS = 131, + SPECIES_DITTO = 132, + SPECIES_EEVEE = 133, + SPECIES_VAPOREON = 134, + SPECIES_JOLTEON = 135, + SPECIES_FLAREON = 136, + SPECIES_PORYGON = 137, + SPECIES_OMANYTE = 138, + SPECIES_OMASTAR = 139, + SPECIES_KABUTO = 140, + SPECIES_KABUTOPS = 141, + SPECIES_AERODACTYL = 142, + SPECIES_SNORLAX = 143, + SPECIES_ARTICUNO = 144, + SPECIES_ZAPDOS = 145, + SPECIES_MOLTRES = 146, + SPECIES_DRATINI = 147, + SPECIES_DRAGONAIR = 148, + SPECIES_DRAGONITE = 149, + SPECIES_MEWTWO = 150, + SPECIES_MEW = 151, + SPECIES_CHIKORITA = 152, + SPECIES_BAYLEEF = 153, + SPECIES_MEGANIUM = 154, + SPECIES_CYNDAQUIL = 155, + SPECIES_QUILAVA = 156, + SPECIES_TYPHLOSION = 157, + SPECIES_TOTODILE = 158, + SPECIES_CROCONAW = 159, + SPECIES_FERALIGATR = 160, + SPECIES_SENTRET = 161, + SPECIES_FURRET = 162, + SPECIES_HOOTHOOT = 163, + SPECIES_NOCTOWL = 164, + SPECIES_LEDYBA = 165, + SPECIES_LEDIAN = 166, + SPECIES_SPINARAK = 167, + SPECIES_ARIADOS = 168, + SPECIES_CROBAT = 169, + SPECIES_CHINCHOU = 170, + SPECIES_LANTURN = 171, + SPECIES_PICHU = 172, + SPECIES_CLEFFA = 173, + SPECIES_IGGLYBUFF = 174, + SPECIES_TOGEPI = 175, + SPECIES_TOGETIC = 176, + SPECIES_NATU = 177, + SPECIES_XATU = 178, + SPECIES_MAREEP = 179, + SPECIES_FLAAFFY = 180, + SPECIES_AMPHAROS = 181, + SPECIES_BELLOSSOM = 182, + SPECIES_MARILL = 183, + SPECIES_AZUMARILL = 184, + SPECIES_SUDOWOODO = 185, + SPECIES_POLITOED = 186, + SPECIES_HOPPIP = 187, + SPECIES_SKIPLOOM = 188, + SPECIES_JUMPLUFF = 189, + SPECIES_AIPOM = 190, + SPECIES_SUNKERN = 191, + SPECIES_SUNFLORA = 192, + SPECIES_YANMA = 193, + SPECIES_WOOPER = 194, + SPECIES_QUAGSIRE = 195, + SPECIES_ESPEON = 196, + SPECIES_UMBREON = 197, + SPECIES_MURKROW = 198, + SPECIES_SLOWKING = 199, + SPECIES_MISDREAVUS = 200, + SPECIES_UNOWN = 201, + SPECIES_WOBBUFFET = 202, + SPECIES_GIRAFARIG = 203, + SPECIES_PINECO = 204, + SPECIES_FORRETRESS = 205, + SPECIES_DUNSPARCE = 206, + SPECIES_GLIGAR = 207, + SPECIES_STEELIX = 208, + SPECIES_SNUBBULL = 209, + SPECIES_GRANBULL = 210, + SPECIES_QWILFISH = 211, + SPECIES_SCIZOR = 212, + SPECIES_SHUCKLE = 213, + SPECIES_HERACROSS = 214, + SPECIES_SNEASEL = 215, + SPECIES_TEDDIURSA = 216, + SPECIES_URSARING = 217, + SPECIES_SLUGMA = 218, + SPECIES_MAGCARGO = 219, + SPECIES_SWINUB = 220, + SPECIES_PILOSWINE = 221, + SPECIES_CORSOLA = 222, + SPECIES_REMORAID = 223, + SPECIES_OCTILLERY = 224, + SPECIES_DELIBIRD = 225, + SPECIES_MANTINE = 226, + SPECIES_SKARMORY = 227, + SPECIES_HOUNDOUR = 228, + SPECIES_HOUNDOOM = 229, + SPECIES_KINGDRA = 230, + SPECIES_PHANPY = 231, + SPECIES_DONPHAN = 232, + SPECIES_PORYGON2 = 233, + SPECIES_STANTLER = 234, + SPECIES_SMEARGLE = 235, + SPECIES_TYROGUE = 236, + SPECIES_HITMONTOP = 237, + SPECIES_SMOOCHUM = 238, + SPECIES_ELEKID = 239, + SPECIES_MAGBY = 240, + SPECIES_MILTANK = 241, + SPECIES_BLISSEY = 242, + SPECIES_RAIKOU = 243, + SPECIES_ENTEI = 244, + SPECIES_SUICUNE = 245, + SPECIES_LARVITAR = 246, + SPECIES_PUPITAR = 247, + SPECIES_TYRANITAR = 248, + SPECIES_LUGIA = 249, + SPECIES_HO_OH = 250, + SPECIES_CELEBI = 251, + SPECIES_TREECKO = 252, + SPECIES_GROVYLE = 253, + SPECIES_SCEPTILE = 254, + SPECIES_TORCHIC = 255, + SPECIES_COMBUSKEN = 256, + SPECIES_BLAZIKEN = 257, + SPECIES_MUDKIP = 258, + SPECIES_MARSHTOMP = 259, + SPECIES_SWAMPERT = 260, + SPECIES_POOCHYENA = 261, + SPECIES_MIGHTYENA = 262, + SPECIES_ZIGZAGOON = 263, + SPECIES_LINOONE = 264, + SPECIES_WURMPLE = 265, + SPECIES_SILCOON = 266, + SPECIES_BEAUTIFLY = 267, + SPECIES_CASCOON = 268, + SPECIES_DUSTOX = 269, + SPECIES_LOTAD = 270, + SPECIES_LOMBRE = 271, + SPECIES_LUDICOLO = 272, + SPECIES_SEEDOT = 273, + SPECIES_NUZLEAF = 274, + SPECIES_SHIFTRY = 275, + SPECIES_TAILLOW = 276, + SPECIES_SWELLOW = 277, + SPECIES_WINGULL = 278, + SPECIES_PELIPPER = 279, + SPECIES_RALTS = 280, + SPECIES_KIRLIA = 281, + SPECIES_GARDEVOIR = 282, + SPECIES_SURSKIT = 283, + SPECIES_MASQUERAIN = 284, + SPECIES_SHROOMISH = 285, + SPECIES_BRELOOM = 286, + SPECIES_SLAKOTH = 287, + SPECIES_VIGOROTH = 288, + SPECIES_SLAKING = 289, + SPECIES_NINCADA = 290, + SPECIES_NINJASK = 291, + SPECIES_SHEDINJA = 292, + SPECIES_WHISMUR = 293, + SPECIES_LOUDRED = 294, + SPECIES_EXPLOUD = 295, + SPECIES_MAKUHITA = 296, + SPECIES_HARIYAMA = 297, + SPECIES_AZURILL = 298, + SPECIES_NOSEPASS = 299, + SPECIES_SKITTY = 300, + SPECIES_DELCATTY = 301, + SPECIES_SABLEYE = 302, + SPECIES_MAWILE = 303, + SPECIES_ARON = 304, + SPECIES_LAIRON = 305, + SPECIES_AGGRON = 306, + SPECIES_MEDITITE = 307, + SPECIES_MEDICHAM = 308, + SPECIES_ELECTRIKE = 309, + SPECIES_MANECTRIC = 310, + SPECIES_PLUSLE = 311, + SPECIES_MINUN = 312, + SPECIES_VOLBEAT = 313, + SPECIES_ILLUMISE = 314, + SPECIES_ROSELIA = 315, + SPECIES_GULPIN = 316, + SPECIES_SWALOT = 317, + SPECIES_CARVANHA = 318, + SPECIES_SHARPEDO = 319, + SPECIES_WAILMER = 320, + SPECIES_WAILORD = 321, + SPECIES_NUMEL = 322, + SPECIES_CAMERUPT = 323, + SPECIES_TORKOAL = 324, + SPECIES_SPOINK = 325, + SPECIES_GRUMPIG = 326, + SPECIES_SPINDA = 327, + SPECIES_TRAPINCH = 328, + SPECIES_VIBRAVA = 329, + SPECIES_FLYGON = 330, + SPECIES_CACNEA = 331, + SPECIES_CACTURNE = 332, + SPECIES_SWABLU = 333, + SPECIES_ALTARIA = 334, + SPECIES_ZANGOOSE = 335, + SPECIES_SEVIPER = 336, + SPECIES_LUNATONE = 337, + SPECIES_SOLROCK = 338, + SPECIES_BARBOACH = 339, + SPECIES_WHISCASH = 340, + SPECIES_CORPHISH = 341, + SPECIES_CRAWDAUNT = 342, + SPECIES_BALTOY = 343, + SPECIES_CLAYDOL = 344, + SPECIES_LILEEP = 345, + SPECIES_CRADILY = 346, + SPECIES_ANORITH = 347, + SPECIES_ARMALDO = 348, + SPECIES_FEEBAS = 349, + SPECIES_MILOTIC = 350, + SPECIES_CASTFORM_NORMAL = 351, + SPECIES_CASTFORM = SPECIES_CASTFORM_NORMAL, + SPECIES_KECLEON = 352, + SPECIES_SHUPPET = 353, + SPECIES_BANETTE = 354, + SPECIES_DUSKULL = 355, + SPECIES_DUSCLOPS = 356, + SPECIES_TROPIUS = 357, + SPECIES_CHIMECHO = 358, + SPECIES_ABSOL = 359, + SPECIES_WYNAUT = 360, + SPECIES_SNORUNT = 361, + SPECIES_GLALIE = 362, + SPECIES_SPHEAL = 363, + SPECIES_SEALEO = 364, + SPECIES_WALREIN = 365, + SPECIES_CLAMPERL = 366, + SPECIES_HUNTAIL = 367, + SPECIES_GOREBYSS = 368, + SPECIES_RELICANTH = 369, + SPECIES_LUVDISC = 370, + SPECIES_BAGON = 371, + SPECIES_SHELGON = 372, + SPECIES_SALAMENCE = 373, + SPECIES_BELDUM = 374, + SPECIES_METANG = 375, + SPECIES_METAGROSS = 376, + SPECIES_REGIROCK = 377, + SPECIES_REGICE = 378, + SPECIES_REGISTEEL = 379, + SPECIES_LATIAS = 380, + SPECIES_LATIOS = 381, + SPECIES_KYOGRE = 382, + SPECIES_GROUDON = 383, + SPECIES_RAYQUAZA = 384, + SPECIES_JIRACHI = 385, + SPECIES_DEOXYS_NORMAL = 386, + SPECIES_DEOXYS = SPECIES_DEOXYS_NORMAL, + SPECIES_TURTWIG = 387, + SPECIES_GROTLE = 388, + SPECIES_TORTERRA = 389, + SPECIES_CHIMCHAR = 390, + SPECIES_MONFERNO = 391, + SPECIES_INFERNAPE = 392, + SPECIES_PIPLUP = 393, + SPECIES_PRINPLUP = 394, + SPECIES_EMPOLEON = 395, + SPECIES_STARLY = 396, + SPECIES_STARAVIA = 397, + SPECIES_STARAPTOR = 398, + SPECIES_BIDOOF = 399, + SPECIES_BIBAREL = 400, + SPECIES_KRICKETOT = 401, + SPECIES_KRICKETUNE = 402, + SPECIES_SHINX = 403, + SPECIES_LUXIO = 404, + SPECIES_LUXRAY = 405, + SPECIES_BUDEW = 406, + SPECIES_ROSERADE = 407, + SPECIES_CRANIDOS = 408, + SPECIES_RAMPARDOS = 409, + SPECIES_SHIELDON = 410, + SPECIES_BASTIODON = 411, + SPECIES_BURMY_PLANT = 412, + SPECIES_BURMY = SPECIES_BURMY_PLANT, + SPECIES_WORMADAM_PLANT = 413, + SPECIES_WORMADAM = SPECIES_WORMADAM_PLANT, + SPECIES_MOTHIM_PLANT = 414, + SPECIES_MOTHIM = SPECIES_MOTHIM_PLANT, + SPECIES_COMBEE = 415, + SPECIES_VESPIQUEN = 416, + SPECIES_PACHIRISU = 417, + SPECIES_BUIZEL = 418, + SPECIES_FLOATZEL = 419, + SPECIES_CHERUBI = 420, + SPECIES_CHERRIM_OVERCAST = 421, + SPECIES_CHERRIM = SPECIES_CHERRIM_OVERCAST, + SPECIES_SHELLOS_WEST = 422, + SPECIES_SHELLOS = SPECIES_SHELLOS_WEST, + SPECIES_GASTRODON_WEST = 423, + SPECIES_GASTRODON = SPECIES_GASTRODON_WEST, + SPECIES_AMBIPOM = 424, + SPECIES_DRIFLOON = 425, + SPECIES_DRIFBLIM = 426, + SPECIES_BUNEARY = 427, + SPECIES_LOPUNNY = 428, + SPECIES_MISMAGIUS = 429, + SPECIES_HONCHKROW = 430, + SPECIES_GLAMEOW = 431, + SPECIES_PURUGLY = 432, + SPECIES_CHINGLING = 433, + SPECIES_STUNKY = 434, + SPECIES_SKUNTANK = 435, + SPECIES_BRONZOR = 436, + SPECIES_BRONZONG = 437, + SPECIES_BONSLY = 438, + SPECIES_MIME_JR = 439, + SPECIES_HAPPINY = 440, + SPECIES_CHATOT = 441, + SPECIES_SPIRITOMB = 442, + SPECIES_GIBLE = 443, + SPECIES_GABITE = 444, + SPECIES_GARCHOMP = 445, + SPECIES_MUNCHLAX = 446, + SPECIES_RIOLU = 447, + SPECIES_LUCARIO = 448, + SPECIES_HIPPOPOTAS = 449, + SPECIES_HIPPOWDON = 450, + SPECIES_SKORUPI = 451, + SPECIES_DRAPION = 452, + SPECIES_CROAGUNK = 453, + SPECIES_TOXICROAK = 454, + SPECIES_CARNIVINE = 455, + SPECIES_FINNEON = 456, + SPECIES_LUMINEON = 457, + SPECIES_MANTYKE = 458, + SPECIES_SNOVER = 459, + SPECIES_ABOMASNOW = 460, + SPECIES_WEAVILE = 461, + SPECIES_MAGNEZONE = 462, + SPECIES_LICKILICKY = 463, + SPECIES_RHYPERIOR = 464, + SPECIES_TANGROWTH = 465, + SPECIES_ELECTIVIRE = 466, + SPECIES_MAGMORTAR = 467, + SPECIES_TOGEKISS = 468, + SPECIES_YANMEGA = 469, + SPECIES_LEAFEON = 470, + SPECIES_GLACEON = 471, + SPECIES_GLISCOR = 472, + SPECIES_MAMOSWINE = 473, + SPECIES_PORYGON_Z = 474, + SPECIES_GALLADE = 475, + SPECIES_PROBOPASS = 476, + SPECIES_DUSKNOIR = 477, + SPECIES_FROSLASS = 478, + SPECIES_ROTOM = 479, + SPECIES_UXIE = 480, + SPECIES_MESPRIT = 481, + SPECIES_AZELF = 482, + SPECIES_DIALGA = 483, + SPECIES_PALKIA = 484, + SPECIES_HEATRAN = 485, + SPECIES_REGIGIGAS = 486, + SPECIES_GIRATINA_ALTERED = 487, + SPECIES_GIRATINA = SPECIES_GIRATINA_ALTERED, + SPECIES_CRESSELIA = 488, + SPECIES_PHIONE = 489, + SPECIES_MANAPHY = 490, + SPECIES_DARKRAI = 491, + SPECIES_SHAYMIN_LAND = 492, + SPECIES_SHAYMIN = SPECIES_SHAYMIN_LAND, + SPECIES_ARCEUS_NORMAL = 493, + SPECIES_ARCEUS = SPECIES_ARCEUS_NORMAL, + SPECIES_VICTINI = 494, + SPECIES_SNIVY = 495, + SPECIES_SERVINE = 496, + SPECIES_SERPERIOR = 497, + SPECIES_TEPIG = 498, + SPECIES_PIGNITE = 499, + SPECIES_EMBOAR = 500, + SPECIES_OSHAWOTT = 501, + SPECIES_DEWOTT = 502, + SPECIES_SAMUROTT = 503, + SPECIES_PATRAT = 504, + SPECIES_WATCHOG = 505, + SPECIES_LILLIPUP = 506, + SPECIES_HERDIER = 507, + SPECIES_STOUTLAND = 508, + SPECIES_PURRLOIN = 509, + SPECIES_LIEPARD = 510, + SPECIES_PANSAGE = 511, + SPECIES_SIMISAGE = 512, + SPECIES_PANSEAR = 513, + SPECIES_SIMISEAR = 514, + SPECIES_PANPOUR = 515, + SPECIES_SIMIPOUR = 516, + SPECIES_MUNNA = 517, + SPECIES_MUSHARNA = 518, + SPECIES_PIDOVE = 519, + SPECIES_TRANQUILL = 520, + SPECIES_UNFEZANT = 521, + SPECIES_BLITZLE = 522, + SPECIES_ZEBSTRIKA = 523, + SPECIES_ROGGENROLA = 524, + SPECIES_BOLDORE = 525, + SPECIES_GIGALITH = 526, + SPECIES_WOOBAT = 527, + SPECIES_SWOOBAT = 528, + SPECIES_DRILBUR = 529, + SPECIES_EXCADRILL = 530, + SPECIES_AUDINO = 531, + SPECIES_TIMBURR = 532, + SPECIES_GURDURR = 533, + SPECIES_CONKELDURR = 534, + SPECIES_TYMPOLE = 535, + SPECIES_PALPITOAD = 536, + SPECIES_SEISMITOAD = 537, + SPECIES_THROH = 538, + SPECIES_SAWK = 539, + SPECIES_SEWADDLE = 540, + SPECIES_SWADLOON = 541, + SPECIES_LEAVANNY = 542, + SPECIES_VENIPEDE = 543, + SPECIES_WHIRLIPEDE = 544, + SPECIES_SCOLIPEDE = 545, + SPECIES_COTTONEE = 546, + SPECIES_WHIMSICOTT = 547, + SPECIES_PETILIL = 548, + SPECIES_LILLIGANT = 549, + SPECIES_BASCULIN_RED_STRIPED = 550, + SPECIES_BASCULIN = SPECIES_BASCULIN_RED_STRIPED, + SPECIES_SANDILE = 551, + SPECIES_KROKOROK = 552, + SPECIES_KROOKODILE = 553, + SPECIES_DARUMAKA = 554, + SPECIES_DARMANITAN_STANDARD = 555, + SPECIES_DARMANITAN = SPECIES_DARMANITAN_STANDARD, + SPECIES_MARACTUS = 556, + SPECIES_DWEBBLE = 557, + SPECIES_CRUSTLE = 558, + SPECIES_SCRAGGY = 559, + SPECIES_SCRAFTY = 560, + SPECIES_SIGILYPH = 561, + SPECIES_YAMASK = 562, + SPECIES_COFAGRIGUS = 563, + SPECIES_TIRTOUGA = 564, + SPECIES_CARRACOSTA = 565, + SPECIES_ARCHEN = 566, + SPECIES_ARCHEOPS = 567, + SPECIES_TRUBBISH = 568, + SPECIES_GARBODOR = 569, + SPECIES_ZORUA = 570, + SPECIES_ZOROARK = 571, + SPECIES_MINCCINO = 572, + SPECIES_CINCCINO = 573, + SPECIES_GOTHITA = 574, + SPECIES_GOTHORITA = 575, + SPECIES_GOTHITELLE = 576, + SPECIES_SOLOSIS = 577, + SPECIES_DUOSION = 578, + SPECIES_REUNICLUS = 579, + SPECIES_DUCKLETT = 580, + SPECIES_SWANNA = 581, + SPECIES_VANILLITE = 582, + SPECIES_VANILLISH = 583, + SPECIES_VANILLUXE = 584, + SPECIES_DEERLING_SPRING = 585, + SPECIES_DEERLING = SPECIES_DEERLING_SPRING, + SPECIES_SAWSBUCK_SPRING = 586, + SPECIES_SAWSBUCK = SPECIES_SAWSBUCK_SPRING, + SPECIES_EMOLGA = 587, + SPECIES_KARRABLAST = 588, + SPECIES_ESCAVALIER = 589, + SPECIES_FOONGUS = 590, + SPECIES_AMOONGUSS = 591, + SPECIES_FRILLISH = 592, + SPECIES_JELLICENT = 593, + SPECIES_ALOMOMOLA = 594, + SPECIES_JOLTIK = 595, + SPECIES_GALVANTULA = 596, + SPECIES_FERROSEED = 597, + SPECIES_FERROTHORN = 598, + SPECIES_KLINK = 599, + SPECIES_KLANG = 600, + SPECIES_KLINKLANG = 601, + SPECIES_TYNAMO = 602, + SPECIES_EELEKTRIK = 603, + SPECIES_EELEKTROSS = 604, + SPECIES_ELGYEM = 605, + SPECIES_BEHEEYEM = 606, + SPECIES_LITWICK = 607, + SPECIES_LAMPENT = 608, + SPECIES_CHANDELURE = 609, + SPECIES_AXEW = 610, + SPECIES_FRAXURE = 611, + SPECIES_HAXORUS = 612, + SPECIES_CUBCHOO = 613, + SPECIES_BEARTIC = 614, + SPECIES_CRYOGONAL = 615, + SPECIES_SHELMET = 616, + SPECIES_ACCELGOR = 617, + SPECIES_STUNFISK = 618, + SPECIES_MIENFOO = 619, + SPECIES_MIENSHAO = 620, + SPECIES_DRUDDIGON = 621, + SPECIES_GOLETT = 622, + SPECIES_GOLURK = 623, + SPECIES_PAWNIARD = 624, + SPECIES_BISHARP = 625, + SPECIES_BOUFFALANT = 626, + SPECIES_RUFFLET = 627, + SPECIES_BRAVIARY = 628, + SPECIES_VULLABY = 629, + SPECIES_MANDIBUZZ = 630, + SPECIES_HEATMOR = 631, + SPECIES_DURANT = 632, + SPECIES_DEINO = 633, + SPECIES_ZWEILOUS = 634, + SPECIES_HYDREIGON = 635, + SPECIES_LARVESTA = 636, + SPECIES_VOLCARONA = 637, + SPECIES_COBALION = 638, + SPECIES_TERRAKION = 639, + SPECIES_VIRIZION = 640, + SPECIES_TORNADUS_INCARNATE = 641, + SPECIES_TORNADUS = SPECIES_TORNADUS_INCARNATE, + SPECIES_THUNDURUS_INCARNATE = 642, + SPECIES_THUNDURUS = SPECIES_THUNDURUS_INCARNATE, + SPECIES_RESHIRAM = 643, + SPECIES_ZEKROM = 644, + SPECIES_LANDORUS_INCARNATE = 645, + SPECIES_LANDORUS = SPECIES_LANDORUS_INCARNATE, + SPECIES_KYUREM = 646, + SPECIES_KELDEO_ORDINARY = 647, + SPECIES_KELDEO = SPECIES_KELDEO_ORDINARY, + SPECIES_MELOETTA_ARIA = 648, + SPECIES_MELOETTA = SPECIES_MELOETTA_ARIA, + SPECIES_GENESECT = 649, + SPECIES_CHESPIN = 650, + SPECIES_QUILLADIN = 651, + SPECIES_CHESNAUGHT = 652, + SPECIES_FENNEKIN = 653, + SPECIES_BRAIXEN = 654, + SPECIES_DELPHOX = 655, + SPECIES_FROAKIE = 656, + SPECIES_FROGADIER = 657, + SPECIES_GRENINJA = 658, + SPECIES_BUNNELBY = 659, + SPECIES_DIGGERSBY = 660, + SPECIES_FLETCHLING = 661, + SPECIES_FLETCHINDER = 662, + SPECIES_TALONFLAME = 663, + SPECIES_SCATTERBUG_ICY_SNOW = 664, + SPECIES_SCATTERBUG = SPECIES_SCATTERBUG_ICY_SNOW, + SPECIES_SPEWPA_ICY_SNOW = 665, + SPECIES_SPEWPA = SPECIES_SPEWPA_ICY_SNOW, + SPECIES_VIVILLON_ICY_SNOW = 666, + SPECIES_VIVILLON = SPECIES_VIVILLON_ICY_SNOW, + SPECIES_LITLEO = 667, + SPECIES_PYROAR = 668, + SPECIES_FLABEBE_RED = 669, + SPECIES_FLABEBE = SPECIES_FLABEBE_RED, + SPECIES_FLOETTE_RED = 670, + SPECIES_FLOETTE = SPECIES_FLOETTE_RED, + SPECIES_FLORGES_RED = 671, + SPECIES_FLORGES = SPECIES_FLORGES_RED, + SPECIES_SKIDDO = 672, + SPECIES_GOGOAT = 673, + SPECIES_PANCHAM = 674, + SPECIES_PANGORO = 675, + SPECIES_FURFROU_NATURAL = 676, + SPECIES_FURFROU = SPECIES_FURFROU_NATURAL, + SPECIES_ESPURR = 677, + SPECIES_MEOWSTIC_M = 678, + SPECIES_MEOWSTIC = SPECIES_MEOWSTIC_M, + SPECIES_HONEDGE = 679, + SPECIES_DOUBLADE = 680, + SPECIES_AEGISLASH_SHIELD = 681, + SPECIES_AEGISLASH = SPECIES_AEGISLASH_SHIELD, + SPECIES_SPRITZEE = 682, + SPECIES_AROMATISSE = 683, + SPECIES_SWIRLIX = 684, + SPECIES_SLURPUFF = 685, + SPECIES_INKAY = 686, + SPECIES_MALAMAR = 687, + SPECIES_BINACLE = 688, + SPECIES_BARBARACLE = 689, + SPECIES_SKRELP = 690, + SPECIES_DRAGALGE = 691, + SPECIES_CLAUNCHER = 692, + SPECIES_CLAWITZER = 693, + SPECIES_HELIOPTILE = 694, + SPECIES_HELIOLISK = 695, + SPECIES_TYRUNT = 696, + SPECIES_TYRANTRUM = 697, + SPECIES_AMAURA = 698, + SPECIES_AURORUS = 699, + SPECIES_SYLVEON = 700, + SPECIES_HAWLUCHA = 701, + SPECIES_DEDENNE = 702, + SPECIES_CARBINK = 703, + SPECIES_GOOMY = 704, + SPECIES_SLIGGOO = 705, + SPECIES_GOODRA = 706, + SPECIES_KLEFKI = 707, + SPECIES_PHANTUMP = 708, + SPECIES_TREVENANT = 709, + SPECIES_PUMPKABOO_AVERAGE = 710, + SPECIES_PUMPKABOO = SPECIES_PUMPKABOO_AVERAGE, + SPECIES_GOURGEIST_AVERAGE = 711, + SPECIES_GOURGEIST = SPECIES_GOURGEIST_AVERAGE, + SPECIES_BERGMITE = 712, + SPECIES_AVALUGG = 713, + SPECIES_NOIBAT = 714, + SPECIES_NOIVERN = 715, + SPECIES_XERNEAS_NEUTRAL = 716, + SPECIES_XERNEAS = SPECIES_XERNEAS_NEUTRAL, + SPECIES_YVELTAL = 717, + SPECIES_ZYGARDE_50 = 718, + SPECIES_ZYGARDE = SPECIES_ZYGARDE_50, + SPECIES_DIANCIE = 719, + SPECIES_HOOPA_CONFINED = 720, + SPECIES_HOOPA = SPECIES_HOOPA_CONFINED, + SPECIES_VOLCANION = 721, + SPECIES_ROWLET = 722, + SPECIES_DARTRIX = 723, + SPECIES_DECIDUEYE = 724, + SPECIES_LITTEN = 725, + SPECIES_TORRACAT = 726, + SPECIES_INCINEROAR = 727, + SPECIES_POPPLIO = 728, + SPECIES_BRIONNE = 729, + SPECIES_PRIMARINA = 730, + SPECIES_PIKIPEK = 731, + SPECIES_TRUMBEAK = 732, + SPECIES_TOUCANNON = 733, + SPECIES_YUNGOOS = 734, + SPECIES_GUMSHOOS = 735, + SPECIES_GRUBBIN = 736, + SPECIES_CHARJABUG = 737, + SPECIES_VIKAVOLT = 738, + SPECIES_CRABRAWLER = 739, + SPECIES_CRABOMINABLE = 740, + SPECIES_ORICORIO_BAILE = 741, + SPECIES_ORICORIO = SPECIES_ORICORIO_BAILE, + SPECIES_CUTIEFLY = 742, + SPECIES_RIBOMBEE = 743, + SPECIES_ROCKRUFF = 744, + SPECIES_LYCANROC_MIDDAY = 745, + SPECIES_LYCANROC = SPECIES_LYCANROC_MIDDAY, + SPECIES_WISHIWASHI_SOLO = 746, + SPECIES_WISHIWASHI = SPECIES_WISHIWASHI_SOLO, + SPECIES_MAREANIE = 747, + SPECIES_TOXAPEX = 748, + SPECIES_MUDBRAY = 749, + SPECIES_MUDSDALE = 750, + SPECIES_DEWPIDER = 751, + SPECIES_ARAQUANID = 752, + SPECIES_FOMANTIS = 753, + SPECIES_LURANTIS = 754, + SPECIES_MORELULL = 755, + SPECIES_SHIINOTIC = 756, + SPECIES_SALANDIT = 757, + SPECIES_SALAZZLE = 758, + SPECIES_STUFFUL = 759, + SPECIES_BEWEAR = 760, + SPECIES_BOUNSWEET = 761, + SPECIES_STEENEE = 762, + SPECIES_TSAREENA = 763, + SPECIES_COMFEY = 764, + SPECIES_ORANGURU = 765, + SPECIES_PASSIMIAN = 766, + SPECIES_WIMPOD = 767, + SPECIES_GOLISOPOD = 768, + SPECIES_SANDYGAST = 769, + SPECIES_PALOSSAND = 770, + SPECIES_PYUKUMUKU = 771, + SPECIES_TYPE_NULL = 772, + SPECIES_SILVALLY_NORMAL = 773, + SPECIES_SILVALLY = SPECIES_SILVALLY_NORMAL, + SPECIES_MINIOR_METEOR_RED = 774, + SPECIES_MINIOR_METEOR = SPECIES_MINIOR_METEOR_RED, + SPECIES_MINIOR = SPECIES_MINIOR_METEOR, + SPECIES_MINIOR_RED = SPECIES_MINIOR_METEOR_RED, + SPECIES_KOMALA = 775, + SPECIES_TURTONATOR = 776, + SPECIES_TOGEDEMARU = 777, + SPECIES_MIMIKYU_DISGUISED = 778, + SPECIES_MIMIKYU = SPECIES_MIMIKYU_DISGUISED, + SPECIES_BRUXISH = 779, + SPECIES_DRAMPA = 780, + SPECIES_DHELMISE = 781, + SPECIES_JANGMO_O = 782, + SPECIES_HAKAMO_O = 783, + SPECIES_KOMMO_O = 784, + SPECIES_TAPU_KOKO = 785, + SPECIES_TAPU_LELE = 786, + SPECIES_TAPU_BULU = 787, + SPECIES_TAPU_FINI = 788, + SPECIES_COSMOG = 789, + SPECIES_COSMOEM = 790, + SPECIES_SOLGALEO = 791, + SPECIES_LUNALA = 792, + SPECIES_NIHILEGO = 793, + SPECIES_BUZZWOLE = 794, + SPECIES_PHEROMOSA = 795, + SPECIES_XURKITREE = 796, + SPECIES_CELESTEELA = 797, + SPECIES_KARTANA = 798, + SPECIES_GUZZLORD = 799, + SPECIES_NECROZMA = 800, + SPECIES_MAGEARNA = 801, + SPECIES_MARSHADOW = 802, + SPECIES_POIPOLE = 803, + SPECIES_NAGANADEL = 804, + SPECIES_STAKATAKA = 805, + SPECIES_BLACEPHALON = 806, + SPECIES_ZERAORA = 807, + SPECIES_MELTAN = 808, + SPECIES_MELMETAL = 809, + SPECIES_GROOKEY = 810, + SPECIES_THWACKEY = 811, + SPECIES_RILLABOOM = 812, + SPECIES_SCORBUNNY = 813, + SPECIES_RABOOT = 814, + SPECIES_CINDERACE = 815, + SPECIES_SOBBLE = 816, + SPECIES_DRIZZILE = 817, + SPECIES_INTELEON = 818, + SPECIES_SKWOVET = 819, + SPECIES_GREEDENT = 820, + SPECIES_ROOKIDEE = 821, + SPECIES_CORVISQUIRE = 822, + SPECIES_CORVIKNIGHT = 823, + SPECIES_BLIPBUG = 824, + SPECIES_DOTTLER = 825, + SPECIES_ORBEETLE = 826, + SPECIES_NICKIT = 827, + SPECIES_THIEVUL = 828, + SPECIES_GOSSIFLEUR = 829, + SPECIES_ELDEGOSS = 830, + SPECIES_WOOLOO = 831, + SPECIES_DUBWOOL = 832, + SPECIES_CHEWTLE = 833, + SPECIES_DREDNAW = 834, + SPECIES_YAMPER = 835, + SPECIES_BOLTUND = 836, + SPECIES_ROLYCOLY = 837, + SPECIES_CARKOL = 838, + SPECIES_COALOSSAL = 839, + SPECIES_APPLIN = 840, + SPECIES_FLAPPLE = 841, + SPECIES_APPLETUN = 842, + SPECIES_SILICOBRA = 843, + SPECIES_SANDACONDA = 844, + SPECIES_CRAMORANT = 845, + SPECIES_ARROKUDA = 846, + SPECIES_BARRASKEWDA = 847, + SPECIES_TOXEL = 848, + SPECIES_TOXTRICITY_AMPED = 849, + SPECIES_TOXTRICITY = SPECIES_TOXTRICITY_AMPED, + SPECIES_SIZZLIPEDE = 850, + SPECIES_CENTISKORCH = 851, + SPECIES_CLOBBOPUS = 852, + SPECIES_GRAPPLOCT = 853, + SPECIES_SINISTEA_PHONY = 854, + SPECIES_SINISTEA = SPECIES_SINISTEA_PHONY, + SPECIES_POLTEAGEIST_PHONY = 855, + SPECIES_POLTEAGEIST = SPECIES_POLTEAGEIST_PHONY, + SPECIES_HATENNA = 856, + SPECIES_HATTREM = 857, + SPECIES_HATTERENE = 858, + SPECIES_IMPIDIMP = 859, + SPECIES_MORGREM = 860, + SPECIES_GRIMMSNARL = 861, + SPECIES_OBSTAGOON = 862, + SPECIES_PERRSERKER = 863, + SPECIES_CURSOLA = 864, + SPECIES_SIRFETCHD = 865, + SPECIES_MR_RIME = 866, + SPECIES_RUNERIGUS = 867, + SPECIES_MILCERY = 868, + SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM = 869, + SPECIES_ALCREMIE_STRAWBERRY = SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM, + SPECIES_ALCREMIE = SPECIES_ALCREMIE_STRAWBERRY, + SPECIES_ALCREMIE_VANILLA_CREAM = SPECIES_ALCREMIE_STRAWBERRY_VANILLA_CREAM, + SPECIES_FALINKS = 870, + SPECIES_PINCURCHIN = 871, + SPECIES_SNOM = 872, + SPECIES_FROSMOTH = 873, + SPECIES_STONJOURNER = 874, + SPECIES_EISCUE_ICE = 875, + SPECIES_EISCUE = SPECIES_EISCUE_ICE, + SPECIES_INDEEDEE_M = 876, + SPECIES_INDEEDEE = SPECIES_INDEEDEE_M, + SPECIES_MORPEKO_FULL_BELLY = 877, + SPECIES_MORPEKO = SPECIES_MORPEKO_FULL_BELLY, + SPECIES_CUFANT = 878, + SPECIES_COPPERAJAH = 879, + SPECIES_DRACOZOLT = 880, + SPECIES_ARCTOZOLT = 881, + SPECIES_DRACOVISH = 882, + SPECIES_ARCTOVISH = 883, + SPECIES_DURALUDON = 884, + SPECIES_DREEPY = 885, + SPECIES_DRAKLOAK = 886, + SPECIES_DRAGAPULT = 887, + SPECIES_ZACIAN_HERO = 888, + SPECIES_ZACIAN = SPECIES_ZACIAN_HERO, + SPECIES_ZAMAZENTA_HERO = 889, + SPECIES_ZAMAZENTA = SPECIES_ZAMAZENTA_HERO, + SPECIES_ETERNATUS = 890, + SPECIES_KUBFU = 891, + SPECIES_URSHIFU_SINGLE_STRIKE = 892, + SPECIES_URSHIFU = SPECIES_URSHIFU_SINGLE_STRIKE, + SPECIES_ZARUDE = 893, + SPECIES_REGIELEKI = 894, + SPECIES_REGIDRAGO = 895, + SPECIES_GLASTRIER = 896, + SPECIES_SPECTRIER = 897, + SPECIES_CALYREX = 898, + SPECIES_WYRDEER = 899, + SPECIES_KLEAVOR = 900, + SPECIES_URSALUNA = 901, + SPECIES_BASCULEGION_M = 902, + SPECIES_BASCULEGION = SPECIES_BASCULEGION_M, + SPECIES_SNEASLER = 903, + SPECIES_OVERQWIL = 904, + SPECIES_ENAMORUS_INCARNATE = 905, + SPECIES_ENAMORUS = SPECIES_ENAMORUS_INCARNATE, + SPECIES_VENUSAUR_MEGA = 906, + SPECIES_CHARIZARD_MEGA_X = 907, + SPECIES_CHARIZARD_MEGA_Y = 908, + SPECIES_BLASTOISE_MEGA = 909, + SPECIES_BEEDRILL_MEGA = 910, + SPECIES_PIDGEOT_MEGA = 911, + SPECIES_ALAKAZAM_MEGA = 912, + SPECIES_SLOWBRO_MEGA = 913, + SPECIES_GENGAR_MEGA = 914, + SPECIES_KANGASKHAN_MEGA = 915, + SPECIES_PINSIR_MEGA = 916, + SPECIES_GYARADOS_MEGA = 917, + SPECIES_AERODACTYL_MEGA = 918, + SPECIES_MEWTWO_MEGA_X = 919, + SPECIES_MEWTWO_MEGA_Y = 920, + SPECIES_AMPHAROS_MEGA = 921, + SPECIES_STEELIX_MEGA = 922, + SPECIES_SCIZOR_MEGA = 923, + SPECIES_HERACROSS_MEGA = 924, + SPECIES_HOUNDOOM_MEGA = 925, + SPECIES_TYRANITAR_MEGA = 926, + SPECIES_SCEPTILE_MEGA = 927, + SPECIES_BLAZIKEN_MEGA = 928, + SPECIES_SWAMPERT_MEGA = 929, + SPECIES_GARDEVOIR_MEGA = 930, + SPECIES_SABLEYE_MEGA = 931, + SPECIES_MAWILE_MEGA = 932, + SPECIES_AGGRON_MEGA = 933, + SPECIES_MEDICHAM_MEGA = 934, + SPECIES_MANECTRIC_MEGA = 935, + SPECIES_SHARPEDO_MEGA = 936, + SPECIES_CAMERUPT_MEGA = 937, + SPECIES_ALTARIA_MEGA = 938, + SPECIES_BANETTE_MEGA = 939, + SPECIES_ABSOL_MEGA = 940, + SPECIES_GLALIE_MEGA = 941, + SPECIES_SALAMENCE_MEGA = 942, + SPECIES_METAGROSS_MEGA = 943, + SPECIES_LATIAS_MEGA = 944, + SPECIES_LATIOS_MEGA = 945, + SPECIES_LOPUNNY_MEGA = 946, + SPECIES_GARCHOMP_MEGA = 947, + SPECIES_LUCARIO_MEGA = 948, + SPECIES_ABOMASNOW_MEGA = 949, + SPECIES_GALLADE_MEGA = 950, + SPECIES_AUDINO_MEGA = 951, + SPECIES_DIANCIE_MEGA = 952, + SPECIES_RAYQUAZA_MEGA = 953, + SPECIES_KYOGRE_PRIMAL = 954, + SPECIES_GROUDON_PRIMAL = 955, + SPECIES_RATTATA_ALOLA = 956, + SPECIES_RATICATE_ALOLA = 957, + SPECIES_RAICHU_ALOLA = 958, + SPECIES_SANDSHREW_ALOLA = 959, + SPECIES_SANDSLASH_ALOLA = 960, + SPECIES_VULPIX_ALOLA = 961, + SPECIES_NINETALES_ALOLA = 962, + SPECIES_DIGLETT_ALOLA = 963, + SPECIES_DUGTRIO_ALOLA = 964, + SPECIES_MEOWTH_ALOLA = 965, + SPECIES_PERSIAN_ALOLA = 966, + SPECIES_GEODUDE_ALOLA = 967, + SPECIES_GRAVELER_ALOLA = 968, + SPECIES_GOLEM_ALOLA = 969, + SPECIES_GRIMER_ALOLA = 970, + SPECIES_MUK_ALOLA = 971, + SPECIES_EXEGGUTOR_ALOLA = 972, + SPECIES_MAROWAK_ALOLA = 973, + SPECIES_MEOWTH_GALAR = 974, + SPECIES_PONYTA_GALAR = 975, + SPECIES_RAPIDASH_GALAR = 976, + SPECIES_SLOWPOKE_GALAR = 977, + SPECIES_SLOWBRO_GALAR = 978, + SPECIES_FARFETCHD_GALAR = 979, + SPECIES_WEEZING_GALAR = 980, + SPECIES_MR_MIME_GALAR = 981, + SPECIES_ARTICUNO_GALAR = 982, + SPECIES_ZAPDOS_GALAR = 983, + SPECIES_MOLTRES_GALAR = 984, + SPECIES_SLOWKING_GALAR = 985, + SPECIES_CORSOLA_GALAR = 986, + SPECIES_ZIGZAGOON_GALAR = 987, + SPECIES_LINOONE_GALAR = 988, + SPECIES_DARUMAKA_GALAR = 989, + SPECIES_DARMANITAN_GALAR_STANDARD = 990, + SPECIES_DARMANITAN_GALAR = SPECIES_DARMANITAN_GALAR_STANDARD, + SPECIES_YAMASK_GALAR = 991, + SPECIES_STUNFISK_GALAR = 992, -//Hisuian Forms -#define SPECIES_GROWLITHE_HISUI 993 -#define SPECIES_ARCANINE_HISUI 994 -#define SPECIES_VOLTORB_HISUI 995 -#define SPECIES_ELECTRODE_HISUI 996 -#define SPECIES_TYPHLOSION_HISUI 997 -#define SPECIES_QWILFISH_HISUI 998 -#define SPECIES_SNEASEL_HISUI 999 -#define SPECIES_SAMUROTT_HISUI 1000 -#define SPECIES_LILLIGANT_HISUI 1001 -#define SPECIES_ZORUA_HISUI 1002 -#define SPECIES_ZOROARK_HISUI 1003 -#define SPECIES_BRAVIARY_HISUI 1004 -#define SPECIES_SLIGGOO_HISUI 1005 -#define SPECIES_GOODRA_HISUI 1006 -#define SPECIES_AVALUGG_HISUI 1007 -#define SPECIES_DECIDUEYE_HISUI 1008 + //Hisuian Forms + SPECIES_GROWLITHE_HISUI = 993, + SPECIES_ARCANINE_HISUI = 994, + SPECIES_VOLTORB_HISUI = 995, + SPECIES_ELECTRODE_HISUI = 996, + SPECIES_TYPHLOSION_HISUI = 997, + SPECIES_QWILFISH_HISUI = 998, + SPECIES_SNEASEL_HISUI = 999, + SPECIES_SAMUROTT_HISUI = 1000, + SPECIES_LILLIGANT_HISUI = 1001, + SPECIES_ZORUA_HISUI = 1002, + SPECIES_ZOROARK_HISUI = 1003, + SPECIES_BRAVIARY_HISUI = 1004, + SPECIES_SLIGGOO_HISUI = 1005, + SPECIES_GOODRA_HISUI = 1006, + SPECIES_AVALUGG_HISUI = 1007, + SPECIES_DECIDUEYE_HISUI = 1008, -// Misc Forms -#define SPECIES_PIKACHU_COSPLAY 1009 -#define SPECIES_PIKACHU_ROCK_STAR 1010 -#define SPECIES_PIKACHU_BELLE 1011 -#define SPECIES_PIKACHU_POP_STAR 1012 -#define SPECIES_PIKACHU_PHD 1013 -#define SPECIES_PIKACHU_LIBRE 1014 -#define SPECIES_PIKACHU_ORIGINAL 1015 -#define SPECIES_PIKACHU_HOENN 1016 -#define SPECIES_PIKACHU_SINNOH 1017 -#define SPECIES_PIKACHU_UNOVA 1018 -#define SPECIES_PIKACHU_KALOS 1019 -#define SPECIES_PIKACHU_ALOLA 1020 -#define SPECIES_PIKACHU_PARTNER 1021 -#define SPECIES_PIKACHU_WORLD 1022 -#define SPECIES_PICHU_SPIKY_EARED 1023 -#define SPECIES_UNOWN_B 1024 -#define SPECIES_UNOWN_C 1025 -#define SPECIES_UNOWN_D 1026 -#define SPECIES_UNOWN_E 1027 -#define SPECIES_UNOWN_F 1028 -#define SPECIES_UNOWN_G 1029 -#define SPECIES_UNOWN_H 1030 -#define SPECIES_UNOWN_I 1031 -#define SPECIES_UNOWN_J 1032 -#define SPECIES_UNOWN_K 1033 -#define SPECIES_UNOWN_L 1034 -#define SPECIES_UNOWN_M 1035 -#define SPECIES_UNOWN_N 1036 -#define SPECIES_UNOWN_O 1037 -#define SPECIES_UNOWN_P 1038 -#define SPECIES_UNOWN_Q 1039 -#define SPECIES_UNOWN_R 1040 -#define SPECIES_UNOWN_S 1041 -#define SPECIES_UNOWN_T 1042 -#define SPECIES_UNOWN_U 1043 -#define SPECIES_UNOWN_V 1044 -#define SPECIES_UNOWN_W 1045 -#define SPECIES_UNOWN_X 1046 -#define SPECIES_UNOWN_Y 1047 -#define SPECIES_UNOWN_Z 1048 -#define SPECIES_UNOWN_EXCLAMATION 1049 -#define SPECIES_UNOWN_QUESTION 1050 -#define SPECIES_CASTFORM_SUNNY 1051 -#define SPECIES_CASTFORM_RAINY 1052 -#define SPECIES_CASTFORM_SNOWY 1053 -#define SPECIES_DEOXYS_ATTACK 1054 -#define SPECIES_DEOXYS_DEFENSE 1055 -#define SPECIES_DEOXYS_SPEED 1056 -#define SPECIES_BURMY_SANDY 1057 -#define SPECIES_BURMY_TRASH 1058 -#define SPECIES_WORMADAM_SANDY 1059 -#define SPECIES_WORMADAM_TRASH 1060 -#define SPECIES_CHERRIM_SUNSHINE 1061 -#define SPECIES_SHELLOS_EAST 1062 -#define SPECIES_GASTRODON_EAST 1063 -#define SPECIES_ROTOM_HEAT 1064 -#define SPECIES_ROTOM_WASH 1065 -#define SPECIES_ROTOM_FROST 1066 -#define SPECIES_ROTOM_FAN 1067 -#define SPECIES_ROTOM_MOW 1068 -#define SPECIES_DIALGA_ORIGIN 1069 -#define SPECIES_PALKIA_ORIGIN 1070 -#define SPECIES_GIRATINA_ORIGIN 1071 -#define SPECIES_SHAYMIN_SKY 1072 -#define SPECIES_ARCEUS_FIGHTING 1073 -#define SPECIES_ARCEUS_FLYING 1074 -#define SPECIES_ARCEUS_POISON 1075 -#define SPECIES_ARCEUS_GROUND 1076 -#define SPECIES_ARCEUS_ROCK 1077 -#define SPECIES_ARCEUS_BUG 1078 -#define SPECIES_ARCEUS_GHOST 1079 -#define SPECIES_ARCEUS_STEEL 1080 -#define SPECIES_ARCEUS_FIRE 1081 -#define SPECIES_ARCEUS_WATER 1082 -#define SPECIES_ARCEUS_GRASS 1083 -#define SPECIES_ARCEUS_ELECTRIC 1084 -#define SPECIES_ARCEUS_PSYCHIC 1085 -#define SPECIES_ARCEUS_ICE 1086 -#define SPECIES_ARCEUS_DRAGON 1087 -#define SPECIES_ARCEUS_DARK 1088 -#define SPECIES_ARCEUS_FAIRY 1089 -#define SPECIES_BASCULIN_BLUE_STRIPED 1090 -#define SPECIES_BASCULIN_WHITE_STRIPED 1091 -#define SPECIES_DARMANITAN_ZEN 1092 -#define SPECIES_DARMANITAN_GALAR_ZEN 1093 -#define SPECIES_DEERLING_SUMMER 1094 -#define SPECIES_DEERLING_AUTUMN 1095 -#define SPECIES_DEERLING_WINTER 1096 -#define SPECIES_SAWSBUCK_SUMMER 1097 -#define SPECIES_SAWSBUCK_AUTUMN 1098 -#define SPECIES_SAWSBUCK_WINTER 1099 -#define SPECIES_TORNADUS_THERIAN 1100 -#define SPECIES_THUNDURUS_THERIAN 1101 -#define SPECIES_LANDORUS_THERIAN 1102 -#define SPECIES_ENAMORUS_THERIAN 1103 -#define SPECIES_KYUREM_WHITE 1104 -#define SPECIES_KYUREM_BLACK 1105 -#define SPECIES_KELDEO_RESOLUTE 1106 -#define SPECIES_MELOETTA_PIROUETTE 1107 -#define SPECIES_GENESECT_DOUSE 1108 -#define SPECIES_GENESECT_SHOCK 1109 -#define SPECIES_GENESECT_BURN 1110 -#define SPECIES_GENESECT_CHILL 1111 -#define SPECIES_GRENINJA_BOND 1112 -#define SPECIES_GRENINJA_BATTLE_BOND SPECIES_GRENINJA_BOND -#define SPECIES_GRENINJA_ASH 1113 -#define SPECIES_VIVILLON_POLAR 1114 -#define SPECIES_VIVILLON_TUNDRA 1115 -#define SPECIES_VIVILLON_CONTINENTAL 1116 -#define SPECIES_VIVILLON_GARDEN 1117 -#define SPECIES_VIVILLON_ELEGANT 1118 -#define SPECIES_VIVILLON_MEADOW 1119 -#define SPECIES_VIVILLON_MODERN 1120 -#define SPECIES_VIVILLON_MARINE 1121 -#define SPECIES_VIVILLON_ARCHIPELAGO 1122 -#define SPECIES_VIVILLON_HIGH_PLAINS 1123 -#define SPECIES_VIVILLON_SANDSTORM 1124 -#define SPECIES_VIVILLON_RIVER 1125 -#define SPECIES_VIVILLON_MONSOON 1126 -#define SPECIES_VIVILLON_SAVANNA 1127 -#define SPECIES_VIVILLON_SUN 1128 -#define SPECIES_VIVILLON_OCEAN 1129 -#define SPECIES_VIVILLON_JUNGLE 1130 -#define SPECIES_VIVILLON_FANCY 1131 -#define SPECIES_VIVILLON_POKEBALL 1132 -#define SPECIES_FLABEBE_YELLOW 1133 -#define SPECIES_FLABEBE_ORANGE 1134 -#define SPECIES_FLABEBE_BLUE 1135 -#define SPECIES_FLABEBE_WHITE 1136 -#define SPECIES_FLOETTE_YELLOW 1137 -#define SPECIES_FLOETTE_ORANGE 1138 -#define SPECIES_FLOETTE_BLUE 1139 -#define SPECIES_FLOETTE_WHITE 1140 -#define SPECIES_FLOETTE_ETERNAL 1141 -#define SPECIES_FLORGES_YELLOW 1142 -#define SPECIES_FLORGES_ORANGE 1143 -#define SPECIES_FLORGES_BLUE 1144 -#define SPECIES_FLORGES_WHITE 1145 -#define SPECIES_FURFROU_HEART 1146 -#define SPECIES_FURFROU_STAR 1147 -#define SPECIES_FURFROU_DIAMOND 1148 -#define SPECIES_FURFROU_DEBUTANTE 1149 -#define SPECIES_FURFROU_MATRON 1150 -#define SPECIES_FURFROU_DANDY 1151 -#define SPECIES_FURFROU_LA_REINE 1152 -#define SPECIES_FURFROU_KABUKI 1153 -#define SPECIES_FURFROU_PHARAOH 1154 -#define SPECIES_MEOWSTIC_F 1155 -#define SPECIES_AEGISLASH_BLADE 1156 -#define SPECIES_PUMPKABOO_SMALL 1157 -#define SPECIES_PUMPKABOO_LARGE 1158 -#define SPECIES_PUMPKABOO_SUPER 1159 -#define SPECIES_GOURGEIST_SMALL 1160 -#define SPECIES_GOURGEIST_LARGE 1161 -#define SPECIES_GOURGEIST_SUPER 1162 -#define SPECIES_XERNEAS_ACTIVE 1163 -#define SPECIES_ZYGARDE_10 SPECIES_ZYGARDE_10_AURA_BREAK -#define SPECIES_ZYGARDE_10_AURA_BREAK 1164 -#define SPECIES_ZYGARDE_10_POWER_CONSTRUCT 1165 -#define SPECIES_ZYGARDE_50_POWER_CONSTRUCT 1166 -#define SPECIES_ZYGARDE_COMPLETE 1167 -#define SPECIES_HOOPA_UNBOUND 1168 -#define SPECIES_ORICORIO_POM_POM 1169 -#define SPECIES_ORICORIO_PAU 1170 -#define SPECIES_ORICORIO_SENSU 1171 -#define SPECIES_ROCKRUFF_OWN_TEMPO 1172 -#define SPECIES_LYCANROC_MIDNIGHT 1173 -#define SPECIES_LYCANROC_DUSK 1174 -#define SPECIES_WISHIWASHI_SCHOOL 1175 -#define SPECIES_SILVALLY_FIGHTING 1176 -#define SPECIES_SILVALLY_FLYING 1177 -#define SPECIES_SILVALLY_POISON 1178 -#define SPECIES_SILVALLY_GROUND 1179 -#define SPECIES_SILVALLY_ROCK 1180 -#define SPECIES_SILVALLY_BUG 1181 -#define SPECIES_SILVALLY_GHOST 1182 -#define SPECIES_SILVALLY_STEEL 1183 -#define SPECIES_SILVALLY_FIRE 1184 -#define SPECIES_SILVALLY_WATER 1185 -#define SPECIES_SILVALLY_GRASS 1186 -#define SPECIES_SILVALLY_ELECTRIC 1187 -#define SPECIES_SILVALLY_PSYCHIC 1188 -#define SPECIES_SILVALLY_ICE 1189 -#define SPECIES_SILVALLY_DRAGON 1190 -#define SPECIES_SILVALLY_DARK 1191 -#define SPECIES_SILVALLY_FAIRY 1192 -#define SPECIES_MINIOR_ORANGE SPECIES_MINIOR_METEOR_ORANGE -#define SPECIES_MINIOR_YELLOW SPECIES_MINIOR_METEOR_YELLOW -#define SPECIES_MINIOR_GREEN SPECIES_MINIOR_METEOR_GREEN -#define SPECIES_MINIOR_BLUE SPECIES_MINIOR_METEOR_BLUE -#define SPECIES_MINIOR_INDIGO SPECIES_MINIOR_METEOR_INDIGO -#define SPECIES_MINIOR_VIOLET SPECIES_MINIOR_METEOR_VIOLET -#define SPECIES_MINIOR_METEOR_ORANGE 1193 -#define SPECIES_MINIOR_METEOR_YELLOW 1194 -#define SPECIES_MINIOR_METEOR_GREEN 1195 -#define SPECIES_MINIOR_METEOR_BLUE 1196 -#define SPECIES_MINIOR_METEOR_INDIGO 1197 -#define SPECIES_MINIOR_METEOR_VIOLET 1198 -#define SPECIES_MINIOR_CORE SPECIES_MINIOR_CORE_RED -#define SPECIES_MINIOR_CORE_RED 1199 -#define SPECIES_MINIOR_CORE_ORANGE 1200 -#define SPECIES_MINIOR_CORE_YELLOW 1201 -#define SPECIES_MINIOR_CORE_GREEN 1202 -#define SPECIES_MINIOR_CORE_BLUE 1203 -#define SPECIES_MINIOR_CORE_INDIGO 1204 -#define SPECIES_MINIOR_CORE_VIOLET 1205 -#define SPECIES_MIMIKYU_BUSTED 1206 -#define SPECIES_NECROZMA_DUSK_MANE 1207 -#define SPECIES_NECROZMA_DAWN_WINGS 1208 -#define SPECIES_NECROZMA_ULTRA 1209 -#define SPECIES_MAGEARNA_ORIGINAL 1210 -#define SPECIES_CRAMORANT_GULPING 1211 -#define SPECIES_CRAMORANT_GORGING 1212 -#define SPECIES_TOXTRICITY_LOW_KEY 1213 -#define SPECIES_SINISTEA_ANTIQUE 1214 -#define SPECIES_POLTEAGEIST_ANTIQUE 1215 -#define SPECIES_ALCREMIE_RUBY_CREAM SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM -#define SPECIES_ALCREMIE_MATCHA_CREAM SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM -#define SPECIES_ALCREMIE_MINT_CREAM SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM -#define SPECIES_ALCREMIE_LEMON_CREAM SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM -#define SPECIES_ALCREMIE_SALTED_CREAM SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM -#define SPECIES_ALCREMIE_RUBY_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL -#define SPECIES_ALCREMIE_CARAMEL_SWIRL SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL -#define SPECIES_ALCREMIE_RAINBOW_SWIRL SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM 1216 -#define SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM 1217 -#define SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM 1218 -#define SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM 1219 -#define SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM 1220 -#define SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL 1221 -#define SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL 1222 -#define SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL 1223 -#define SPECIES_EISCUE_NOICE 1224 -#define SPECIES_INDEEDEE_F 1225 -#define SPECIES_MORPEKO_HANGRY 1226 -#define SPECIES_ZACIAN_CROWNED 1227 -#define SPECIES_ZAMAZENTA_CROWNED 1228 -#define SPECIES_ETERNATUS_ETERNAMAX 1229 -#define SPECIES_URSHIFU_RAPID_STRIKE 1230 -#define SPECIES_ZARUDE_DADA 1231 -#define SPECIES_CALYREX_ICE 1232 -#define SPECIES_CALYREX_SHADOW 1233 -#define SPECIES_BASCULEGION_F 1234 -#define SPECIES_ALCREMIE_BERRY SPECIES_ALCREMIE_BERRY_VANILLA_CREAM -#define SPECIES_ALCREMIE_BERRY_VANILLA_CREAM 1235 -#define SPECIES_ALCREMIE_BERRY_RUBY_CREAM 1236 -#define SPECIES_ALCREMIE_BERRY_MATCHA_CREAM 1237 -#define SPECIES_ALCREMIE_BERRY_MINT_CREAM 1238 -#define SPECIES_ALCREMIE_BERRY_LEMON_CREAM 1239 -#define SPECIES_ALCREMIE_BERRY_SALTED_CREAM 1240 -#define SPECIES_ALCREMIE_BERRY_RUBY_SWIRL 1241 -#define SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL 1242 -#define SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL 1243 -#define SPECIES_ALCREMIE_LOVE SPECIES_ALCREMIE_LOVE_VANILLA_CREAM -#define SPECIES_ALCREMIE_LOVE_VANILLA_CREAM 1244 -#define SPECIES_ALCREMIE_LOVE_RUBY_CREAM 1245 -#define SPECIES_ALCREMIE_LOVE_MATCHA_CREAM 1246 -#define SPECIES_ALCREMIE_LOVE_MINT_CREAM 1247 -#define SPECIES_ALCREMIE_LOVE_LEMON_CREAM 1248 -#define SPECIES_ALCREMIE_LOVE_SALTED_CREAM 1249 -#define SPECIES_ALCREMIE_LOVE_RUBY_SWIRL 1250 -#define SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL 1251 -#define SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL 1252 -#define SPECIES_ALCREMIE_STAR SPECIES_ALCREMIE_STAR_VANILLA_CREAM -#define SPECIES_ALCREMIE_STAR_VANILLA_CREAM 1253 -#define SPECIES_ALCREMIE_STAR_RUBY_CREAM 1254 -#define SPECIES_ALCREMIE_STAR_MATCHA_CREAM 1255 -#define SPECIES_ALCREMIE_STAR_MINT_CREAM 1256 -#define SPECIES_ALCREMIE_STAR_LEMON_CREAM 1257 -#define SPECIES_ALCREMIE_STAR_SALTED_CREAM 1258 -#define SPECIES_ALCREMIE_STAR_RUBY_SWIRL 1259 -#define SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL 1260 -#define SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL 1261 -#define SPECIES_ALCREMIE_CLOVER SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM -#define SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM 1262 -#define SPECIES_ALCREMIE_CLOVER_RUBY_CREAM 1263 -#define SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM 1264 -#define SPECIES_ALCREMIE_CLOVER_MINT_CREAM 1265 -#define SPECIES_ALCREMIE_CLOVER_LEMON_CREAM 1266 -#define SPECIES_ALCREMIE_CLOVER_SALTED_CREAM 1267 -#define SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL 1268 -#define SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL 1269 -#define SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL 1270 -#define SPECIES_ALCREMIE_FLOWER SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM -#define SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM 1271 -#define SPECIES_ALCREMIE_FLOWER_RUBY_CREAM 1272 -#define SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM 1273 -#define SPECIES_ALCREMIE_FLOWER_MINT_CREAM 1274 -#define SPECIES_ALCREMIE_FLOWER_LEMON_CREAM 1275 -#define SPECIES_ALCREMIE_FLOWER_SALTED_CREAM 1276 -#define SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL 1277 -#define SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL 1278 -#define SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL 1279 -#define SPECIES_ALCREMIE_RIBBON SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM -#define SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM 1280 -#define SPECIES_ALCREMIE_RIBBON_RUBY_CREAM 1281 -#define SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM 1282 -#define SPECIES_ALCREMIE_RIBBON_MINT_CREAM 1283 -#define SPECIES_ALCREMIE_RIBBON_LEMON_CREAM 1284 -#define SPECIES_ALCREMIE_RIBBON_SALTED_CREAM 1285 -#define SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL 1286 -#define SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL 1287 -#define SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL 1288 + // Misc Forms + SPECIES_PIKACHU_COSPLAY = 1009, + SPECIES_PIKACHU_ROCK_STAR = 1010, + SPECIES_PIKACHU_BELLE = 1011, + SPECIES_PIKACHU_POP_STAR = 1012, + SPECIES_PIKACHU_PHD = 1013, + SPECIES_PIKACHU_LIBRE = 1014, + SPECIES_PIKACHU_ORIGINAL = 1015, + SPECIES_PIKACHU_HOENN = 1016, + SPECIES_PIKACHU_SINNOH = 1017, + SPECIES_PIKACHU_UNOVA = 1018, + SPECIES_PIKACHU_KALOS = 1019, + SPECIES_PIKACHU_ALOLA = 1020, + SPECIES_PIKACHU_PARTNER = 1021, + SPECIES_PIKACHU_WORLD = 1022, + SPECIES_PICHU_SPIKY_EARED = 1023, + SPECIES_UNOWN_B = 1024, + SPECIES_UNOWN_C = 1025, + SPECIES_UNOWN_D = 1026, + SPECIES_UNOWN_E = 1027, + SPECIES_UNOWN_F = 1028, + SPECIES_UNOWN_G = 1029, + SPECIES_UNOWN_H = 1030, + SPECIES_UNOWN_I = 1031, + SPECIES_UNOWN_J = 1032, + SPECIES_UNOWN_K = 1033, + SPECIES_UNOWN_L = 1034, + SPECIES_UNOWN_M = 1035, + SPECIES_UNOWN_N = 1036, + SPECIES_UNOWN_O = 1037, + SPECIES_UNOWN_P = 1038, + SPECIES_UNOWN_Q = 1039, + SPECIES_UNOWN_R = 1040, + SPECIES_UNOWN_S = 1041, + SPECIES_UNOWN_T = 1042, + SPECIES_UNOWN_U = 1043, + SPECIES_UNOWN_V = 1044, + SPECIES_UNOWN_W = 1045, + SPECIES_UNOWN_X = 1046, + SPECIES_UNOWN_Y = 1047, + SPECIES_UNOWN_Z = 1048, + SPECIES_UNOWN_EXCLAMATION = 1049, + SPECIES_UNOWN_QUESTION = 1050, + SPECIES_CASTFORM_SUNNY = 1051, + SPECIES_CASTFORM_RAINY = 1052, + SPECIES_CASTFORM_SNOWY = 1053, + SPECIES_DEOXYS_ATTACK = 1054, + SPECIES_DEOXYS_DEFENSE = 1055, + SPECIES_DEOXYS_SPEED = 1056, + SPECIES_BURMY_SANDY = 1057, + SPECIES_BURMY_TRASH = 1058, + SPECIES_WORMADAM_SANDY = 1059, + SPECIES_WORMADAM_TRASH = 1060, + SPECIES_CHERRIM_SUNSHINE = 1061, + SPECIES_SHELLOS_EAST = 1062, + SPECIES_GASTRODON_EAST = 1063, + SPECIES_ROTOM_HEAT = 1064, + SPECIES_ROTOM_WASH = 1065, + SPECIES_ROTOM_FROST = 1066, + SPECIES_ROTOM_FAN = 1067, + SPECIES_ROTOM_MOW = 1068, + SPECIES_DIALGA_ORIGIN = 1069, + SPECIES_PALKIA_ORIGIN = 1070, + SPECIES_GIRATINA_ORIGIN = 1071, + SPECIES_SHAYMIN_SKY = 1072, + SPECIES_ARCEUS_FIGHTING = 1073, + SPECIES_ARCEUS_FLYING = 1074, + SPECIES_ARCEUS_POISON = 1075, + SPECIES_ARCEUS_GROUND = 1076, + SPECIES_ARCEUS_ROCK = 1077, + SPECIES_ARCEUS_BUG = 1078, + SPECIES_ARCEUS_GHOST = 1079, + SPECIES_ARCEUS_STEEL = 1080, + SPECIES_ARCEUS_FIRE = 1081, + SPECIES_ARCEUS_WATER = 1082, + SPECIES_ARCEUS_GRASS = 1083, + SPECIES_ARCEUS_ELECTRIC = 1084, + SPECIES_ARCEUS_PSYCHIC = 1085, + SPECIES_ARCEUS_ICE = 1086, + SPECIES_ARCEUS_DRAGON = 1087, + SPECIES_ARCEUS_DARK = 1088, + SPECIES_ARCEUS_FAIRY = 1089, + SPECIES_BASCULIN_BLUE_STRIPED = 1090, + SPECIES_BASCULIN_WHITE_STRIPED = 1091, + SPECIES_DARMANITAN_ZEN = 1092, + SPECIES_DARMANITAN_GALAR_ZEN = 1093, + SPECIES_DEERLING_SUMMER = 1094, + SPECIES_DEERLING_AUTUMN = 1095, + SPECIES_DEERLING_WINTER = 1096, + SPECIES_SAWSBUCK_SUMMER = 1097, + SPECIES_SAWSBUCK_AUTUMN = 1098, + SPECIES_SAWSBUCK_WINTER = 1099, + SPECIES_TORNADUS_THERIAN = 1100, + SPECIES_THUNDURUS_THERIAN = 1101, + SPECIES_LANDORUS_THERIAN = 1102, + SPECIES_ENAMORUS_THERIAN = 1103, + SPECIES_KYUREM_WHITE = 1104, + SPECIES_KYUREM_BLACK = 1105, + SPECIES_KELDEO_RESOLUTE = 1106, + SPECIES_MELOETTA_PIROUETTE = 1107, + SPECIES_GENESECT_DOUSE = 1108, + SPECIES_GENESECT_SHOCK = 1109, + SPECIES_GENESECT_BURN = 1110, + SPECIES_GENESECT_CHILL = 1111, + SPECIES_GRENINJA_BOND = 1112, + SPECIES_GRENINJA_BATTLE_BOND = SPECIES_GRENINJA_BOND, + SPECIES_GRENINJA_ASH = 1113, + SPECIES_VIVILLON_POLAR = 1114, + SPECIES_VIVILLON_TUNDRA = 1115, + SPECIES_VIVILLON_CONTINENTAL = 1116, + SPECIES_VIVILLON_GARDEN = 1117, + SPECIES_VIVILLON_ELEGANT = 1118, + SPECIES_VIVILLON_MEADOW = 1119, + SPECIES_VIVILLON_MODERN = 1120, + SPECIES_VIVILLON_MARINE = 1121, + SPECIES_VIVILLON_ARCHIPELAGO = 1122, + SPECIES_VIVILLON_HIGH_PLAINS = 1123, + SPECIES_VIVILLON_SANDSTORM = 1124, + SPECIES_VIVILLON_RIVER = 1125, + SPECIES_VIVILLON_MONSOON = 1126, + SPECIES_VIVILLON_SAVANNA = 1127, + SPECIES_VIVILLON_SUN = 1128, + SPECIES_VIVILLON_OCEAN = 1129, + SPECIES_VIVILLON_JUNGLE = 1130, + SPECIES_VIVILLON_FANCY = 1131, + SPECIES_VIVILLON_POKEBALL = 1132, + SPECIES_FLABEBE_YELLOW = 1133, + SPECIES_FLABEBE_ORANGE = 1134, + SPECIES_FLABEBE_BLUE = 1135, + SPECIES_FLABEBE_WHITE = 1136, + SPECIES_FLOETTE_YELLOW = 1137, + SPECIES_FLOETTE_ORANGE = 1138, + SPECIES_FLOETTE_BLUE = 1139, + SPECIES_FLOETTE_WHITE = 1140, + SPECIES_FLOETTE_ETERNAL = 1141, + SPECIES_FLORGES_YELLOW = 1142, + SPECIES_FLORGES_ORANGE = 1143, + SPECIES_FLORGES_BLUE = 1144, + SPECIES_FLORGES_WHITE = 1145, + SPECIES_FURFROU_HEART = 1146, + SPECIES_FURFROU_STAR = 1147, + SPECIES_FURFROU_DIAMOND = 1148, + SPECIES_FURFROU_DEBUTANTE = 1149, + SPECIES_FURFROU_MATRON = 1150, + SPECIES_FURFROU_DANDY = 1151, + SPECIES_FURFROU_LA_REINE = 1152, + SPECIES_FURFROU_KABUKI = 1153, + SPECIES_FURFROU_PHARAOH = 1154, + SPECIES_MEOWSTIC_F = 1155, + SPECIES_AEGISLASH_BLADE = 1156, + SPECIES_PUMPKABOO_SMALL = 1157, + SPECIES_PUMPKABOO_LARGE = 1158, + SPECIES_PUMPKABOO_SUPER = 1159, + SPECIES_GOURGEIST_SMALL = 1160, + SPECIES_GOURGEIST_LARGE = 1161, + SPECIES_GOURGEIST_SUPER = 1162, + SPECIES_XERNEAS_ACTIVE = 1163, + SPECIES_ZYGARDE_10_AURA_BREAK = 1164, + SPECIES_ZYGARDE_10 = SPECIES_ZYGARDE_10_AURA_BREAK, + SPECIES_ZYGARDE_10_POWER_CONSTRUCT = 1165, + SPECIES_ZYGARDE_50_POWER_CONSTRUCT = 1166, + SPECIES_ZYGARDE_COMPLETE = 1167, + SPECIES_HOOPA_UNBOUND = 1168, + SPECIES_ORICORIO_POM_POM = 1169, + SPECIES_ORICORIO_PAU = 1170, + SPECIES_ORICORIO_SENSU = 1171, + SPECIES_ROCKRUFF_OWN_TEMPO = 1172, + SPECIES_LYCANROC_MIDNIGHT = 1173, + SPECIES_LYCANROC_DUSK = 1174, + SPECIES_WISHIWASHI_SCHOOL = 1175, + SPECIES_SILVALLY_FIGHTING = 1176, + SPECIES_SILVALLY_FLYING = 1177, + SPECIES_SILVALLY_POISON = 1178, + SPECIES_SILVALLY_GROUND = 1179, + SPECIES_SILVALLY_ROCK = 1180, + SPECIES_SILVALLY_BUG = 1181, + SPECIES_SILVALLY_GHOST = 1182, + SPECIES_SILVALLY_STEEL = 1183, + SPECIES_SILVALLY_FIRE = 1184, + SPECIES_SILVALLY_WATER = 1185, + SPECIES_SILVALLY_GRASS = 1186, + SPECIES_SILVALLY_ELECTRIC = 1187, + SPECIES_SILVALLY_PSYCHIC = 1188, + SPECIES_SILVALLY_ICE = 1189, + SPECIES_SILVALLY_DRAGON = 1190, + SPECIES_SILVALLY_DARK = 1191, + SPECIES_SILVALLY_FAIRY = 1192, + SPECIES_MINIOR_METEOR_ORANGE = 1193, + SPECIES_MINIOR_METEOR_YELLOW = 1194, + SPECIES_MINIOR_METEOR_GREEN = 1195, + SPECIES_MINIOR_METEOR_BLUE = 1196, + SPECIES_MINIOR_METEOR_INDIGO = 1197, + SPECIES_MINIOR_METEOR_VIOLET = 1198, + SPECIES_MINIOR_ORANGE = SPECIES_MINIOR_METEOR_ORANGE, + SPECIES_MINIOR_YELLOW = SPECIES_MINIOR_METEOR_YELLOW, + SPECIES_MINIOR_GREEN = SPECIES_MINIOR_METEOR_GREEN, + SPECIES_MINIOR_BLUE = SPECIES_MINIOR_METEOR_BLUE, + SPECIES_MINIOR_INDIGO = SPECIES_MINIOR_METEOR_INDIGO, + SPECIES_MINIOR_VIOLET = SPECIES_MINIOR_METEOR_VIOLET, + SPECIES_MINIOR_CORE_RED = 1199, + SPECIES_MINIOR_CORE = SPECIES_MINIOR_CORE_RED, + SPECIES_MINIOR_CORE_ORANGE = 1200, + SPECIES_MINIOR_CORE_YELLOW = 1201, + SPECIES_MINIOR_CORE_GREEN = 1202, + SPECIES_MINIOR_CORE_BLUE = 1203, + SPECIES_MINIOR_CORE_INDIGO = 1204, + SPECIES_MINIOR_CORE_VIOLET = 1205, + SPECIES_MIMIKYU_BUSTED = 1206, + SPECIES_NECROZMA_DUSK_MANE = 1207, + SPECIES_NECROZMA_DAWN_WINGS = 1208, + SPECIES_NECROZMA_ULTRA = 1209, + SPECIES_MAGEARNA_ORIGINAL = 1210, + SPECIES_CRAMORANT_GULPING = 1211, + SPECIES_CRAMORANT_GORGING = 1212, + SPECIES_TOXTRICITY_LOW_KEY = 1213, + SPECIES_SINISTEA_ANTIQUE = 1214, + SPECIES_POLTEAGEIST_ANTIQUE = 1215, + SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM = 1216, + SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM = 1217, + SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM = 1218, + SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM = 1219, + SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM = 1220, + SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL = 1221, + SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL = 1222, + SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL = 1223, + SPECIES_ALCREMIE_RUBY_CREAM = SPECIES_ALCREMIE_STRAWBERRY_RUBY_CREAM, + SPECIES_ALCREMIE_MATCHA_CREAM = SPECIES_ALCREMIE_STRAWBERRY_MATCHA_CREAM, + SPECIES_ALCREMIE_MINT_CREAM = SPECIES_ALCREMIE_STRAWBERRY_MINT_CREAM, + SPECIES_ALCREMIE_LEMON_CREAM = SPECIES_ALCREMIE_STRAWBERRY_LEMON_CREAM, + SPECIES_ALCREMIE_SALTED_CREAM = SPECIES_ALCREMIE_STRAWBERRY_SALTED_CREAM, + SPECIES_ALCREMIE_RUBY_SWIRL = SPECIES_ALCREMIE_STRAWBERRY_RUBY_SWIRL, + SPECIES_ALCREMIE_CARAMEL_SWIRL = SPECIES_ALCREMIE_STRAWBERRY_CARAMEL_SWIRL, + SPECIES_ALCREMIE_RAINBOW_SWIRL = SPECIES_ALCREMIE_STRAWBERRY_RAINBOW_SWIRL, + SPECIES_EISCUE_NOICE = 1224, + SPECIES_INDEEDEE_F = 1225, + SPECIES_MORPEKO_HANGRY = 1226, + SPECIES_ZACIAN_CROWNED = 1227, + SPECIES_ZAMAZENTA_CROWNED = 1228, + SPECIES_ETERNATUS_ETERNAMAX = 1229, + SPECIES_URSHIFU_RAPID_STRIKE = 1230, + SPECIES_ZARUDE_DADA = 1231, + SPECIES_CALYREX_ICE = 1232, + SPECIES_CALYREX_SHADOW = 1233, + SPECIES_BASCULEGION_F = 1234, + SPECIES_ALCREMIE_BERRY_VANILLA_CREAM = 1235, + SPECIES_ALCREMIE_BERRY = SPECIES_ALCREMIE_BERRY_VANILLA_CREAM, + SPECIES_ALCREMIE_BERRY_RUBY_CREAM = 1236, + SPECIES_ALCREMIE_BERRY_MATCHA_CREAM = 1237, + SPECIES_ALCREMIE_BERRY_MINT_CREAM = 1238, + SPECIES_ALCREMIE_BERRY_LEMON_CREAM = 1239, + SPECIES_ALCREMIE_BERRY_SALTED_CREAM = 1240, + SPECIES_ALCREMIE_BERRY_RUBY_SWIRL = 1241, + SPECIES_ALCREMIE_BERRY_CARAMEL_SWIRL = 1242, + SPECIES_ALCREMIE_BERRY_RAINBOW_SWIRL = 1243, + SPECIES_ALCREMIE_LOVE_VANILLA_CREAM = 1244, + SPECIES_ALCREMIE_LOVE = SPECIES_ALCREMIE_LOVE_VANILLA_CREAM, + SPECIES_ALCREMIE_LOVE_RUBY_CREAM = 1245, + SPECIES_ALCREMIE_LOVE_MATCHA_CREAM = 1246, + SPECIES_ALCREMIE_LOVE_MINT_CREAM = 1247, + SPECIES_ALCREMIE_LOVE_LEMON_CREAM = 1248, + SPECIES_ALCREMIE_LOVE_SALTED_CREAM = 1249, + SPECIES_ALCREMIE_LOVE_RUBY_SWIRL = 1250, + SPECIES_ALCREMIE_LOVE_CARAMEL_SWIRL = 1251, + SPECIES_ALCREMIE_LOVE_RAINBOW_SWIRL = 1252, + SPECIES_ALCREMIE_STAR_VANILLA_CREAM = 1253, + SPECIES_ALCREMIE_STAR = SPECIES_ALCREMIE_STAR_VANILLA_CREAM, + SPECIES_ALCREMIE_STAR_RUBY_CREAM = 1254, + SPECIES_ALCREMIE_STAR_MATCHA_CREAM = 1255, + SPECIES_ALCREMIE_STAR_MINT_CREAM = 1256, + SPECIES_ALCREMIE_STAR_LEMON_CREAM = 1257, + SPECIES_ALCREMIE_STAR_SALTED_CREAM = 1258, + SPECIES_ALCREMIE_STAR_RUBY_SWIRL = 1259, + SPECIES_ALCREMIE_STAR_CARAMEL_SWIRL = 1260, + SPECIES_ALCREMIE_STAR_RAINBOW_SWIRL = 1261, + SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM = 1262, + SPECIES_ALCREMIE_CLOVER = SPECIES_ALCREMIE_CLOVER_VANILLA_CREAM, + SPECIES_ALCREMIE_CLOVER_RUBY_CREAM = 1263, + SPECIES_ALCREMIE_CLOVER_MATCHA_CREAM = 1264, + SPECIES_ALCREMIE_CLOVER_MINT_CREAM = 1265, + SPECIES_ALCREMIE_CLOVER_LEMON_CREAM = 1266, + SPECIES_ALCREMIE_CLOVER_SALTED_CREAM = 1267, + SPECIES_ALCREMIE_CLOVER_RUBY_SWIRL = 1268, + SPECIES_ALCREMIE_CLOVER_CARAMEL_SWIRL = 1269, + SPECIES_ALCREMIE_CLOVER_RAINBOW_SWIRL = 1270, + SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM = 1271, + SPECIES_ALCREMIE_FLOWER = SPECIES_ALCREMIE_FLOWER_VANILLA_CREAM, + SPECIES_ALCREMIE_FLOWER_RUBY_CREAM = 1272, + SPECIES_ALCREMIE_FLOWER_MATCHA_CREAM = 1273, + SPECIES_ALCREMIE_FLOWER_MINT_CREAM = 1274, + SPECIES_ALCREMIE_FLOWER_LEMON_CREAM = 1275, + SPECIES_ALCREMIE_FLOWER_SALTED_CREAM = 1276, + SPECIES_ALCREMIE_FLOWER_RUBY_SWIRL = 1277, + SPECIES_ALCREMIE_FLOWER_CARAMEL_SWIRL = 1278, + SPECIES_ALCREMIE_FLOWER_RAINBOW_SWIRL = 1279, + SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM = 1280, + SPECIES_ALCREMIE_RIBBON = SPECIES_ALCREMIE_RIBBON_VANILLA_CREAM, + SPECIES_ALCREMIE_RIBBON_RUBY_CREAM = 1281, + SPECIES_ALCREMIE_RIBBON_MATCHA_CREAM = 1282, + SPECIES_ALCREMIE_RIBBON_MINT_CREAM = 1283, + SPECIES_ALCREMIE_RIBBON_LEMON_CREAM = 1284, + SPECIES_ALCREMIE_RIBBON_SALTED_CREAM = 1285, + SPECIES_ALCREMIE_RIBBON_RUBY_SWIRL = 1286, + SPECIES_ALCREMIE_RIBBON_CARAMEL_SWIRL = 1287, + SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL = 1288, -#define GEN9_START SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL + GEN9_START = SPECIES_ALCREMIE_RIBBON_RAINBOW_SWIRL, -#define SPECIES_SPRIGATITO 1289 -#define SPECIES_FLORAGATO 1290 -#define SPECIES_MEOWSCARADA 1291 -#define SPECIES_FUECOCO 1292 -#define SPECIES_CROCALOR 1293 -#define SPECIES_SKELEDIRGE 1294 -#define SPECIES_QUAXLY 1295 -#define SPECIES_QUAXWELL 1296 -#define SPECIES_QUAQUAVAL 1297 -#define SPECIES_LECHONK 1298 -#define SPECIES_OINKOLOGNE SPECIES_OINKOLOGNE_M -#define SPECIES_OINKOLOGNE_M 1299 -#define SPECIES_OINKOLOGNE_F 1300 -#define SPECIES_TAROUNTULA 1301 -#define SPECIES_SPIDOPS 1302 -#define SPECIES_NYMBLE 1303 -#define SPECIES_LOKIX 1304 -#define SPECIES_PAWMI 1305 -#define SPECIES_PAWMO 1306 -#define SPECIES_PAWMOT 1307 -#define SPECIES_TANDEMAUS 1308 -#define SPECIES_MAUSHOLD SPECIES_MAUSHOLD_THREE -#define SPECIES_MAUSHOLD_THREE 1309 -#define SPECIES_MAUSHOLD_FOUR 1310 -#define SPECIES_FIDOUGH 1311 -#define SPECIES_DACHSBUN 1312 -#define SPECIES_SMOLIV 1313 -#define SPECIES_DOLLIV 1314 -#define SPECIES_ARBOLIVA 1315 -#define SPECIES_SQUAWKABILLY SPECIES_SQUAWKABILLY_GREEN -#define SPECIES_SQUAWKABILLY_GREEN 1316 -#define SPECIES_SQUAWKABILLY_BLUE 1317 -#define SPECIES_SQUAWKABILLY_YELLOW 1318 -#define SPECIES_SQUAWKABILLY_WHITE 1319 -#define SPECIES_NACLI 1320 -#define SPECIES_NACLSTACK 1321 -#define SPECIES_GARGANACL 1322 -#define SPECIES_CHARCADET 1323 -#define SPECIES_ARMAROUGE 1324 -#define SPECIES_CERULEDGE 1325 -#define SPECIES_TADBULB 1326 -#define SPECIES_BELLIBOLT 1327 -#define SPECIES_WATTREL 1328 -#define SPECIES_KILOWATTREL 1329 -#define SPECIES_MASCHIFF 1330 -#define SPECIES_MABOSSTIFF 1331 -#define SPECIES_SHROODLE 1332 -#define SPECIES_GRAFAIAI 1333 -#define SPECIES_BRAMBLIN 1334 -#define SPECIES_BRAMBLEGHAST 1335 -#define SPECIES_TOEDSCOOL 1336 -#define SPECIES_TOEDSCRUEL 1337 -#define SPECIES_KLAWF 1338 -#define SPECIES_CAPSAKID 1339 -#define SPECIES_SCOVILLAIN 1340 -#define SPECIES_RELLOR 1341 -#define SPECIES_RABSCA 1342 -#define SPECIES_FLITTLE 1343 -#define SPECIES_ESPATHRA 1344 -#define SPECIES_TINKATINK 1345 -#define SPECIES_TINKATUFF 1346 -#define SPECIES_TINKATON 1347 -#define SPECIES_WIGLETT 1348 -#define SPECIES_WUGTRIO 1349 -#define SPECIES_BOMBIRDIER 1350 -#define SPECIES_FINIZEN 1351 -#define SPECIES_PALAFIN SPECIES_PALAFIN_ZERO -#define SPECIES_PALAFIN_ZERO 1352 -#define SPECIES_PALAFIN_HERO 1353 -#define SPECIES_VAROOM 1354 -#define SPECIES_REVAVROOM 1355 -#define SPECIES_CYCLIZAR 1356 -#define SPECIES_ORTHWORM 1357 -#define SPECIES_GLIMMET 1358 -#define SPECIES_GLIMMORA 1359 -#define SPECIES_GREAVARD 1360 -#define SPECIES_HOUNDSTONE 1361 -#define SPECIES_FLAMIGO 1362 -#define SPECIES_CETODDLE 1363 -#define SPECIES_CETITAN 1364 -#define SPECIES_VELUZA 1365 -#define SPECIES_DONDOZO 1366 -#define SPECIES_TATSUGIRI SPECIES_TATSUGIRI_CURLY -#define SPECIES_TATSUGIRI_CURLY 1367 -#define SPECIES_TATSUGIRI_DROOPY 1368 -#define SPECIES_TATSUGIRI_STRETCHY 1369 -#define SPECIES_ANNIHILAPE 1370 -#define SPECIES_CLODSIRE 1371 -#define SPECIES_FARIGIRAF 1372 -#define SPECIES_DUDUNSPARCE SPECIES_DUDUNSPARCE_TWO_SEGMENT -#define SPECIES_DUDUNSPARCE_TWO_SEGMENT 1373 -#define SPECIES_DUDUNSPARCE_THREE_SEGMENT 1374 -#define SPECIES_KINGAMBIT 1375 -#define SPECIES_GREAT_TUSK 1376 -#define SPECIES_SCREAM_TAIL 1377 -#define SPECIES_BRUTE_BONNET 1378 -#define SPECIES_FLUTTER_MANE 1379 -#define SPECIES_SLITHER_WING 1380 -#define SPECIES_SANDY_SHOCKS 1381 -#define SPECIES_IRON_TREADS 1382 -#define SPECIES_IRON_BUNDLE 1383 -#define SPECIES_IRON_HANDS 1384 -#define SPECIES_IRON_JUGULIS 1385 -#define SPECIES_IRON_MOTH 1386 -#define SPECIES_IRON_THORNS 1387 -#define SPECIES_FRIGIBAX 1388 -#define SPECIES_ARCTIBAX 1389 -#define SPECIES_BAXCALIBUR 1390 -#define SPECIES_GIMMIGHOUL SPECIES_GIMMIGHOUL_CHEST -#define SPECIES_GIMMIGHOUL_CHEST 1391 -#define SPECIES_GIMMIGHOUL_ROAMING 1392 -#define SPECIES_GHOLDENGO 1393 -#define SPECIES_WO_CHIEN 1394 -#define SPECIES_CHIEN_PAO 1395 -#define SPECIES_TING_LU 1396 -#define SPECIES_CHI_YU 1397 -#define SPECIES_ROARING_MOON 1398 -#define SPECIES_IRON_VALIANT 1399 -#define SPECIES_KORAIDON 1400 -#define SPECIES_MIRAIDON 1401 -// Paldean Forms -#define SPECIES_TAUROS_PALDEA_COMBAT 1402 -#define SPECIES_TAUROS_PALDEA_BLAZE 1403 -#define SPECIES_TAUROS_PALDEA_AQUA 1404 -#define SPECIES_WOOPER_PALDEA 1405 -// Scarlet and Violet 1.2.0 -#define SPECIES_WALKING_WAKE 1406 -#define SPECIES_IRON_LEAVES 1407 -// Teal Mask -#define SPECIES_DIPPLIN 1408 -#define SPECIES_POLTCHAGEIST SPECIES_POLTCHAGEIST_COUNTERFEIT -#define SPECIES_POLTCHAGEIST_COUNTERFEIT 1409 -#define SPECIES_POLTCHAGEIST_ARTISAN 1410 -#define SPECIES_SINISTCHA SPECIES_SINISTCHA_UNREMARKABLE -#define SPECIES_SINISTCHA_UNREMARKABLE 1411 -#define SPECIES_SINISTCHA_MASTERPIECE 1412 -#define SPECIES_OKIDOGI 1413 -#define SPECIES_MUNKIDORI 1414 -#define SPECIES_FEZANDIPITI 1415 -#define SPECIES_OGERPON SPECIES_OGERPON_TEAL -#define SPECIES_OGERPON_TEAL 1416 -#define SPECIES_OGERPON_WELLSPRING 1417 -#define SPECIES_OGERPON_HEARTHFLAME 1418 -#define SPECIES_OGERPON_CORNERSTONE 1419 -#define SPECIES_OGERPON_TEAL_TERA 1420 -#define SPECIES_OGERPON_WELLSPRING_TERA 1421 -#define SPECIES_OGERPON_HEARTHFLAME_TERA 1422 -#define SPECIES_OGERPON_CORNERSTONE_TERA 1423 -#define SPECIES_URSALUNA_BLOODMOON 1424 -// Indigo Disk -#define SPECIES_ARCHALUDON 1425 -#define SPECIES_HYDRAPPLE 1426 -#define SPECIES_GOUGING_FIRE 1427 -#define SPECIES_RAGING_BOLT 1428 -#define SPECIES_IRON_BOULDER 1429 -#define SPECIES_IRON_CROWN 1430 -#define SPECIES_TERAPAGOS SPECIES_TERAPAGOS_NORMAL -#define SPECIES_TERAPAGOS_NORMAL 1431 -#define SPECIES_TERAPAGOS_TERASTAL 1432 -#define SPECIES_TERAPAGOS_STELLAR 1433 -#define SPECIES_PECHARUNT 1434 -#define SPECIES_LUGIA_SHADOW 1435 -#define SPECIES_MOTHIM_SANDY 1436 -#define SPECIES_MOTHIM_TRASH 1437 -#define SPECIES_SCATTERBUG_POLAR 1438 -#define SPECIES_SCATTERBUG_TUNDRA 1439 -#define SPECIES_SCATTERBUG_CONTINENTAL 1440 -#define SPECIES_SCATTERBUG_GARDEN 1441 -#define SPECIES_SCATTERBUG_ELEGANT 1442 -#define SPECIES_SCATTERBUG_MEADOW 1443 -#define SPECIES_SCATTERBUG_MODERN 1444 -#define SPECIES_SCATTERBUG_MARINE 1445 -#define SPECIES_SCATTERBUG_ARCHIPELAGO 1446 -#define SPECIES_SCATTERBUG_HIGH_PLAINS 1447 -#define SPECIES_SCATTERBUG_SANDSTORM 1448 -#define SPECIES_SCATTERBUG_RIVER 1449 -#define SPECIES_SCATTERBUG_MONSOON 1450 -#define SPECIES_SCATTERBUG_SAVANNA 1451 -#define SPECIES_SCATTERBUG_SUN 1452 -#define SPECIES_SCATTERBUG_OCEAN 1453 -#define SPECIES_SCATTERBUG_JUNGLE 1454 -#define SPECIES_SCATTERBUG_FANCY 1455 -#define SPECIES_SCATTERBUG_POKEBALL 1456 -#define SPECIES_SPEWPA_POLAR 1457 -#define SPECIES_SPEWPA_TUNDRA 1458 -#define SPECIES_SPEWPA_CONTINENTAL 1459 -#define SPECIES_SPEWPA_GARDEN 1460 -#define SPECIES_SPEWPA_ELEGANT 1461 -#define SPECIES_SPEWPA_MEADOW 1462 -#define SPECIES_SPEWPA_MODERN 1463 -#define SPECIES_SPEWPA_MARINE 1464 -#define SPECIES_SPEWPA_ARCHIPELAGO 1465 -#define SPECIES_SPEWPA_HIGH_PLAINS 1466 -#define SPECIES_SPEWPA_SANDSTORM 1467 -#define SPECIES_SPEWPA_RIVER 1468 -#define SPECIES_SPEWPA_MONSOON 1469 -#define SPECIES_SPEWPA_SAVANNA 1470 -#define SPECIES_SPEWPA_SUN 1471 -#define SPECIES_SPEWPA_OCEAN 1472 -#define SPECIES_SPEWPA_JUNGLE 1473 -#define SPECIES_SPEWPA_FANCY 1474 -#define SPECIES_SPEWPA_POKEBALL 1475 -#define SPECIES_RATICATE_ALOLA_TOTEM 1476 -#define SPECIES_GUMSHOOS_TOTEM 1477 -#define SPECIES_VIKAVOLT_TOTEM 1478 -#define SPECIES_LURANTIS_TOTEM 1479 -#define SPECIES_SALAZZLE_TOTEM 1480 -#define SPECIES_MIMIKYU_TOTEM SPECIES_MIMIKYU_TOTEM_DISGUISED -#define SPECIES_MIMIKYU_TOTEM_DISGUISED 1481 -#define SPECIES_KOMMO_O_TOTEM 1482 -#define SPECIES_MAROWAK_ALOLA_TOTEM 1483 -#define SPECIES_RIBOMBEE_TOTEM 1484 -#define SPECIES_ARAQUANID_TOTEM 1485 -#define SPECIES_TOGEDEMARU_TOTEM 1486 -#define SPECIES_PIKACHU_STARTER 1487 -#define SPECIES_EEVEE_STARTER 1488 -#define SPECIES_VENUSAUR_GMAX 1489 -#define SPECIES_BLASTOISE_GMAX 1490 -#define SPECIES_CHARIZARD_GMAX 1491 -#define SPECIES_BUTTERFREE_GMAX 1492 -#define SPECIES_PIKACHU_GMAX 1493 -#define SPECIES_MEOWTH_GMAX 1494 -#define SPECIES_MACHAMP_GMAX 1495 -#define SPECIES_GENGAR_GMAX 1496 -#define SPECIES_KINGLER_GMAX 1497 -#define SPECIES_LAPRAS_GMAX 1498 -#define SPECIES_EEVEE_GMAX 1499 -#define SPECIES_SNORLAX_GMAX 1500 -#define SPECIES_GARBODOR_GMAX 1501 -#define SPECIES_MELMETAL_GMAX 1502 -#define SPECIES_RILLABOOM_GMAX 1503 -#define SPECIES_CINDERACE_GMAX 1504 -#define SPECIES_INTELEON_GMAX 1505 -#define SPECIES_CORVIKNIGHT_GMAX 1506 -#define SPECIES_ORBEETLE_GMAX 1507 -#define SPECIES_DREDNAW_GMAX 1508 -#define SPECIES_COALOSSAL_GMAX 1509 -#define SPECIES_FLAPPLE_GMAX 1510 -#define SPECIES_APPLETUN_GMAX 1511 -#define SPECIES_SANDACONDA_GMAX 1512 -#define SPECIES_TOXTRICITY_AMPED_GMAX 1513 -#define SPECIES_TOXTRICITY_LOW_KEY_GMAX 1514 -#define SPECIES_CENTISKORCH_GMAX 1515 -#define SPECIES_HATTERENE_GMAX 1516 -#define SPECIES_GRIMMSNARL_GMAX 1517 -#define SPECIES_ALCREMIE_GMAX 1518 -#define SPECIES_COPPERAJAH_GMAX 1519 -#define SPECIES_DURALUDON_GMAX 1520 -#define SPECIES_URSHIFU_SINGLE_STRIKE_GMAX 1521 -#define SPECIES_URSHIFU_GMAX SPECIES_URSHIFU_SINGLE_STRIKE_GMAX -#define SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GMAX SPECIES_URSHIFU_SINGLE_STRIKE_GMAX -#define SPECIES_URSHIFU_RAPID_STRIKE_GMAX 1522 -#define SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GMAX SPECIES_URSHIFU_RAPID_STRIKE_GMAX -#define SPECIES_MIMIKYU_BUSTED_TOTEM 1523 -#define SPECIES_MIMIKYU_TOTEM_BUSTED SPECIES_MIMIKYU_BUSTED_TOTEM -// Legends Z-A -#define SPECIES_CLEFABLE_MEGA 1524 -#define SPECIES_VICTREEBEL_MEGA 1525 -#define SPECIES_STARMIE_MEGA 1526 -#define SPECIES_DRAGONITE_MEGA 1527 -#define SPECIES_MEGANIUM_MEGA 1528 -#define SPECIES_FERALIGATR_MEGA 1529 -#define SPECIES_SKARMORY_MEGA 1530 -#define SPECIES_FROSLASS_MEGA 1531 -#define SPECIES_EMBOAR_MEGA 1532 -#define SPECIES_EXCADRILL_MEGA 1533 -#define SPECIES_SCOLIPEDE_MEGA 1534 -#define SPECIES_SCRAFTY_MEGA 1535 -#define SPECIES_EELEKTROSS_MEGA 1536 -#define SPECIES_CHANDELURE_MEGA 1537 -#define SPECIES_CHESNAUGHT_MEGA 1538 -#define SPECIES_DELPHOX_MEGA 1539 -#define SPECIES_GRENINJA_MEGA 1540 -#define SPECIES_PYROAR_MEGA 1541 -#define SPECIES_MALAMAR_MEGA 1542 -#define SPECIES_DRAGALGE_MEGA 1543 -#define SPECIES_HAWLUCHA_MEGA 1544 -#define SPECIES_FLOETTE_MEGA 1545 -#define SPECIES_BARBARACLE_MEGA 1546 -#define SPECIES_ZYGARDE_MEGA 1547 -#define SPECIES_DRAMPA_MEGA 1548 -#define SPECIES_FALINKS_MEGA 1549 -#define SPECIES_HEATRAN_MEGA 1550 -#define SPECIES_DARKRAI_MEGA 1551 -#define SPECIES_ZERAORA_MEGA 1552 -#define SPECIES_RAICHU_MEGA_X 1553 -#define SPECIES_RAICHU_MEGA_Y 1554 -#define SPECIES_CHIMECHO_MEGA 1555 -#define SPECIES_ABSOL_MEGA_Z 1556 -#define SPECIES_STARAPTOR_MEGA 1557 -#define SPECIES_GARCHOMP_MEGA_Z 1558 -#define SPECIES_LUCARIO_MEGA_Z 1559 -#define SPECIES_GOLURK_MEGA 1560 -#define SPECIES_MEOWSTIC_M_MEGA 1561 -#define SPECIES_MEOWSTIC_F_MEGA 1562 -#define SPECIES_CRABOMINABLE_MEGA 1563 -#define SPECIES_GOLISOPOD_MEGA 1564 -#define SPECIES_MAGEARNA_MEGA 1565 -#define SPECIES_MAGEARNA_ORIGINAL_MEGA 1566 -#define SPECIES_SCOVILLAIN_MEGA 1567 -#define SPECIES_BAXCALIBUR_MEGA 1568 -#define SPECIES_TATSUGIRI_CURLY_MEGA 1569 -#define SPECIES_TATSUGIRI_DROOPY_MEGA 1570 -#define SPECIES_TATSUGIRI_STRETCHY_MEGA 1571 -#define SPECIES_GLIMMORA_MEGA 1572 + SPECIES_SPRIGATITO = 1289, + SPECIES_FLORAGATO = 1290, + SPECIES_MEOWSCARADA = 1291, + SPECIES_FUECOCO = 1292, + SPECIES_CROCALOR = 1293, + SPECIES_SKELEDIRGE = 1294, + SPECIES_QUAXLY = 1295, + SPECIES_QUAXWELL = 1296, + SPECIES_QUAQUAVAL = 1297, + SPECIES_LECHONK = 1298, + SPECIES_OINKOLOGNE_M = 1299, + SPECIES_OINKOLOGNE = SPECIES_OINKOLOGNE_M, + SPECIES_OINKOLOGNE_F = 1300, + SPECIES_TAROUNTULA = 1301, + SPECIES_SPIDOPS = 1302, + SPECIES_NYMBLE = 1303, + SPECIES_LOKIX = 1304, + SPECIES_PAWMI = 1305, + SPECIES_PAWMO = 1306, + SPECIES_PAWMOT = 1307, + SPECIES_TANDEMAUS = 1308, + SPECIES_MAUSHOLD_THREE = 1309, + SPECIES_MAUSHOLD = SPECIES_MAUSHOLD_THREE, + SPECIES_MAUSHOLD_FOUR = 1310, + SPECIES_FIDOUGH = 1311, + SPECIES_DACHSBUN = 1312, + SPECIES_SMOLIV = 1313, + SPECIES_DOLLIV = 1314, + SPECIES_ARBOLIVA = 1315, + SPECIES_SQUAWKABILLY_GREEN = 1316, + SPECIES_SQUAWKABILLY = SPECIES_SQUAWKABILLY_GREEN, + SPECIES_SQUAWKABILLY_BLUE = 1317, + SPECIES_SQUAWKABILLY_YELLOW = 1318, + SPECIES_SQUAWKABILLY_WHITE = 1319, + SPECIES_NACLI = 1320, + SPECIES_NACLSTACK = 1321, + SPECIES_GARGANACL = 1322, + SPECIES_CHARCADET = 1323, + SPECIES_ARMAROUGE = 1324, + SPECIES_CERULEDGE = 1325, + SPECIES_TADBULB = 1326, + SPECIES_BELLIBOLT = 1327, + SPECIES_WATTREL = 1328, + SPECIES_KILOWATTREL = 1329, + SPECIES_MASCHIFF = 1330, + SPECIES_MABOSSTIFF = 1331, + SPECIES_SHROODLE = 1332, + SPECIES_GRAFAIAI = 1333, + SPECIES_BRAMBLIN = 1334, + SPECIES_BRAMBLEGHAST = 1335, + SPECIES_TOEDSCOOL = 1336, + SPECIES_TOEDSCRUEL = 1337, + SPECIES_KLAWF = 1338, + SPECIES_CAPSAKID = 1339, + SPECIES_SCOVILLAIN = 1340, + SPECIES_RELLOR = 1341, + SPECIES_RABSCA = 1342, + SPECIES_FLITTLE = 1343, + SPECIES_ESPATHRA = 1344, + SPECIES_TINKATINK = 1345, + SPECIES_TINKATUFF = 1346, + SPECIES_TINKATON = 1347, + SPECIES_WIGLETT = 1348, + SPECIES_WUGTRIO = 1349, + SPECIES_BOMBIRDIER = 1350, + SPECIES_FINIZEN = 1351, + SPECIES_PALAFIN_ZERO = 1352, + SPECIES_PALAFIN = SPECIES_PALAFIN_ZERO, + SPECIES_PALAFIN_HERO = 1353, + SPECIES_VAROOM = 1354, + SPECIES_REVAVROOM = 1355, + SPECIES_CYCLIZAR = 1356, + SPECIES_ORTHWORM = 1357, + SPECIES_GLIMMET = 1358, + SPECIES_GLIMMORA = 1359, + SPECIES_GREAVARD = 1360, + SPECIES_HOUNDSTONE = 1361, + SPECIES_FLAMIGO = 1362, + SPECIES_CETODDLE = 1363, + SPECIES_CETITAN = 1364, + SPECIES_VELUZA = 1365, + SPECIES_DONDOZO = 1366, + SPECIES_TATSUGIRI_CURLY = 1367, + SPECIES_TATSUGIRI = SPECIES_TATSUGIRI_CURLY, + SPECIES_TATSUGIRI_DROOPY = 1368, + SPECIES_TATSUGIRI_STRETCHY = 1369, + SPECIES_ANNIHILAPE = 1370, + SPECIES_CLODSIRE = 1371, + SPECIES_FARIGIRAF = 1372, + SPECIES_DUDUNSPARCE_TWO_SEGMENT = 1373, + SPECIES_DUDUNSPARCE = SPECIES_DUDUNSPARCE_TWO_SEGMENT, + SPECIES_DUDUNSPARCE_THREE_SEGMENT = 1374, + SPECIES_KINGAMBIT = 1375, + SPECIES_GREAT_TUSK = 1376, + SPECIES_SCREAM_TAIL = 1377, + SPECIES_BRUTE_BONNET = 1378, + SPECIES_FLUTTER_MANE = 1379, + SPECIES_SLITHER_WING = 1380, + SPECIES_SANDY_SHOCKS = 1381, + SPECIES_IRON_TREADS = 1382, + SPECIES_IRON_BUNDLE = 1383, + SPECIES_IRON_HANDS = 1384, + SPECIES_IRON_JUGULIS = 1385, + SPECIES_IRON_MOTH = 1386, + SPECIES_IRON_THORNS = 1387, + SPECIES_FRIGIBAX = 1388, + SPECIES_ARCTIBAX = 1389, + SPECIES_BAXCALIBUR = 1390, + SPECIES_GIMMIGHOUL_CHEST = 1391, + SPECIES_GIMMIGHOUL = SPECIES_GIMMIGHOUL_CHEST, + SPECIES_GIMMIGHOUL_ROAMING = 1392, + SPECIES_GHOLDENGO = 1393, + SPECIES_WO_CHIEN = 1394, + SPECIES_CHIEN_PAO = 1395, + SPECIES_TING_LU = 1396, + SPECIES_CHI_YU = 1397, + SPECIES_ROARING_MOON = 1398, + SPECIES_IRON_VALIANT = 1399, + SPECIES_KORAIDON = 1400, + SPECIES_MIRAIDON = 1401, + // Paldean Forms + SPECIES_TAUROS_PALDEA_COMBAT = 1402, + SPECIES_TAUROS_PALDEA_BLAZE = 1403, + SPECIES_TAUROS_PALDEA_AQUA = 1404, + SPECIES_WOOPER_PALDEA = 1405, + // Scarlet and Violet 1.2.0 + SPECIES_WALKING_WAKE = 1406, + SPECIES_IRON_LEAVES = 1407, + // Teal Mask + SPECIES_DIPPLIN = 1408, + SPECIES_POLTCHAGEIST_COUNTERFEIT = 1409, + SPECIES_POLTCHAGEIST = SPECIES_POLTCHAGEIST_COUNTERFEIT, + SPECIES_POLTCHAGEIST_ARTISAN = 1410, + SPECIES_SINISTCHA_UNREMARKABLE = 1411, + SPECIES_SINISTCHA = SPECIES_SINISTCHA_UNREMARKABLE, + SPECIES_SINISTCHA_MASTERPIECE = 1412, + SPECIES_OKIDOGI = 1413, + SPECIES_MUNKIDORI = 1414, + SPECIES_FEZANDIPITI = 1415, + SPECIES_OGERPON_TEAL = 1416, + SPECIES_OGERPON = SPECIES_OGERPON_TEAL, + SPECIES_OGERPON_WELLSPRING = 1417, + SPECIES_OGERPON_HEARTHFLAME = 1418, + SPECIES_OGERPON_CORNERSTONE = 1419, + SPECIES_OGERPON_TEAL_TERA = 1420, + SPECIES_OGERPON_WELLSPRING_TERA = 1421, + SPECIES_OGERPON_HEARTHFLAME_TERA = 1422, + SPECIES_OGERPON_CORNERSTONE_TERA = 1423, + SPECIES_URSALUNA_BLOODMOON = 1424, + // Indigo Disk + SPECIES_ARCHALUDON = 1425, + SPECIES_HYDRAPPLE = 1426, + SPECIES_GOUGING_FIRE = 1427, + SPECIES_RAGING_BOLT = 1428, + SPECIES_IRON_BOULDER = 1429, + SPECIES_IRON_CROWN = 1430, + SPECIES_TERAPAGOS_NORMAL = 1431, + SPECIES_TERAPAGOS = SPECIES_TERAPAGOS_NORMAL, + SPECIES_TERAPAGOS_TERASTAL = 1432, + SPECIES_TERAPAGOS_STELLAR = 1433, + SPECIES_PECHARUNT = 1434, + SPECIES_LUGIA_SHADOW = 1435, + SPECIES_MOTHIM_SANDY = 1436, + SPECIES_MOTHIM_TRASH = 1437, + SPECIES_SCATTERBUG_POLAR = 1438, + SPECIES_SCATTERBUG_TUNDRA = 1439, + SPECIES_SCATTERBUG_CONTINENTAL = 1440, + SPECIES_SCATTERBUG_GARDEN = 1441, + SPECIES_SCATTERBUG_ELEGANT = 1442, + SPECIES_SCATTERBUG_MEADOW = 1443, + SPECIES_SCATTERBUG_MODERN = 1444, + SPECIES_SCATTERBUG_MARINE = 1445, + SPECIES_SCATTERBUG_ARCHIPELAGO = 1446, + SPECIES_SCATTERBUG_HIGH_PLAINS = 1447, + SPECIES_SCATTERBUG_SANDSTORM = 1448, + SPECIES_SCATTERBUG_RIVER = 1449, + SPECIES_SCATTERBUG_MONSOON = 1450, + SPECIES_SCATTERBUG_SAVANNA = 1451, + SPECIES_SCATTERBUG_SUN = 1452, + SPECIES_SCATTERBUG_OCEAN = 1453, + SPECIES_SCATTERBUG_JUNGLE = 1454, + SPECIES_SCATTERBUG_FANCY = 1455, + SPECIES_SCATTERBUG_POKEBALL = 1456, + SPECIES_SPEWPA_POLAR = 1457, + SPECIES_SPEWPA_TUNDRA = 1458, + SPECIES_SPEWPA_CONTINENTAL = 1459, + SPECIES_SPEWPA_GARDEN = 1460, + SPECIES_SPEWPA_ELEGANT = 1461, + SPECIES_SPEWPA_MEADOW = 1462, + SPECIES_SPEWPA_MODERN = 1463, + SPECIES_SPEWPA_MARINE = 1464, + SPECIES_SPEWPA_ARCHIPELAGO = 1465, + SPECIES_SPEWPA_HIGH_PLAINS = 1466, + SPECIES_SPEWPA_SANDSTORM = 1467, + SPECIES_SPEWPA_RIVER = 1468, + SPECIES_SPEWPA_MONSOON = 1469, + SPECIES_SPEWPA_SAVANNA = 1470, + SPECIES_SPEWPA_SUN = 1471, + SPECIES_SPEWPA_OCEAN = 1472, + SPECIES_SPEWPA_JUNGLE = 1473, + SPECIES_SPEWPA_FANCY = 1474, + SPECIES_SPEWPA_POKEBALL = 1475, + SPECIES_RATICATE_ALOLA_TOTEM = 1476, + SPECIES_GUMSHOOS_TOTEM = 1477, + SPECIES_VIKAVOLT_TOTEM = 1478, + SPECIES_LURANTIS_TOTEM = 1479, + SPECIES_SALAZZLE_TOTEM = 1480, + SPECIES_MIMIKYU_TOTEM_DISGUISED = 1481, + SPECIES_MIMIKYU_TOTEM = SPECIES_MIMIKYU_TOTEM_DISGUISED, + SPECIES_KOMMO_O_TOTEM = 1482, + SPECIES_MAROWAK_ALOLA_TOTEM = 1483, + SPECIES_RIBOMBEE_TOTEM = 1484, + SPECIES_ARAQUANID_TOTEM = 1485, + SPECIES_TOGEDEMARU_TOTEM = 1486, + SPECIES_PIKACHU_STARTER = 1487, + SPECIES_EEVEE_STARTER = 1488, + SPECIES_VENUSAUR_GMAX = 1489, + SPECIES_BLASTOISE_GMAX = 1490, + SPECIES_CHARIZARD_GMAX = 1491, + SPECIES_BUTTERFREE_GMAX = 1492, + SPECIES_PIKACHU_GMAX = 1493, + SPECIES_MEOWTH_GMAX = 1494, + SPECIES_MACHAMP_GMAX = 1495, + SPECIES_GENGAR_GMAX = 1496, + SPECIES_KINGLER_GMAX = 1497, + SPECIES_LAPRAS_GMAX = 1498, + SPECIES_EEVEE_GMAX = 1499, + SPECIES_SNORLAX_GMAX = 1500, + SPECIES_GARBODOR_GMAX = 1501, + SPECIES_MELMETAL_GMAX = 1502, + SPECIES_RILLABOOM_GMAX = 1503, + SPECIES_CINDERACE_GMAX = 1504, + SPECIES_INTELEON_GMAX = 1505, + SPECIES_CORVIKNIGHT_GMAX = 1506, + SPECIES_ORBEETLE_GMAX = 1507, + SPECIES_DREDNAW_GMAX = 1508, + SPECIES_COALOSSAL_GMAX = 1509, + SPECIES_FLAPPLE_GMAX = 1510, + SPECIES_APPLETUN_GMAX = 1511, + SPECIES_SANDACONDA_GMAX = 1512, + SPECIES_TOXTRICITY_AMPED_GMAX = 1513, + SPECIES_TOXTRICITY_LOW_KEY_GMAX = 1514, + SPECIES_CENTISKORCH_GMAX = 1515, + SPECIES_HATTERENE_GMAX = 1516, + SPECIES_GRIMMSNARL_GMAX = 1517, + SPECIES_ALCREMIE_GMAX = 1518, + SPECIES_COPPERAJAH_GMAX = 1519, + SPECIES_DURALUDON_GMAX = 1520, + SPECIES_URSHIFU_SINGLE_STRIKE_GMAX = 1521, + SPECIES_URSHIFU_GMAX = SPECIES_URSHIFU_SINGLE_STRIKE_GMAX, + SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GMAX = SPECIES_URSHIFU_SINGLE_STRIKE_GMAX, + SPECIES_URSHIFU_RAPID_STRIKE_GMAX = 1522, + SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GMAX = SPECIES_URSHIFU_RAPID_STRIKE_GMAX, + SPECIES_MIMIKYU_BUSTED_TOTEM = 1523, + SPECIES_MIMIKYU_TOTEM_BUSTED = SPECIES_MIMIKYU_BUSTED_TOTEM, + // Legends Z-A + SPECIES_CLEFABLE_MEGA = 1524, + SPECIES_VICTREEBEL_MEGA = 1525, + SPECIES_STARMIE_MEGA = 1526, + SPECIES_DRAGONITE_MEGA = 1527, + SPECIES_MEGANIUM_MEGA = 1528, + SPECIES_FERALIGATR_MEGA = 1529, + SPECIES_SKARMORY_MEGA = 1530, + SPECIES_FROSLASS_MEGA = 1531, + SPECIES_EMBOAR_MEGA = 1532, + SPECIES_EXCADRILL_MEGA = 1533, + SPECIES_SCOLIPEDE_MEGA = 1534, + SPECIES_SCRAFTY_MEGA = 1535, + SPECIES_EELEKTROSS_MEGA = 1536, + SPECIES_CHANDELURE_MEGA = 1537, + SPECIES_CHESNAUGHT_MEGA = 1538, + SPECIES_DELPHOX_MEGA = 1539, + SPECIES_GRENINJA_MEGA = 1540, + SPECIES_PYROAR_MEGA = 1541, + SPECIES_MALAMAR_MEGA = 1542, + SPECIES_DRAGALGE_MEGA = 1543, + SPECIES_HAWLUCHA_MEGA = 1544, + SPECIES_FLOETTE_MEGA = 1545, + SPECIES_BARBARACLE_MEGA = 1546, + SPECIES_ZYGARDE_MEGA = 1547, + SPECIES_DRAMPA_MEGA = 1548, + SPECIES_FALINKS_MEGA = 1549, + SPECIES_HEATRAN_MEGA = 1550, + SPECIES_DARKRAI_MEGA = 1551, + SPECIES_ZERAORA_MEGA = 1552, + SPECIES_RAICHU_MEGA_X = 1553, + SPECIES_RAICHU_MEGA_Y = 1554, + SPECIES_CHIMECHO_MEGA = 1555, + SPECIES_ABSOL_MEGA_Z = 1556, + SPECIES_STARAPTOR_MEGA = 1557, + SPECIES_GARCHOMP_MEGA_Z = 1558, + SPECIES_LUCARIO_MEGA_Z = 1559, + SPECIES_GOLURK_MEGA = 1560, + SPECIES_MEOWSTIC_M_MEGA = 1561, + SPECIES_MEOWSTIC_F_MEGA = 1562, + SPECIES_CRABOMINABLE_MEGA = 1563, + SPECIES_GOLISOPOD_MEGA = 1564, + SPECIES_MAGEARNA_MEGA = 1565, + SPECIES_MAGEARNA_ORIGINAL_MEGA = 1566, + SPECIES_SCOVILLAIN_MEGA = 1567, + SPECIES_BAXCALIBUR_MEGA = 1568, + SPECIES_TATSUGIRI_CURLY_MEGA = 1569, + SPECIES_TATSUGIRI_DROOPY_MEGA = 1570, + SPECIES_TATSUGIRI_STRETCHY_MEGA = 1571, + SPECIES_GLIMMORA_MEGA = 1572, -#define SPECIES_EGG (SPECIES_GLIMMORA_MEGA + 1) - -#define NUM_SPECIES SPECIES_EGG + SPECIES_EGG = (SPECIES_GLIMMORA_MEGA + 1), + NUM_SPECIES = SPECIES_EGG, +}; #define SPECIES_SHINY_TAG 5000 diff --git a/include/contest.h b/include/contest.h index 26fe485cb3..ba04942620 100644 --- a/include/contest.h +++ b/include/contest.h @@ -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); diff --git a/include/data.h b/include/data.h index ca53c67840..9f109c98bb 100644 --- a/include/data.h +++ b/include/data.h @@ -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; diff --git a/include/daycare.h b/include/daycare.h index da473911b8..214e02bf86 100644 --- a/include/daycare.h +++ b/include/daycare.h @@ -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); diff --git a/include/decompress.h b/include/decompress.h index 0e9402a02f..af51a304ef 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -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); diff --git a/include/dexnav.h b/include/dexnav.h index 82350f665a..b4bf4a2bff 100644 --- a/include/dexnav.h +++ b/include/dexnav.h @@ -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 diff --git a/include/event_object_movement.h b/include/event_object_movement.h index 0b584c8629..923cc99467 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -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); diff --git a/include/evolution_graphics.h b/include/evolution_graphics.h index 52586fc4f5..331f55c16f 100644 --- a/include/evolution_graphics.h +++ b/include/evolution_graphics.h @@ -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 diff --git a/include/evolution_scene.h b/include/evolution_scene.h index 1b8999c775..22a1b24a62 100644 --- a/include/evolution_scene.h +++ b/include/evolution_scene.h @@ -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); diff --git a/include/field_effect.h b/include/field_effect.h index 0bfe15308b..656c5f0c95 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -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); diff --git a/include/field_specials.h b/include/field_specials.h index a59bff475d..0504f1720f 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -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); diff --git a/include/frontier_util.h b/include/frontier_util.h index b7f93932c9..428fb1ee14 100644 --- a/include/frontier_util.h +++ b/include/frontier_util.h @@ -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); diff --git a/include/global.h b/include/global.h index 58d043d80c..66d1a60283 100644 --- a/include/global.h +++ b/include/global.h @@ -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; diff --git a/include/global.tv.h b/include/global.tv.h index 1be29673e0..58ef8702c8 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -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; diff --git a/include/international_string_util.h b/include/international_string_util.h index ac1a470123..7afe14b08f 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -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); diff --git a/include/link_rfu.h b/include/link_rfu.h index aadaf70412..4ecdf25dd4 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -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); diff --git a/include/mail.h b/include/mail.h index 9047ad7ab4..6a24685755 100644 --- a/include/mail.h +++ b/include/mail.h @@ -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); diff --git a/include/move.h b/include/move.h index e46a1012b2..78fad5769f 100644 --- a/include/move.h +++ b/include/move.h @@ -164,7 +164,7 @@ struct MoveInfo }; } twoTurnAttack; struct { - u16 species; + enum Species species; u16 power:9; u16 numOfHits:7; } speciesPowerOverride; diff --git a/include/naming_screen.h b/include/naming_screen.h index d163117e0d..e0ab5a1698 100644 --- a/include/naming_screen.h +++ b/include/naming_screen.h @@ -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 diff --git a/include/ow_synchronize.h b/include/ow_synchronize.h index 83a7ed9c31..7eaf3e1bc6 100644 --- a/include/ow_synchronize.h +++ b/include/ow_synchronize.h @@ -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 diff --git a/include/pokeball.h b/include/pokeball.h index 1caf478afa..036cff9275 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -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); diff --git a/include/pokedex.h b/include/pokedex.h index 1eaa557289..788c811282 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -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); diff --git a/include/pokedex_area_screen.h b/include/pokedex_area_screen.h index ba577d1230..ed4e86bf29 100755 --- a/include/pokedex_area_screen.h +++ b/include/pokedex_area_screen.h @@ -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 diff --git a/include/pokedex_cry_screen.h b/include/pokedex_cry_screen.h index c44035605f..037e7f323b 100755 --- a/include/pokedex_cry_screen.h +++ b/include/pokedex_cry_screen.h @@ -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); diff --git a/include/pokemon.h b/include/pokemon.h index 4d479d2201..282796eec5 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -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 diff --git a/include/pokemon_animation.h b/include/pokemon_animation.h index ce53a1e6e8..41120ec8e1 100644 --- a/include/pokemon_animation.h +++ b/include/pokemon_animation.h @@ -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); diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index d8dae20534..f42276dbc7 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -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 diff --git a/include/pokemon_jump.h b/include/pokemon_jump.h index 3aaa4fafb3..2dfa1451b7 100644 --- a/include/pokemon_jump.h +++ b/include/pokemon_jump.h @@ -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); diff --git a/include/roamer.h b/include/roamer.h index eac732a74c..b3056ab677 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -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); diff --git a/include/script_menu.h b/include/script_menu.h index 7b92de04ea..d2f685d5ca 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -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); diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h index 45735ac2a3..bec3b87f21 100644 --- a/include/script_pokemon_util.h +++ b/include/script_pokemon_util.h @@ -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); diff --git a/include/sound.h b/include/sound.h index 92fd055649..b82992869c 100644 --- a/include/sound.h +++ b/include/sound.h @@ -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); diff --git a/include/test/battle.h b/include/test/battle.h index 4c482ceccb..b8bf8e4b8e 100644 --- a/include/test/battle.h +++ b/include/test/battle.h @@ -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); diff --git a/include/trade.h b/include/trade.h index 6b170d23f1..eeb28ec073 100644 --- a/include/trade.h +++ b/include/trade.h @@ -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); diff --git a/include/trainer_card.h b/include/trainer_card.h index e506b5f738..3f672f45db 100644 --- a/include/trainer_card.h +++ b/include/trainer_card.h @@ -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; diff --git a/include/trainer_pokemon_sprites.h b/include/trainer_pokemon_sprites.h index 6096191713..f56844432a 100644 --- a/include/trainer_pokemon_sprites.h +++ b/include/trainer_pokemon_sprites.h @@ -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 diff --git a/include/tv.h b/include/tv.h index 24b3b98208..31114db237 100644 --- a/include/tv.h +++ b/include/tv.h @@ -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); diff --git a/include/union_room.h b/include/union_room.h index 5616c106d3..285f613203 100644 --- a/include/union_room.h +++ b/include/union_room.h @@ -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); diff --git a/include/wild_encounter.h b/include/wild_encounter.h index 1c1f55f3b3..db402ee553 100644 --- a/include/wild_encounter.h +++ b/include/wild_encounter.h @@ -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); diff --git a/src/apprentice.c b/src/apprentice.c index 817fda7838..eee40805cb 100644 --- a/src/apprentice.c +++ b/src/apprentice.c @@ -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); diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index bc97b71453..e8d45f37d3 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -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; } diff --git a/src/battle_ai_switch.c b/src/battle_ai_switch.c index d971e6a07c..9282516487 100644 --- a/src/battle_ai_switch.c +++ b/src/battle_ai_switch.c @@ -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; diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 2ad4c9da84..657355a8b7 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -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) diff --git a/src/battle_anim.c b/src/battle_anim.c index f6def03d50..365367b0f2 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -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; diff --git a/src/battle_anim_dark.c b/src/battle_anim_dark.c index f68e8d2347..2af74516bd 100644 --- a/src/battle_anim_dark.c +++ b/src/battle_anim_dark.c @@ -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; diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index 0be9dee447..45dafc8a62 100644 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -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; diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index 5dbf168a5c..c7ff7145ae 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -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]; diff --git a/src/battle_anim_sound_tasks.c b/src/battle_anim_sound_tasks.c index 1232bb3ac5..cc5c80abbe 100644 --- a/src/battle_anim_sound_tasks.c +++ b/src/battle_anim_sound_tasks.c @@ -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 diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c index 20d3558e46..6456dcb323 100644 --- a/src/battle_anim_utility_funcs.c +++ b/src/battle_anim_utility_funcs.c @@ -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; diff --git a/src/battle_controller_oak_old_man.c b/src/battle_controller_oak_old_man.c index 7b92b5744c..37b70a4d2b 100644 --- a/src/battle_controller_oak_old_man.c +++ b/src/battle_controller_oak_old_man.c @@ -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); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 5152464809..a70f1b8dd0 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -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]]; diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index 4756097acb..e15ed35188 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -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); diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 36f51935f8..427da044ae 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -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); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index b523552d9f..10d030eaa4 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -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 diff --git a/src/battle_debug.c b/src/battle_debug.c index c6fe1fdacd..e732d28b9c 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -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); diff --git a/src/battle_dome.c b/src/battle_dome.c index b18a32a403..e3e393ed79 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -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++) diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index 70398aeb41..6981e14191 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -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) diff --git a/src/battle_factory.c b/src/battle_factory.c index e457dcf82d..b7f5eb3cc9 100644 --- a/src/battle_factory.c +++ b/src/battle_factory.c @@ -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; diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index e37eb10e89..0eecce4f24 100644 --- a/src/battle_factory_screen.c +++ b/src/battle_factory_screen.c @@ -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]; diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 07196383e2..486dde21bc 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -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); diff --git a/src/battle_interface.c b/src/battle_interface.c index 718ed1a1dc..3ad63f0f37 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -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; diff --git a/src/battle_main.c b/src/battle_main.c index ae51e874b2..6f81798b76 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -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: diff --git a/src/battle_move_resolution.c b/src/battle_move_resolution.c index 7f196be761..5a1e7fbfcb 100644 --- a/src/battle_move_resolution.c +++ b/src/battle_move_resolution.c @@ -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) diff --git a/src/battle_pike.c b/src/battle_pike.c index cf48dea189..d131e5696e 100644 --- a/src/battle_pike.c +++ b/src/battle_pike.c @@ -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; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index a652d77a10..6dfdb8709f 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -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; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index aacb80791b..09f517bc85 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -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 diff --git a/src/battle_setup.c b/src/battle_setup.c index 79c3935532..92b5c74941 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -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)); }; - diff --git a/src/battle_tent.c b/src/battle_tent.c index a5547da46b..dd66126a82 100644 --- a/src/battle_tent.c +++ b/src/battle_tent.c @@ -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; diff --git a/src/battle_tower.c b/src/battle_tower.c index 8fcfe18119..3412be17fb 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -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]); diff --git a/src/battle_tv.c b/src/battle_tv.c index a4b76ee3b6..a5e8f30427 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -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) diff --git a/src/battle_util.c b/src/battle_util.c index 269f1fa070..2f9153a94a 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -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; diff --git a/src/battle_z_move.c b/src/battle_z_move.c index 113c37f8e4..e8bd0091da 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -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; diff --git a/src/berry.c b/src/berry.c index 80fa2c431b..8677bc6d4b 100644 --- a/src/berry.c +++ b/src/berry.c @@ -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); diff --git a/src/contest.c b/src/contest.c index 41955bf22e..22960ef43b 100644 --- a/src/contest.c +++ b/src/contest.c @@ -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); diff --git a/src/contest_painting.c b/src/contest_painting.c index 9c541cb321..6b68803490 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -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); diff --git a/src/contest_util.c b/src/contest_util.c index 9131b7ea49..e8399c958d 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -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; diff --git a/src/credits_frlg.c b/src/credits_frlg.c index b704283c41..fda0378ec0 100644 --- a/src/credits_frlg.c +++ b/src/credits_frlg.c @@ -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) { diff --git a/src/data/lilycove_lady.h b/src/data/lilycove_lady.h index f8c2498963..42596cba15 100644 --- a/src/data/lilycove_lady.h +++ b/src/data/lilycove_lady.h @@ -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; diff --git a/src/daycare.c b/src/daycare.c index 620fbcccd1..b30f18e682 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -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]; diff --git a/src/debug.c b/src/debug.c index 6ac93e3fa4..cd11ca357c 100644 --- a/src/debug.c +++ b/src/debug.c @@ -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); diff --git a/src/decompress.c b/src/decompress.c index efbabb4622..6572525706 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -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) diff --git a/src/dexnav.c b/src/dexnav.c index fdec156c8b..81765d0a07 100644 --- a/src/dexnav.c +++ b/src/dexnav.c @@ -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(); diff --git a/src/easy_chat.c b/src/easy_chat.c index 8f9bfce611..855cb6913c 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -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++) diff --git a/src/egg_hatch.c b/src/egg_hatch.c index b2cff9d888..6d6ef8b47c 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -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; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index 7f78782ca5..559510cfab 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -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) diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index 4f211a3350..4ab76ede6d 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -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; diff --git a/src/evolution_scene.c b/src/evolution_scene.c index ed6ff3fae8..21c47fc278 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -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); } diff --git a/src/field_effect.c b/src/field_effect.c index 75d3e689be..b67652f458 100644 --- a/src/field_effect.c +++ b/src/field_effect.c @@ -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; diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index 492a5fc7b7..0ecaaa0a72 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -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; diff --git a/src/field_poison.c b/src/field_poison.c index 31b951b50e..bb57b61490 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -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; diff --git a/src/field_specials.c b/src/field_specials.c index 10e202271d..b0bbea1310 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -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; diff --git a/src/field_weather.c b/src/field_weather.c index 069e50debc..2b2c172047 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -247,8 +247,8 @@ static void UpdateWeatherForms(void) for (i = 0; i < PARTY_SIZE; i++) { struct Pokemon *mon = &gPlayerParty[i]; - u16 species = GetMonData(mon, MON_DATA_SPECIES); - u16 targetSpecies = GetOverworldWeatherSpecies(species); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); + enum Species targetSpecies = GetOverworldWeatherSpecies(species); if (species != targetSpecies) { SetMonData(mon, MON_DATA_SPECIES, &targetSpecies); diff --git a/src/frontier_util.c b/src/frontier_util.c index 181c91b3e8..07dbdad4e2 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -46,8 +46,8 @@ struct FrontierBrainMon { - u16 species; - u16 heldItem; + enum Species species; + enum Item heldItem; u8 fixedIV; u8 nature; u8 evs[NUM_STATS]; @@ -2028,7 +2028,7 @@ static void CheckBattleTypeFlag(void) gSpecialVar_Result = FALSE; } -static void AppendCaughtBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught) +static void AppendCaughtBannedMonSpeciesName(enum Species species, u8 count, s32 numBannedMonsCaught) { if (count == 1) ; @@ -2043,7 +2043,7 @@ static void AppendCaughtBannedMonSpeciesName(u16 species, u8 count, s32 numBanne StringAppend(gStringVar1, GetSpeciesName(species)); } -static void AppendIfValid(u16 species, u16 heldItem, u16 hp, enum FrontierLevelMode lvlMode, u8 monLevel, u16 *speciesArray, u16 *itemsArray, u8 *count) +static void AppendIfValid(enum Species species, u16 heldItem, u16 hp, enum FrontierLevelMode lvlMode, u8 monLevel, u16 *speciesArray, u16 *itemsArray, u8 *count) { s32 i = 0; @@ -2112,7 +2112,7 @@ static void CheckPartyIneligibility(void) numEligibleMons = 0; do { - u16 species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES_OR_EGG); enum Item heldItem = GetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM); u8 level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL); u16 hp = GetMonData(&gPlayerParty[monId], MON_DATA_HP); @@ -2136,7 +2136,7 @@ static void CheckPartyIneligibility(void) if (numEligibleMons < toChoose) { u32 i, j; - u32 baseSpecies = 0; + enum Species baseSpecies = 0; u32 totalCaughtBanned = 0; u32 totalPartyBanned = 0; u32 partyBanned[PARTY_SIZE] = {0}; @@ -2155,7 +2155,7 @@ static void CheckPartyIneligibility(void) for (i = 0; i < PARTY_SIZE; i++) { - u16 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) continue; if (gSpeciesInfo[GET_BASE_SPECIES_ID(species)].isFrontierBanned) @@ -2648,7 +2648,7 @@ void CreateFrontierBrainPokemon(void) } } -u16 GetFrontierBrainMonSpecies(u8 monId) +enum Species GetFrontierBrainMonSpecies(u8 monId) { s32 facility = VarGet(VAR_FRONTIER_FACILITY); s32 symbol = GetFronterBrainSymbol(); @@ -3355,7 +3355,7 @@ static u16 *MakeCaughtBannesSpeciesList(u32 totalBannedSpecies) if (!IsSpeciesEnabled(i)) continue; - u32 baseSpecies = GET_BASE_SPECIES_ID(i); + enum Species baseSpecies = GET_BASE_SPECIES_ID(i); if (baseSpecies == i && gSpeciesInfo[baseSpecies].isFrontierBanned) { if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(baseSpecies), FLAG_GET_CAUGHT)) diff --git a/src/international_string_util.c b/src/international_string_util.c index 9aac5c9d3f..46c3d2ead7 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -82,7 +82,7 @@ int Intl_GetListMenuWidth(const struct ListMenuTemplate *listMenu) return finalWidth; } -void CopyMonCategoryText(u16 species, u8 *dest) +void CopyMonCategoryText(enum Species species, u8 *dest) { u8 *str = StringCopy(dest, GetSpeciesCategory(species)); *str = CHAR_SPACE; diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index a75cce2f2a..facfdfabd7 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -2068,7 +2068,7 @@ void SetHostRfuWonderFlags(bool32 hasNews, bool32 hasCard) gHostRfuGameData.compatibility.hasCard = hasCard; } -void SetTradeBoardRegisteredMonInfo(u32 type, u32 species, u32 level) +void SetTradeBoardRegisteredMonInfo(u32 type, enum Species species, u32 level) { gHostRfuGameData.tradeType = type; gHostRfuGameData.tradeSpecies = species; diff --git a/src/mail.c b/src/mail.c index e43a9300d2..d7a6beab9d 100644 --- a/src/mail.c +++ b/src/mail.c @@ -447,7 +447,7 @@ static const struct MailLayout sMailLayouts_Tall[] = { void ReadMail(struct Mail *mail, MainCallback exitCallback, bool8 hasText) { u16 buffer[2]; - u16 species; + enum Species species; sMailRead = AllocZeroed(sizeof(*sMailRead)); sMailRead->language = GAME_LANGUAGE; diff --git a/src/mail_data.c b/src/mail_data.c index 53af7e4ee9..3a0647e03f 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -46,7 +46,7 @@ u8 GiveMailToMonByItemId(struct Pokemon *mon, enum Item itemId) { u8 heldItem[2]; u8 id, i; - u16 species; + enum Species species; u32 personality; heldItem[0] = itemId; @@ -80,11 +80,11 @@ u8 GiveMailToMonByItemId(struct Pokemon *mon, enum Item itemId) return MAIL_NONE; } -u16 SpeciesToMailSpecies(u16 species, u32 personality) +u16 SpeciesToMailSpecies(enum Species species, u32 personality) { if (species == SPECIES_UNOWN) { - u32 species = GetUnownLetterByPersonality(personality) + UNOWN_OFFSET; + enum Species species = GetUnownLetterByPersonality(personality) + UNOWN_OFFSET; return species; } diff --git a/src/match_call.c b/src/match_call.c index 714ef1f527..55e9f4a9ee 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -1777,7 +1777,7 @@ static u8 GetWaterEncounterSlot(void) static void PopulateSpeciesFromTrainerLocation(int matchCallId, u8 *destStr) { - u16 species[2]; + enum Species species[2]; int numSpecies; u8 slot; int i = 0; diff --git a/src/menu.c b/src/menu.c index c3fadaeca6..f48f6a815e 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1844,12 +1844,12 @@ static void UNUSED UnusedBlitBitmapRect(const struct Bitmap *src, struct Bitmap } } -static void UNUSED LoadMonIconPalAtOffset(u8 palOffset, u16 speciesId) +static void UNUSED LoadMonIconPalAtOffset(u8 palOffset, enum Species speciesId) { LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, PLTT_SIZE_4BPP); } -static void UNUSED DrawMonIconAtPos(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y) +static void UNUSED DrawMonIconAtPos(u8 windowId, enum Species speciesId, u32 personality, u16 x, u16 y) { BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality), x, y, 32, 32); } diff --git a/src/menu_specialized.c b/src/menu_specialized.c index 4dd46f0804..bc53f93058 100644 --- a/src/menu_specialized.c +++ b/src/menu_specialized.c @@ -1076,8 +1076,8 @@ void GetConditionMenuMonGfx(void *tilesDst, void *palDst, u16 boxId, u16 monId, if (partyId != numMons) { - u16 species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); - bool8 isShiny = GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_SHINY, NULL); + enum Species species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); + bool32 isShiny = GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_SHINY, NULL); u32 personality = GetBoxOrPartyMonData(boxId, monId, MON_DATA_PERSONALITY, NULL); bool32 isEgg = GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL); diff --git a/src/move_relearner.c b/src/move_relearner.c index 86bfe537f9..29ab1ba9fc 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -1170,7 +1170,7 @@ static void SortMovesAlphabetically(u16 *moves, u32 numMoves) static u32 GetRelearnerLevelUpMoves(struct BoxPokemon *mon, u16 *moves) { u32 numMoves = 0; - u32 species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return 0; @@ -1212,7 +1212,7 @@ static u32 GetRelearnerEggMoves(struct BoxPokemon *mon, u16 *moves) if (!FlagGet(P_FLAG_EGG_MOVES) && !P_ENABLE_MOVE_RELEARNERS) return 0; - u32 species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return 0; @@ -1243,7 +1243,7 @@ static u32 GetRelearnerTMMoves(struct BoxPokemon *mon, u16 *moves) if (!P_TM_MOVES_RELEARNER && !P_ENABLE_MOVE_RELEARNERS) return 0; - u32 species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return 0; @@ -1279,7 +1279,7 @@ static u32 GetRelearnerTutorMoves(struct BoxPokemon *mon, u16 *moves) if (!FlagGet(P_FLAG_TUTOR_MOVES) && !P_ENABLE_MOVE_RELEARNERS) return 0; - u32 species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(mon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return 0; @@ -1329,7 +1329,7 @@ bool32 CanBoxMonRelearnMoves(struct BoxPokemon *boxMon, enum MoveRelearnerStates static bool32 HasRelearnerLevelUpMoves(struct BoxPokemon *boxMon) { - u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return FALSE; @@ -1361,7 +1361,7 @@ static bool32 HasRelearnerEggMoves(struct BoxPokemon *boxMon) if (!FlagGet(P_FLAG_EGG_MOVES) && !P_ENABLE_MOVE_RELEARNERS) return FALSE; - u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return FALSE; @@ -1388,7 +1388,7 @@ static bool32 HasRelearnerTMMoves(struct BoxPokemon *boxMon) if (!P_TM_MOVES_RELEARNER && !P_ENABLE_MOVE_RELEARNERS) return FALSE; - u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return FALSE; @@ -1419,7 +1419,7 @@ static bool32 HasRelearnerTutorMoves(struct BoxPokemon *boxMon) if (!FlagGet(P_FLAG_TUTOR_MOVES) && !P_ENABLE_MOVE_RELEARNERS) return FALSE; - u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG); if (species == SPECIES_EGG) return FALSE; diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 067414a5f8..38e132101e 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -314,8 +314,8 @@ bool8 MEScrCmd_givepokemon(struct ScriptContext *ctx) { struct Mail mail; struct Pokemon pokemon; - u16 species; - u16 heldItem; + enum Species species; + enum Item heldItem; u32 data = ScriptReadWord(ctx) - ctx->mOffset + ctx->mScriptBase; void *pokemonPtr = (void *)data; void *mailPtr = (void *)(data + sizeof(struct Pokemon)); diff --git a/src/naming_screen.c b/src/naming_screen.c index 611c852322..4eb0dc4988 100644 --- a/src/naming_screen.c +++ b/src/naming_screen.c @@ -177,7 +177,7 @@ struct NamingScreenData const struct NamingScreenTemplate *template; u8 templateNum; u8 *destBuffer; - u16 monSpecies; + enum Species monSpecies; u16 monGender; u32 monPersonality; MainCallback returnCallback; @@ -400,7 +400,7 @@ static bool8 IsWideLetter(u8); static const u8 sText_MoveOkBack[] = _("{DPAD_NONE}MOVE {A_BUTTON}OK {B_BUTTON}BACK"); -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) { sNamingScreen = Alloc(sizeof(struct NamingScreenData)); if (!sNamingScreen) @@ -410,7 +410,7 @@ void DoNamingScreen(u8 templateNum, u8 *destBuffer, u16 monSpecies, u16 monGende else { sNamingScreen->templateNum = templateNum; - sNamingScreen->monSpecies = monSpecies; + sNamingScreen->monSpecies = monSpeciesOrPlayerGender; sNamingScreen->monGender = monGender; sNamingScreen->monPersonality = monPersonality; sNamingScreen->destBuffer = destBuffer; @@ -1404,7 +1404,7 @@ static void NamingScreen_CreatePlayerIcon(void) u16 rivalGfxId; u8 spriteId; - rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, sNamingScreen->monSpecies); + rivalGfxId = GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, (enum Gender)sNamingScreen->monSpecies); spriteId = CreateObjectGraphicsSprite(rivalGfxId, SpriteCallbackDummy, 56, 37, 0); gSprites[spriteId].oam.priority = 3; StartSpriteAnim(&gSprites[spriteId], ANIM_STD_GO_SOUTH); diff --git a/src/overworld.c b/src/overworld.c index 795dfed4a7..1d8a3fd4b7 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -222,7 +222,7 @@ EWRAM_DATA static struct WarpData sFixedDiveWarp = {0}; EWRAM_DATA static struct WarpData sFixedHoleWarp = {0}; EWRAM_DATA static mapsec_u16_t sLastMapSectionId = 0; EWRAM_DATA static struct InitialPlayerAvatarState sInitialPlayerAvatarState = {0}; -EWRAM_DATA static u16 sAmbientCrySpecies = 0; +EWRAM_DATA static enum Species sAmbientCrySpecies = SPECIES_NONE; EWRAM_DATA static bool8 sIsAmbientCryWaterMon = FALSE; EWRAM_DATA static u8 sHoursOverride = 0; // used to override apparent time of day hours EWRAM_DATA struct LinkPlayerObjectEvent gLinkPlayerObjectEvents[4] = {0}; diff --git a/src/ow_abilities.c b/src/ow_abilities.c index e06c2e4958..285b5e6b3b 100644 --- a/src/ow_abilities.c +++ b/src/ow_abilities.c @@ -4,13 +4,13 @@ #include "random.h" #include "constants/pokemon.h" -static UNUSED bool32 HasHalfChance(u32 species); -static UNUSED bool32 HasTwoThirdsChance(u32 species); -static UNUSED bool32 IsFalse(u32 species); -static UNUSED bool32 IsTrue(u32 species); -static UNUSED bool32 IsTrueIfUndiscoveredEggGroup(u32 species); +static UNUSED bool32 HasHalfChance(enum Species species); +static UNUSED bool32 HasTwoThirdsChance(enum Species species); +static UNUSED bool32 IsFalse(enum Species species); +static UNUSED bool32 IsTrue(enum Species species); +static UNUSED bool32 IsTrueIfUndiscoveredEggGroup(enum Species species); -const static bool32 (*sSynchronizeModes[]) (u32) = +const static bool32 (*sSynchronizeModes[])(enum Species) = { #if OW_SYNCHRONIZE_NATURE == GEN_3 [WILDMON_ORIGIN] = HasHalfChance, @@ -45,7 +45,7 @@ const static bool32 (*sSynchronizeModes[]) (u32) = #endif }; -const static bool32 (*sCuteCharmModes[]) (u32) = +const static bool32 (*sCuteCharmModes[])(enum Species) = { [WILDMON_ORIGIN] = HasTwoThirdsChance, [STATIC_WILDMON_ORIGIN] = HasTwoThirdsChance, @@ -53,27 +53,27 @@ const static bool32 (*sCuteCharmModes[]) (u32) = [GIFTMON_ORIGIN] = IsFalse, }; -static UNUSED bool32 HasHalfChance(u32 species) +static UNUSED bool32 HasHalfChance(enum Species species) { return Random() % 2; } -static UNUSED bool32 HasTwoThirdsChance(u32 species) +static UNUSED bool32 HasTwoThirdsChance(enum Species species) { return Random() % 3; } -static UNUSED bool32 IsFalse(u32 species) +static UNUSED bool32 IsFalse(enum Species species) { return FALSE; } -static UNUSED bool32 IsTrue(u32 species) +static UNUSED bool32 IsTrue(enum Species species) { return TRUE; } -static UNUSED bool32 IsTrueIfUndiscoveredEggGroup(u32 species) +static UNUSED bool32 IsTrueIfUndiscoveredEggGroup(enum Species species) { return (gSpeciesInfo[species].eggGroups[0] == EGG_GROUP_NO_EGGS_DISCOVERED); } @@ -90,7 +90,7 @@ static bool32 IsCuteCharmActive(void) && GetMonAbility(&gPlayerParty[0]) == ABILITY_CUTE_CHARM)); } -u32 GetSynchronizedNature(enum GeneratedMonOrigin origin, u32 species) +u32 GetSynchronizedNature(enum GeneratedMonOrigin origin, enum Species species) { if (!IsSynchronizeActive()) return NATURE_RANDOM; @@ -99,7 +99,7 @@ u32 GetSynchronizedNature(enum GeneratedMonOrigin origin, u32 species) return GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY) % NUM_NATURES; } -u32 GetSynchronizedGender(enum GeneratedMonOrigin origin, u32 species) +u32 GetSynchronizedGender(enum GeneratedMonOrigin origin, enum Species species) { if (!IsCuteCharmActive()) return MON_GENDER_RANDOM; diff --git a/src/party_menu.c b/src/party_menu.c index 57aac2c984..46c46553af 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -276,14 +276,14 @@ static enum CanMoveBeLearned CanTeachMove(struct Pokemon *, enum Move); static void DisplayPartyPokemonBarDetail(u8, const u8 *, u8, const u8 *); static void DisplayPartyPokemonBarDetailToFit(u8 windowId, const u8 *str, u8 color, const u8 *align, u32 width); static void DisplayPartyPokemonLevel(u8, struct PartyMenuBox *); -static void DisplayPartyPokemonGender(u8, u16, u8 *, struct PartyMenuBox *); +static void DisplayPartyPokemonGender(u8, enum Species, u8 *, struct PartyMenuBox *); static void DisplayPartyPokemonHP(u16 hp, u16 maxHp, struct PartyMenuBox *menuBox); static void DisplayPartyPokemonMaxHP(u16, struct PartyMenuBox *); static void DisplayPartyPokemonHPBar(u16, u16, struct PartyMenuBox *); -static void CreatePartyMonIconSpriteParameterized(u16 species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority); -static void CreatePartyMonHeldItemSpriteParameterized(u16, enum Item, struct PartyMenuBox *); -static void CreatePartyMonPokeballSpriteParameterized(u16, struct PartyMenuBox *); -static void CreatePartyMonStatusSpriteParameterized(u16, u8, struct PartyMenuBox *); +static void CreatePartyMonIconSpriteParameterized(enum Species species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority); +static void CreatePartyMonHeldItemSpriteParameterized(enum Species, enum Item, struct PartyMenuBox *); +static void CreatePartyMonPokeballSpriteParameterized(enum Species, struct PartyMenuBox *); +static void CreatePartyMonStatusSpriteParameterized(enum Species, u8, struct PartyMenuBox *); // These next 4 functions are essentially redundant with the above 4 // The only difference is that rather than receive the data directly they retrieve it from the mon struct static void CreatePartyMonHeldItemSprite(struct Pokemon *, struct PartyMenuBox *); @@ -377,7 +377,7 @@ static void DisplayCantUseSurfMessage(void); static void Task_FieldMoveExitAreaYesNo(u8); static void Task_HandleFieldMoveExitAreaYesNoInput(u8); static void Task_FieldMoveWaitForFade(u8); -static u16 GetFieldMoveMonSpecies(void); +static enum Species GetFieldMoveMonSpecies(void); static void UpdatePartyMonHPBar(u8, struct Pokemon *); static void SpriteCB_UpdatePartyMonIcon(struct Sprite *); static void SpriteCB_BouncePartyMonIcon(struct Sprite *); @@ -2538,7 +2538,7 @@ static void DisplayPartyPokemonGenderNidoranCheck(struct Pokemon *mon, struct Pa DisplayPartyPokemonGender(GetMonGender(mon), GetMonData(mon, MON_DATA_SPECIES), nickname, menuBox); } -static void DisplayPartyPokemonGender(u8 gender, u16 species, u8 *nickname, struct PartyMenuBox *menuBox) +static void DisplayPartyPokemonGender(u8 gender, enum Species species, u8 *nickname, struct PartyMenuBox *menuBox) { u8 palOffset = BG_PLTT_ID(GetWindowAttribute(menuBox->windowId, WINDOW_PALETTE_NUM)); @@ -3886,8 +3886,8 @@ static void CursorCb_Store(u8 taskId) // Register mon for the Trading Board in Union Room static void CursorCb_Register(u8 taskId) { - u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); - u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); + enum Species species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); u8 isModernFatefulEncounter = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MODERN_FATEFUL_ENCOUNTER); switch (CanRegisterMonForTradingBoard(*(struct RfuGameCompatibilityData *)GetHostRfuGameData(), species2, species, isModernFatefulEncounter)) @@ -3916,8 +3916,8 @@ static void CursorCb_Register(u8 taskId) static void CursorCb_Trade1(u8 taskId) { - u16 species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); - u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); + enum Species species2 = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); u8 isModernFatefulEncounter = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_MODERN_FATEFUL_ENCOUNTER); u32 stringId = GetUnionRoomTradeMessageId(*(struct RfuGameCompatibilityData *)GetHostRfuGameData(), gRfuPartnerCompatibilityData, species2, gUnionRoomOfferedSpecies, gUnionRoomRequestedMonType, species, isModernFatefulEncounter); @@ -4173,7 +4173,7 @@ static void Task_FieldMoveWaitForFade(u8 taskId) } } -static u16 GetFieldMoveMonSpecies(void) +static enum Species GetFieldMoveMonSpecies(void) { return GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); } @@ -4297,13 +4297,13 @@ bool32 SetUpFieldMove_Dive(void) static void CreatePartyMonIconSprite(struct Pokemon *mon, struct PartyMenuBox *menuBox, u32 slot) { - u32 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); bool32 isEgg = GetMonData(mon, MON_DATA_IS_EGG); CreatePartyMonIconSpriteParameterized(species, GetMonData(mon, MON_DATA_PERSONALITY), isEgg, menuBox, 1); UpdatePartyMonHPBar(menuBox->monSpriteId, mon); } -static void CreatePartyMonIconSpriteParameterized(u16 species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority) +static void CreatePartyMonIconSpriteParameterized(enum Species species, u32 pid, bool32 isEgg, struct PartyMenuBox *menuBox, u8 priority) { if (species != SPECIES_NONE) { @@ -4391,7 +4391,7 @@ static void CreatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo } } -static void CreatePartyMonHeldItemSpriteParameterized(u16 species, enum Item item, struct PartyMenuBox *menuBox) +static void CreatePartyMonHeldItemSpriteParameterized(enum Species species, enum Item item, struct PartyMenuBox *menuBox) { if (species != SPECIES_NONE) { @@ -4489,7 +4489,7 @@ static void CreatePartyMonPokeballSprite(struct Pokemon *mon, struct PartyMenuBo menuBox->pokeballSpriteId = CreateSprite(&sSpriteTemplate_MenuPokeball, menuBox->spriteCoords[6], menuBox->spriteCoords[7], 8); } -static void CreatePartyMonPokeballSpriteParameterized(u16 species, struct PartyMenuBox *menuBox) +static void CreatePartyMonPokeballSpriteParameterized(enum Species species, struct PartyMenuBox *menuBox) { if (species != SPECIES_NONE) { @@ -4554,7 +4554,7 @@ static void CreatePartyMonStatusSprite(struct Pokemon *mon, struct PartyMenuBox } } -static void CreatePartyMonStatusSpriteParameterized(u16 species, u8 status, struct PartyMenuBox *menuBox) +static void CreatePartyMonStatusSpriteParameterized(enum Species species, u8 status, struct PartyMenuBox *menuBox) { if (species != SPECIES_NONE) { @@ -5742,7 +5742,7 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) PlaySE(SE_SELECT); if (cannotUseEffect) { - u32 targetSpecies = SPECIES_NONE; + enum Species targetSpecies = SPECIES_NONE; bool32 canStopEvo = TRUE; // Resets values to 0 so other means of teaching moves doesn't overwrite levels @@ -5934,7 +5934,7 @@ static void CB2_ReturnToPartyMenuUsingRareCandy(void) static void PartyMenuTryEvolution(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u32 targetSpecies = SPECIES_NONE; + enum Species targetSpecies = SPECIES_NONE; bool32 canStopEvo = TRUE; // Resets values to 0 so other means of teaching moves doesn't overwrite levels @@ -6188,7 +6188,7 @@ void ItemUseCB_EvolutionStone(u8 taskId, TaskFunc task) static void Task_TryItemUseFusionChange(u8 taskId); static void SpriteCB_FormChangeIconMosaic(struct Sprite *sprite); -u8 IsFusionMon(u16 species) +u8 IsFusionMon(enum Species species) { u16 i; const struct Fusion *itemFusion = gFusionTablePointers[species]; @@ -6267,7 +6267,7 @@ bool32 DoesMonHaveAnyMoves(struct Pokemon *mon) bool32 TryItemUseFusionChange(u8 taskId, TaskFunc task) { - u16 targetSpecies = gTasks[taskId].fusionResult; + enum Species targetSpecies = gTasks[taskId].fusionResult; s8 *slotPtr = GetCurrentPartySlotPtr(); *slotPtr = gTasks[taskId].firstFusionSlot; if (gTasks[taskId].fusionType == FUSE_MON) @@ -6316,7 +6316,7 @@ static void RestoreFusionMon(struct Pokemon *mon) } } -static void DeleteInvalidFusionMoves(struct Pokemon *mon, u32 species) +static void DeleteInvalidFusionMoves(struct Pokemon *mon, enum Species species) { for (u32 i = 0; i < MAX_MON_MOVES; i++) { @@ -6395,7 +6395,7 @@ static void Task_TryItemUseFusionChange(u8 taskId) struct Sprite *icon = &gSprites[sPartyMenuBoxes[gTasks[taskId].firstFusionSlot].monSpriteId]; struct Pokemon *mon2; struct Sprite *icon2 = &gSprites[sPartyMenuBoxes[gTasks[taskId].secondFusionSlot].monSpriteId]; - u16 targetSpecies; + enum Species targetSpecies; switch (gTasks[taskId].tState) { @@ -6531,7 +6531,7 @@ void ItemUseCB_Fusion(u8 taskId, TaskFunc taskFunc) { u16 i; struct Task *task = &gTasks[taskId]; - u16 species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); + enum Species species = GetMonData(&gPlayerParty[gPartyMenu.slotId], MON_DATA_SPECIES); const struct Fusion *itemFusion = gFusionTablePointers[species]; PlaySE(SE_SELECT); @@ -6866,7 +6866,7 @@ void TryItemHoldFormChange(struct Pokemon *mon, s8 slotId) { if (TryFormChange(mon, FORM_CHANGE_ITEM_HOLD)) { - u32 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); PlayCry_NormalNoDucking(species, 0, CRY_VOLUME_RS, CRY_VOLUME_RS); FreeAndDestroyMonIconSprite(&gSprites[sPartyMenuBoxes[slotId].monSpriteId]); CreatePartyMonIconSpriteParameterized(species, GetMonData(mon, MON_DATA_PERSONALITY), FALSE, &sPartyMenuBoxes[slotId], 1); @@ -7255,7 +7255,7 @@ static u8 CheckBattleEntriesAndGetMessage(void) maxBattlers = GetMaxBattleEntries(); for (i = 0; i < maxBattlers - 1; i++) { - u16 species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES); + enum Species species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES); enum Item item = GetMonData(&party[order[i] - 1], MON_DATA_HELD_ITEM); for (j = i + 1; j < maxBattlers; j++) { diff --git a/src/pokeball.c b/src/pokeball.c index de3bb97fe0..c8d9f5e4a7 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -732,7 +732,7 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId) { u8 wantedCry = gTasks[taskId].tCryTaskWantedCry; s8 pan = gTasks[taskId].tCryTaskPan; - u16 species = gTasks[taskId].tCryTaskSpecies; + enum Species species = gTasks[taskId].tCryTaskSpecies; enum BattlerId battler = gTasks[taskId].tCryTaskBattler; u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId; struct Pokemon *mon = (void *)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 16) | (u16)(gTasks[taskId].tCryTaskMonPtr2)); @@ -1117,7 +1117,7 @@ static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 spritePalNum, u #define sTrigIdx data[7] // Poké Ball in Birch intro, and when receiving via trade -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 spriteId; diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c index 9426b59f9b..bd77a0ee3e 100644 --- a/src/pokeblock_feed.c +++ b/src/pokeblock_feed.c @@ -55,7 +55,7 @@ struct PokeblockFeed u8 animId; u8 unused2; bool8 noMonFlip; - u16 species; + enum Species species; u16 monAnimLength; u16 timer; u8 nature; @@ -649,7 +649,7 @@ static void HandleInitBackgrounds(void) static bool8 LoadMonAndSceneGfx(struct Pokemon *mon) { - u16 species; + enum Species species; u32 personality; bool32 isShiny; @@ -837,7 +837,7 @@ static void Task_FadeOutPokeblockFeed(u8 taskId) static u8 CreateMonSprite(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); u8 spriteId = CreateSprite(&gMultiuseSpriteTemplate, MON_X, MON_Y, 2); sPokeblockFeed->species = species; diff --git a/src/pokedex.c b/src/pokedex.c index 7ed22570ef..5b71b292e7 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -283,9 +283,9 @@ static void PrintUnknownMonMeasurements(void); static u8* GetUnknownMonHeightString(void); static u8* GetUnknownMonWeightString(void); static u8* ReplaceDecimalSeparator(const u8* originalString); -static void PrintOwnedMonMeasurements(u16 species); -static void PrintOwnedMonHeight(u16 species); -static void PrintOwnedMonWeight(u16 species); +static void PrintOwnedMonMeasurements(enum Species species); +static void PrintOwnedMonHeight(enum Species species); +static void PrintOwnedMonWeight(enum Species species); static u8* ConvertMonHeightToImperialString(u32 height); static u8* ConvertMonHeightToMetricString(u32 height); static u8* ConvertMonWeightToImperialString(u32 weight); @@ -2752,12 +2752,12 @@ static u8 ClearMonSprites(void) return FALSE; } -static u16 GetPokemonSpriteToDisplay(u16 species) +static u16 GetPokemonSpriteToDisplay(u16 index) { - if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF) + if (index >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[index].dexNum == 0xFFFF) return 0xFFFF; - else if (sPokedexView->pokedexList[species].seen) - return sPokedexView->pokedexList[species].dexNum; + else if (sPokedexView->pokedexList[index].seen) + return sPokedexView->pokedexList[index].dexNum; else return 0; } @@ -4007,7 +4007,7 @@ static void HighlightSubmenuScreenSelectBarItem(u8 a, u16 b) #define tPersonalityLo 14 #define tPersonalityHi 15 -u8 DisplayCaughtMonDexPage(u16 species, bool32 isShiny, u32 personality) +u8 DisplayCaughtMonDexPage(enum Species species, bool32 isShiny, u32 personality) { u8 taskId = 0; if (POKEDEX_PLUS_HGSS) @@ -4030,7 +4030,7 @@ static void LoadDexMonPalette(u32 taskId, bool32 isShiny) LoadPalette(paletteData, OBJ_PLTT_ID(paletteNum), PLTT_SIZE_4BPP); } -u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y) +u32 Pokedex_CreateCaughtMonSprite(enum Species species, s32 x, s32 y) { u32 spriteId; @@ -4044,7 +4044,7 @@ u32 Pokedex_CreateCaughtMonSprite(u32 species, s32 x, s32 y) static void Task_DisplayCaughtMonDexPage(u8 taskId) { u8 spriteId; - u16 species = gTasks[taskId].tSpecies; + enum Species species = gTasks[taskId].tSpecies; enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(species); switch (gTasks[taskId].tState) @@ -4185,7 +4185,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) { u8 str[0x10]; u8 str2[0x30]; - u16 species; + enum Species species; const u8 *name; const u8 *category; const u8 *description; @@ -4225,7 +4225,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) PrintInfoScreenText(description, GetStringCenterAlignXOffset(FONT_NORMAL, description, DISPLAY_WIDTH), 95); } -void PrintMonMeasurements(u16 species, u32 owned) +void PrintMonMeasurements(enum Species species, u32 owned) { u32 x = GetMeasurementTextPositions(DEX_HEADER_X); u32 yTop = GetMeasurementTextPositions(DEX_Y_TOP); @@ -4312,13 +4312,13 @@ static u8* ReplaceDecimalSeparator(const u8* originalString) return modifiedString; } -static void PrintOwnedMonMeasurements(u16 species) +static void PrintOwnedMonMeasurements(enum Species species) { PrintOwnedMonHeight(species); PrintOwnedMonWeight(species); } -static void PrintOwnedMonHeight(u16 species) +static void PrintOwnedMonHeight(enum Species species) { u32 height = GetSpeciesHeight(species); u8* heightString; @@ -4340,7 +4340,7 @@ u8* ConvertMonHeightToString(u32 height) return ConvertMonHeightToMetricString(height); } -static void PrintOwnedMonWeight(u16 species) +static void PrintOwnedMonWeight(enum Species species) { u32 weight = GetSpeciesWeight(species); u8* weightString; @@ -4808,7 +4808,7 @@ static void UNUSED PrintDecimalNum(u8 windowId, u16 num, u8 left, u8 top) #define NUM_FOOTPRINT_TILES 4 -void DrawFootprint(u8 windowId, u16 species) +void DrawFootprint(u8 windowId, enum Species species) { u8 ALIGNED(4) footprint4bpp[TILE_SIZE_4BPP * NUM_FOOTPRINT_TILES]; const u8 *footprintGfx = NULL; @@ -4887,7 +4887,7 @@ static u16 GetNextPosition(u8 direction, u16 position, u16 min, u16 max) // Unown and Spinda use the personality of the first seen individual of that species // All others use personality 0 -static u32 GetPokedexMonPersonality(u16 species) +static u32 GetPokedexMonPersonality(enum Species species) { if (species == SPECIES_UNOWN || species == SPECIES_SPINDA) { @@ -4904,8 +4904,8 @@ static u32 GetPokedexMonPersonality(u16 species) u16 CreateMonSpriteFromNationalDexNumber(enum NationalDexOrder nationalNum, s16 x, s16 y, u16 paletteSlot) { - nationalNum = NationalPokedexNumToSpecies(nationalNum); - return CreateMonPicSprite(nationalNum, FALSE, GetPokedexMonPersonality(nationalNum), TRUE, x, y, paletteSlot, TAG_NONE); + enum Species species = NationalPokedexNumToSpecies(nationalNum); + return CreateMonPicSprite(species, FALSE, GetPokedexMonPersonality(species), TRUE, x, y, paletteSlot, TAG_NONE); } static u16 GetPokemonScaleFromNationalDexNumber(u16 nationalNum) @@ -4939,7 +4939,7 @@ static u16 CreateSizeScreenTrainerPic(u16 species, s16 x, s16 y, s8 paletteSlot) static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, enum BodyColor bodyColor, enum Type type1, enum Type type2) { - u16 species; + enum Species species; u16 i; u16 resultsCount; enum Type types[2]; diff --git a/src/pokedex_area_screen.c b/src/pokedex_area_screen.c index 7698d99ff3..509aec05ba 100644 --- a/src/pokedex_area_screen.c +++ b/src/pokedex_area_screen.c @@ -88,7 +88,7 @@ struct /*0x004*/ MainCallback prev; // unused /*0x008*/ MainCallback next; // unused /*0x00C*/ u16 state; // unused - /*0x00E*/ u16 species; + /*0x00E*/ enum Species species; /*0x010*/ struct OverworldArea overworldAreasWithMons[MAX_AREA_HIGHLIGHTS]; /*0x110*/ u16 numOverworldAreas; /*0x112*/ u16 numSpecialAreas; @@ -116,13 +116,13 @@ struct EWRAM_DATA u8 gAreaTimeOfDay = 0; -static void FindMapsWithMon(u16); +static void FindMapsWithMon(enum Species); static void BuildAreaGlowTilemap(void); static void SetAreaHasMon(u16, u16); static void SetSpecialMapHasMon(u16, u16); static mapsec_u16_t GetRegionMapSectionId(u8, u8); -static bool8 MapHasSpecies(const struct WildEncounterTypes *, u16); -static bool8 MonListHasSpecies(const struct WildPokemonInfo *, u16, u16); +static bool8 MapHasSpecies(const struct WildEncounterTypes *, enum Species); +static bool8 MonListHasSpecies(const struct WildPokemonInfo *, enum Species, u16); static void DoAreaGlow(void); static void Task_ShowPokedexAreaScreen(u8 taskId); static void Task_UpdatePokedexAreaScreen(u8 taskId); @@ -293,7 +293,7 @@ static bool8 DrawAreaGlow(void) return TRUE; } -static void FindMapsWithMon(u16 species) +static void FindMapsWithMon(enum Species species) { enum RegionMapType currentRegionMapType; u16 i; @@ -437,7 +437,7 @@ static mapsec_u16_t GetRegionMapSectionId(u8 mapGroup, u8 mapNum) return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId; } -static bool8 MapHasSpecies(const struct WildEncounterTypes *info, u16 species) +static bool8 MapHasSpecies(const struct WildEncounterTypes *info, enum Species species) { u32 headerId = GetCurrentMapWildMonHeaderId(); u8 currentMapGroup = gWildMonHeaders[headerId].mapGroup; @@ -467,7 +467,7 @@ static bool8 MapHasSpecies(const struct WildEncounterTypes *info, u16 species) return FALSE; } -static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, u16 species, u16 size) +static bool8 MonListHasSpecies(const struct WildPokemonInfo *info, enum Species species, u16 size) { u16 i; if (info != NULL) @@ -719,7 +719,7 @@ bool32 ShouldShowAreaUnknownLabel(void) #define tState data[0] -void DisplayPokedexAreaScreen(u16 species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState) +void DisplayPokedexAreaScreen(enum Species species, u8 *screenSwitchState, enum TimeOfDay timeOfDay, enum PokedexAreaScreenState areaState) { u8 taskId; diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index 554652b902..6c88394a19 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -44,12 +44,12 @@ struct PokedexCryScreen u8 waveformPreviousY; u16 unk; // Never read u8 playStartPos; - u16 species; + enum Species species; u8 cryOverrideCountdown; u8 cryRepeatDelay; }; -static void PlayCryScreenCry(u16); +static void PlayCryScreenCry(enum Species); static void BufferCryWaveformSegment(void); static void DrawWaveformFlatline(void); static void AdvancePlayhead(u8); @@ -322,7 +322,7 @@ void UpdateCryWaveformWindow(u8 windowId) sDexCryScreen->cryState++; } -void CryScreenPlayButton(u16 species) +void CryScreenPlayButton(enum Species species) { if (gMPlayInfo_BGM.status & MUSICPLAYER_STATUS_PAUSE && !sDexCryScreen->cryOverrideCountdown) { @@ -343,7 +343,7 @@ void CryScreenPlayButton(u16 species) } } -static void PlayCryScreenCry(u16 species) +static void PlayCryScreenCry(enum Species species) { PlayCry_NormalNoDucking(species, 0, CRY_VOLUME_RS, CRY_PRIORITY_NORMAL); sDexCryScreen->cryState = 1; @@ -575,4 +575,3 @@ static void SetCryMeterNeedleTarget(s8 offset) sCryMeterNeedle->targetRotation = rotation; sCryMeterNeedle->moveIncrement = NEEDLE_MOVE_INCREMENT; } - diff --git a/src/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index 39748e38c2..824a1ccdf8 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -336,7 +336,7 @@ struct PokedexListItem struct PokemonStats { - u16 species; + enum Species species; u8 genderRatio; u8 baseHP; u8 baseSpeed; @@ -367,7 +367,7 @@ struct EvoScreenData { bool8 fromEvoPage; u8 numAllEvolutions; - u16 targetSpecies[10]; + enum Species targetSpecies[10]; u8 numSeen; bool8 seen[10]; u8 menuPos; @@ -412,7 +412,7 @@ struct PokedexView struct PokemonStats sPokemonStats; struct EvoScreenData sEvoScreenData; struct FromScreenData sFormScreenData; - u16 formSpecies; + enum Species formSpecies; u16 selectedMonSpriteId; u16 pokeBallRotationStep; u16 pokeBallRotationBackup; @@ -569,8 +569,8 @@ static void Task_LoadEvolutionScreen(u8 taskId); static void Task_HandleEvolutionScreenInput(u8 taskId); static void Task_SwitchScreensFromEvolutionScreen(u8 taskId); static void Task_ExitEvolutionScreen(u8 taskId); -static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines); -static u8 PrintPreEvolutions(u8 taskId, u16 species); +static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, enum Species species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines); +static u8 PrintPreEvolutions(u8 taskId, enum Species species); //Stat bars on scrolling screens static void TryDestroyStatBars(void); static void TryDestroyStatBarsBg(void); @@ -582,7 +582,7 @@ static void SpriteCB_StatBarsBg(struct Sprite *sprite); //Forms screen static void Task_LoadFormsScreen(u8 taskId); static void Task_HandleFormsScreenInput(u8 taskId); -static void PrintForms(u8 taskId, u16 species); +static void PrintForms(u8 taskId, enum Species species); static void Task_SwitchScreensFromFormsScreen(u8 taskId); static void Task_ExitFormsScreen(u8 taskId); @@ -595,7 +595,7 @@ static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum); //Evo screen u32 GetSpeciesNameFontId(u32 nameWidth); u32 GetSpeciesNameWidthInChars(const u8 *speciesName); -bool32 IsSpeciesAlcremie(u32 targetSpecies); +bool32 IsSpeciesAlcremie(enum Species targetSpecies); bool32 IsItemSweet(enum Item item); //Stat bars by DizzyEgg @@ -3027,12 +3027,12 @@ static u8 ClearMonSprites(void) return FALSE; } -static u16 GetPokemonSpriteToDisplay(u16 species) +static u16 GetPokemonSpriteToDisplay(u16 index) { - if (species >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[species].dexNum == 0xFFFF) + if (index >= NATIONAL_DEX_COUNT || sPokedexView->pokedexList[index].dexNum == 0xFFFF) return 0xFFFF; - else if (sPokedexView->pokedexList[species].seen) - return sPokedexView->pokedexList[species].dexNum; + else if (sPokedexView->pokedexList[index].seen) + return sPokedexView->pokedexList[index].dexNum; else return 0; } @@ -3588,7 +3588,7 @@ static void CreateStatBars(struct PokedexListItem *dexMon) u8 *gfx = Alloc(64 * 64); static const u8 sBarsYOffset[] = {3, 13, 23, 33, 43, 53}; struct SpriteSheet sheet = {gfx, 64 * 64, TAG_STAT_BAR}; - u32 species = NationalPokedexNumToSpecies(dexMon->dexNum); + enum Species species = NationalPokedexNumToSpecies(dexMon->dexNum); memcpy(gfx, sStatBarsGfx, sizeof(sStatBarsGfx)); for (i = 0; i < NUM_STATS; i++) @@ -4069,7 +4069,7 @@ static void UNUSED HighlightScreenSelectBarItem(u8 selectedScreen, u16 unused) void Task_DisplayCaughtMonDexPageHGSS(u8 taskId) { u8 spriteId; - u16 species; + enum Species species; enum NationalDexOrder dexNum; if (!POKEDEX_PLUS_HGSS) return; // prevents the compiler from emitting static .rodata @@ -4191,7 +4191,7 @@ static void Task_ExitCaughtMonPage(u8 taskId) { if (!gPaletteFade.active) { - u16 species; + enum Species species; u32 otId; u32 personality; u8 paletteNum; @@ -4327,7 +4327,7 @@ static void SetTypeIconPosAndPal(u8 typeId, u8 x, u8 y, u8 spriteArrayId) sprite->y = y + 8; SetSpriteInvisibility(spriteArrayId, FALSE); } -static void PrintCurrentSpeciesTypeInfo(u8 newEntry, u16 species) +static void PrintCurrentSpeciesTypeInfo(u8 newEntry, enum Species species) { enum Type type1, type2; @@ -4379,7 +4379,7 @@ static void PrintMonInfo(u32 num, u32 value, u32 owned, u32 newEntry) { u8 str[16]; u8 str2[32]; - u16 species; + enum Species species; const u8 *name; const u8 *category; const u8 *description; @@ -4494,7 +4494,7 @@ static u8 PrintCryScreenSpeciesName(u8 windowId, u16 num, u8 left, u8 top) // Unown and Spinda use the personality of the first seen individual of that species // All others use personality 0 -static u32 GetPokedexMonPersonality(u16 species) +static u32 GetPokedexMonPersonality(enum Species species) { if (species == SPECIES_UNOWN || species == SPECIES_SPINDA) { @@ -4511,7 +4511,7 @@ static u32 GetPokedexMonPersonality(u16 species) static u16 CreateMonSpriteFromNationalDexNumberHGSS(u16 nationalNum, s16 x, s16 y, u16 paletteSlot) { - u32 species = NationalPokedexNumToSpeciesHGSS(nationalNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(nationalNum); return CreateMonPicSprite(species, FALSE, GetPokedexMonPersonality(species), TRUE, x, y, paletteSlot, TAG_NONE); } @@ -4742,7 +4742,7 @@ static void ResetStatsWindows(void) static void SaveMonDataInStruct(void) { - u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u8 evs[NUM_STATS] = { [STAT_HP] = gSpeciesInfo[species].evYield_HP, @@ -4851,7 +4851,7 @@ static void Task_LoadStatsScreen(u8 taskId) if (gTasks[taskId].data[1] == 0) { //Icon - u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u32 personality = GetPokedexMonPersonality(species); FreeMonIconPalettes(); //Free space for new pallete LoadMonIconPalettePersonality(species, personality); //Loads pallete for current mon @@ -5033,7 +5033,7 @@ static void PrintStatsScreen_DestroyMoveItemIcon(u8 taskId) static bool8 CalculateMoves(void) { - u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u16 statsMovesEgg[EGG_MOVES_ARRAY_COUNT] = {0}; @@ -5049,7 +5049,7 @@ static bool8 CalculateMoves(void) // Egg moves if (HGSS_SHOW_EGG_MOVES_FOR_EVOS) { - u16 preSpecies = species; + enum Species preSpecies = species; while (preSpecies != SPECIES_NONE) { numEggMoves = GetEggMovesBySpecies(preSpecies, statsMovesEgg); @@ -5079,13 +5079,13 @@ static bool8 CalculateMoves(void) return TRUE; } -static enum Move GetSelectedMove(u32 species, u32 selected) +static enum Move GetSelectedMove(enum Species species, u32 selected) { if (selected < sPokedexView->numEggMoves) { if (!HGSS_SHOW_EGG_MOVES_FOR_EVOS) return GetSpeciesEggMoves(species)[selected]; - u16 preSpecies = species; + enum Species preSpecies = species; while (GetSpeciesPreEvolution(preSpecies) != SPECIES_NONE) preSpecies = GetSpeciesPreEvolution(preSpecies); return GetSpeciesEggMoves(preSpecies)[selected]; @@ -5105,7 +5105,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId) u8 moves_y = 3; enum Item item = ITEM_MASTER_BALL; - u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u32 selected = sPokedexView->moveSelected; enum Move move = GetSelectedMove(species, selected); //Moves selected from move max @@ -5183,7 +5183,7 @@ static void PrintStatsScreen_Moves_Description(u8 taskId) u8 moves_x = 5; u8 moves_y = 5; - u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); enum Move move = GetSelectedMove(species, sPokedexView->moveSelected); //Move description @@ -5226,7 +5226,7 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId) u8 contest_appeal = 0; u8 contest_jam = 0; - u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); enum Move move = GetSelectedMove(species, sPokedexView->moveSelected); //Power + Accuracy @@ -5276,7 +5276,7 @@ static void PrintStatsScreen_Moves_Bottom(u8 taskId) static void PrintStatsScreen_NameGender(u8 taskId, u32 num, u32 value) { u8 str[16]; - u16 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u8 base_x = 38; u8 base_y = 0; @@ -5920,7 +5920,7 @@ static void ResetEvoScreenDataStruct(void) static void GetSeenFlagTargetSpecies(void) { u8 i; - u16 species; + enum Species species; for (i = 0; i < sPokedexView->sEvoScreenData.numAllEvolutions; i++) { species = sPokedexView->sEvoScreenData.targetSpecies[i]; @@ -5976,7 +5976,7 @@ static void Task_LoadEvolutionScreen(u8 taskId) case 3: if (gTasks[taskId].data[1] == 0) { - u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u32 personality = GetPokedexMonPersonality(species); sPokedexView->selectedScreen = EVO_SCREEN; ResetEvoScreenDataStruct(); @@ -6100,7 +6100,7 @@ static void Task_HandleEvolutionScreenInput(u8 taskId) if (JOY_NEW(A_BUTTON)) { - u16 targetSpecies = sPokedexView->sEvoScreenData.targetSpecies[sPokedexView->sEvoScreenData.menuPos]; + enum Species targetSpecies = sPokedexView->sEvoScreenData.targetSpecies[sPokedexView->sEvoScreenData.menuPos]; enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(targetSpecies); if (sPokedexView->isSearchResults && sPokedexView->originalSearchSelectionNum == 0) sPokedexView->originalSearchSelectionNum = sPokedexListItem->dexNum; @@ -6154,7 +6154,7 @@ static void Task_HandleEvolutionScreenInput(u8 taskId) } } -static void HandleTargetSpeciesPrintText(u32 targetSpecies, u32 base_x, u32 base_y, u32 base_y_offset, u32 base_i) +static void HandleTargetSpeciesPrintText(enum Species targetSpecies, u32 base_x, u32 base_y, u32 base_y_offset, u32 base_i) { bool32 seen = GetSetPokedexFlag(SpeciesToNationalPokedexNum(targetSpecies), FLAG_GET_SEEN); u32 fontId = GetSpeciesNameFontId(GetSpeciesNameWidthInChars(GetSpeciesName(targetSpecies))); @@ -6167,7 +6167,7 @@ static void HandleTargetSpeciesPrintText(u32 targetSpecies, u32 base_x, u32 base PrintInfoScreenTextSmall(gStringVar3, fontId, base_x, base_y + base_y_offset*base_i); //evolution mon name } -static void HandleTargetSpeciesPrintIcon(u8 taskId, u16 targetSpecies, u8 base_i, u8 iterations) +static void HandleTargetSpeciesPrintIcon(u8 taskId, enum Species targetSpecies, u8 base_i, u8 iterations) { u32 personality = GetPokedexMonPersonality(targetSpecies); LoadMonIconPalettePersonality(targetSpecies, personality); //Loads pallete for current mon @@ -6178,9 +6178,9 @@ static void HandleTargetSpeciesPrintIcon(u8 taskId, u16 targetSpecies, u8 base_i gSprites[gTasks[taskId].data[4+base_i]].oam.priority = 0; } -static void CreateCaughtBallEvolutionScreen(u16 targetSpecies, u8 x, u8 y, u16 unused) +static void CreateCaughtBallEvolutionScreen(enum Species targetSpecies, u8 x, u8 y, u16 unused) { - bool8 owned = GetSetPokedexFlag(SpeciesToNationalPokedexNum(targetSpecies), FLAG_GET_CAUGHT); + bool32 owned = GetSetPokedexFlag(SpeciesToNationalPokedexNum(targetSpecies), FLAG_GET_CAUGHT); if (owned) BlitBitmapToWindow(0, sCaughtBall_Gfx, x, y-1, 8, 16); else @@ -6190,9 +6190,9 @@ static void CreateCaughtBallEvolutionScreen(u16 targetSpecies, u8 x, u8 y, u16 u } } -static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 species, u8 base_x, u8 base_y, u8 base_y_offset, u8 base_i) +static void HandlePreEvolutionSpeciesPrint(u8 taskId, enum Species preSpecies, enum Species species, u8 base_x, u8 base_y, u8 base_y_offset, u8 base_i) { - bool8 seen = GetSetPokedexFlag(SpeciesToNationalPokedexNum(preSpecies), FLAG_GET_SEEN); + bool32 seen = GetSetPokedexFlag(SpeciesToNationalPokedexNum(preSpecies), FLAG_GET_SEEN); StringCopy(gStringVar1, GetSpeciesName(species)); //evolution mon name @@ -6221,7 +6221,7 @@ static void HandlePreEvolutionSpeciesPrint(u8 taskId, u16 preSpecies, u16 specie } } -static bool32 HasTwoPreEvolutions(u32 species) +static bool32 HasTwoPreEvolutions(enum Species species) { switch (species) { @@ -6232,7 +6232,7 @@ static bool32 HasTwoPreEvolutions(u32 species) } } -static u8 PrintPreEvolutions(u8 taskId, u16 species) +static u8 PrintPreEvolutions(u8 taskId, enum Species species) { u16 i; u16 j; @@ -6245,7 +6245,7 @@ static u8 PrintPreEvolutions(u8 taskId, u16 species) u16 preEvolutionTwo = 0; u8 numPreEvolutions = 0; - u16 baseFormSpecies; + enum Species baseFormSpecies; sPokedexView->sEvoScreenData.isMega = FALSE; //Check if it's a mega @@ -6394,7 +6394,7 @@ u32 GetSpeciesNameWidthInChars(const u8 *speciesName) return i; } -bool32 IsSpeciesAlcremie(u32 targetSpecies) +bool32 IsSpeciesAlcremie(enum Species targetSpecies) { return GET_BASE_SPECIES_ID(targetSpecies) == SPECIES_ALCREMIE; } @@ -6404,13 +6404,13 @@ bool32 IsItemSweet(enum Item item) return item >= ITEM_STRAWBERRY_SWEET && item <= ITEM_RIBBON_SWEET; } -static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines) +static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, enum Species species, u8 depth, u32 *depth_i, u32 alreadyPrintedIcons[], u32 *icon_depth_i, u32 numLines) { int i; u32 depth_x = 4; u32 depth_offset = 8 * (depth + 1); int fontId; - u16 targetSpecies = 0; + enum Species targetSpecies = 0; bool8 left = TRUE; u32 base_x = 21; u32 base_y = 51; @@ -6460,10 +6460,10 @@ static void PrintEvolutionTargetSpeciesAndMethod(u8 taskId, u16 species, u8 dept bool32 isAlcremie = IsSpeciesAlcremie(targetSpecies); - u32 speciesNameWidthInChars = GetSpeciesNameWidthInChars(GetSpeciesName(targetSpecies)); - u32 speciesNameCharWidth = GetFontAttribute(GetSpeciesNameFontId(speciesNameWidthInChars), FONTATTR_MAX_LETTER_WIDTH); + enum Species speciesNameWidthInChars = GetSpeciesNameWidthInChars(GetSpeciesName(targetSpecies)); + enum Species speciesNameCharWidth = GetFontAttribute(GetSpeciesNameFontId(speciesNameWidthInChars), FONTATTR_MAX_LETTER_WIDTH); - u32 speciesNameWidth = (speciesNameWidthInChars * speciesNameCharWidth); + enum Species speciesNameWidth = (speciesNameWidthInChars * speciesNameCharWidth); u32 base_x_offset = speciesNameWidth + base_x + depth_offset; // for evo method info u32 maxScreenWidth = 230 - base_x_offset; @@ -6899,7 +6899,7 @@ static void Task_LoadFormsScreen(u8 taskId) if (gTasks[taskId].data[1] == 0) { //Icon - u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); + enum Species species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u32 personality = GetPokedexMonPersonality(species); FreeMonIconPalettes(); //Free space for new pallete LoadMonIconPalettePersonality(species, personality); //Loads pallete for current mon @@ -7029,7 +7029,7 @@ static void Task_HandleFormsScreenInput(u8 taskId) if (JOY_NEW(A_BUTTON)) { u8 formId = sPokedexView->sFormScreenData.formIds[menuPos]; - u16 formSpecies = GetFormSpeciesId(NationalPokedexNumToSpecies(sPokedexListItem->dexNum), formId); + enum Species formSpecies = GetFormSpeciesId(NationalPokedexNumToSpecies(sPokedexListItem->dexNum), formId); if (sPokedexView->isSearchResults && sPokedexView->originalSearchSelectionNum == 0) sPokedexView->originalSearchSelectionNum = sPokedexListItem->dexNum; @@ -7056,7 +7056,7 @@ static void Task_HandleFormsScreenInput(u8 taskId) #define FORM_SPECIES_END (0xffff) -static void PrintForms(u8 taskId, u16 species) +static void PrintForms(u8 taskId, enum Species species) { u8 i; u8 j = 1; @@ -7752,7 +7752,7 @@ static void Task_ClosePokedexFromSearchResultsStartMenu(u8 taskId) //************************************ static int DoPokedexSearch(u8 dexMode, u8 order, u8 abcGroup, enum BodyColor bodyColor, enum Type type1, enum Type type2) { - u16 species; + enum Species species; u16 i; u16 resultsCount; enum Type types[2]; diff --git a/src/pokemon.c b/src/pokemon.c index 0fac6a1854..8207d62ac4 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -79,7 +79,7 @@ extern u16 gSpecialVar_ItemId; struct SpeciesItem { - u16 species; + enum Species species; enum Item item; }; @@ -1289,18 +1289,18 @@ void ZeroEnemyPartyMons(void) ZeroMonData(&gEnemyParty[i]); } -void CreateRandomMon(struct Pokemon *mon, u16 species, u8 level) +void CreateRandomMon(struct Pokemon *mon, enum Species species, u8 level) { CreateRandomMonWithIVs(mon, species, level, USE_RANDOM_IVS); } -void CreateRandomMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u8 fixedIv) +void CreateRandomMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u8 fixedIv) { CreateMonWithIVs(mon, species, level, Random32(), OTID_STRUCT_PLAYER_ID, fixedIv); GiveMonInitialMoveset(mon); } -void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId) +void CreateMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId) { u32 mail; ZeroMonData(mon); @@ -1310,7 +1310,7 @@ void CreateMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, stru SetMonData(mon, MON_DATA_MAIL, &mail); } -void CreateMonWithIVs(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV) +void CreateMonWithIVs(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId, u8 fixedIV) { CreateMon(mon, species, level, personality, trainerId); SetBoxMonIVs(&mon->box, fixedIV); @@ -1330,7 +1330,7 @@ void SetBoxMonIVs(struct BoxPokemon *mon, u8 fixedIV) u32 iv; u32 ivRandom = Random32(); - u32 species = GetBoxMonData(mon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(mon, MON_DATA_SPECIES); value = (u16)ivRandom; iv = value & MAX_IV_MASK; @@ -1381,7 +1381,7 @@ void SetBoxMonPerfectIVs(struct BoxPokemon *mon, u32 numPerfect) } } -void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u32 personality, struct OriginalTrainerId trainerId) +void CreateBoxMon(struct BoxPokemon *boxMon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId trainerId) { u8 speciesName[POKEMON_NAME_LENGTH + 1]; u32 value; @@ -1485,7 +1485,7 @@ static bool32 IsValidGender(u32 gender) } } -u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter) +u32 GetMonPersonality(enum Species species, u8 gender, u8 nature, u8 unownLetter) { u32 personality, actualLetter; @@ -1517,14 +1517,14 @@ u32 GetMonPersonality(u16 species, u8 gender, u8 nature, u8 unownLetter) } // This is only used to create Wally's Ralts. -void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level) +void CreateMaleMon(struct Pokemon *mon, enum Species species, u8 level) { u32 personality = GetMonPersonality(species, MON_MALE, NATURE_RANDOM, RANDOM_UNOWN_LETTER); CreateMonWithIVs(mon, species, level, personality, OTID_STRUCT_PLAYER_ID, USE_RANDOM_IVS); GiveMonInitialMoveset(mon); } -void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality) +void CreateMonWithIVsPersonality(struct Pokemon *mon, enum Species species, u8 level, u32 ivs, u32 personality) { CreateMon(mon, species, level, personality, OTID_STRUCT_PLAYER_ID); SetMonData(mon, MON_DATA_IVS, &ivs); @@ -1714,7 +1714,7 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP GetMonData(mon, MON_DATA_NICKNAME10, dest->nickname); } -static void CreateEventMon(struct Pokemon *mon, u16 species, u8 level, u32 personality, struct OriginalTrainerId otId) +static void CreateEventMon(struct Pokemon *mon, enum Species species, u8 level, u32 personality, struct OriginalTrainerId otId) { bool32 isModernFatefulEncounter = TRUE; @@ -1812,7 +1812,7 @@ void CalculateMonStats(struct Pokemon *mon) { s32 oldMaxHP = GetMonData(mon, MON_DATA_MAX_HP); s32 currentHP = GetMonData(mon, MON_DATA_HP); - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u8 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP); s32 level = GetLevelFromMonExp(mon); s32 newMaxHP; @@ -1904,7 +1904,7 @@ void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest) u8 GetLevelFromMonExp(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u32 exp = GetMonData(mon, MON_DATA_EXP); s32 level = 1; @@ -1916,7 +1916,7 @@ u8 GetLevelFromMonExp(struct Pokemon *mon) u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon) { - u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); u32 exp = GetBoxMonData(boxMon, MON_DATA_EXP); s32 level = 1; @@ -2003,7 +2003,7 @@ void GiveMonInitialMoveset(struct Pokemon *mon) void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon) //Credit: AsparagusEduardo { - u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); s32 level = GetLevelFromBoxMonExp(boxMon); s32 i; enum Move moves[MAX_MON_MOVES] = {MOVE_NONE}; @@ -2060,7 +2060,7 @@ void GiveMonDefaultMove(struct Pokemon *mon, u32 slot) void GiveBoxMonDefaultMove(struct BoxPokemon *boxMon, u32 slot) { enum Move move = MOVE_NONE; - u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); s32 level = GetLevelFromBoxMonExp(boxMon); for (u32 i = 0; learnset[i].move != LEVEL_UP_MOVE_END; i++) @@ -2093,7 +2093,7 @@ void GiveBoxMonDefaultMove(struct BoxPokemon *boxMon, u32 slot) enum Move MonTryLearningNewMoveAtLevel(struct Pokemon *mon, bool32 firstMove, u32 level) { enum Move retVal = MOVE_NONE; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); // since you can learn more than one move per level @@ -2266,7 +2266,7 @@ u8 GetMonGender(struct Pokemon *mon) u8 GetBoxMonGender(struct BoxPokemon *boxMon) { - u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); u32 personality = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); switch (gSpeciesInfo[species].genderRatio) @@ -2283,7 +2283,7 @@ u8 GetBoxMonGender(struct BoxPokemon *boxMon) return MON_MALE; } -u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality) +u8 GetGenderFromSpeciesAndPersonality(enum Species species, u32 personality) { switch (gSpeciesInfo[species].genderRatio) { @@ -2299,7 +2299,7 @@ u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality) return MON_MALE; } -bool32 IsPersonalityFemale(u16 species, u32 personality) +bool32 IsPersonalityFemale(enum Species species, u32 personality) { return GetGenderFromSpeciesAndPersonality(species, personality) == MON_FEMALE; } @@ -2313,7 +2313,7 @@ u32 GetUnownSpeciesId(u32 personality) return unownLetter + SPECIES_UNOWN_B - 1; } -void SetMultiuseSpriteTemplateToPokemon(u16 speciesTag, enum BattlerPosition battlerPosition) +void SetMultiuseSpriteTemplateToPokemon(enum Species speciesTag, enum BattlerPosition battlerPosition) { if (gMonSpritesGfxPtr != NULL) gMultiuseSpriteTemplate = gMonSpritesGfxPtr->templates[battlerPosition]; @@ -3554,7 +3554,7 @@ u8 GetMonsStateToDoubles_2(void) 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) aliveCount++; @@ -3566,7 +3566,7 @@ u8 GetMonsStateToDoubles_2(void) return (aliveCount > 1) ? PLAYER_HAS_TWO_USABLE_MONS : PLAYER_HAS_ONE_USABLE_MON; } -enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum) +enum Ability GetAbilityBySpecies(enum Species species, u8 abilityNum) { int i; @@ -3593,7 +3593,7 @@ enum Ability GetAbilityBySpecies(u16 species, u8 abilityNum) enum Ability GetMonAbility(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u8 abilityNum = GetMonData(mon, MON_DATA_ABILITY_NUM); return GetAbilityBySpecies(species, abilityNum); } @@ -3665,7 +3665,7 @@ bool8 IsPokemonStorageFull(void) return TRUE; } -const u8 *GetSpeciesName(u16 species) +const u8 *GetSpeciesName(enum Species species) { species = SanitizeSpeciesId(species); if (gSpeciesInfo[species].speciesName[0] == 0) @@ -3673,7 +3673,7 @@ const u8 *GetSpeciesName(u16 species) return gSpeciesInfo[species].speciesName; } -const u8 *GetSpeciesCategory(u16 species) +const u8 *GetSpeciesCategory(enum Species species) { species = SanitizeSpeciesId(species); if (gSpeciesInfo[species].categoryName[0] == 0) @@ -3681,7 +3681,7 @@ const u8 *GetSpeciesCategory(u16 species) return gSpeciesInfo[species].categoryName; } -const u8 *GetSpeciesPokedexDescription(u16 species) +const u8 *GetSpeciesPokedexDescription(enum Species species) { species = SanitizeSpeciesId(species); if (gSpeciesInfo[species].description == NULL) @@ -3689,57 +3689,57 @@ const u8 *GetSpeciesPokedexDescription(u16 species) return gSpeciesInfo[species].description; } -u32 GetSpeciesHeight(u16 species) +u32 GetSpeciesHeight(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].height; } -u32 GetSpeciesWeight(u16 species) +u32 GetSpeciesWeight(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].weight; } -enum Type GetSpeciesType(u16 species, u8 slot) +enum Type GetSpeciesType(enum Species species, u8 slot) { return gSpeciesInfo[SanitizeSpeciesId(species)].types[slot]; } -enum Ability GetSpeciesAbility(u16 species, u8 slot) +enum Ability GetSpeciesAbility(enum Species species, u8 slot) { return gSpeciesInfo[SanitizeSpeciesId(species)].abilities[slot]; } -u32 GetSpeciesBaseHP(u16 species) +u32 GetSpeciesBaseHP(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseHP; } -u32 GetSpeciesBaseAttack(u16 species) +u32 GetSpeciesBaseAttack(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseAttack; } -u32 GetSpeciesBaseDefense(u16 species) +u32 GetSpeciesBaseDefense(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseDefense; } -u32 GetSpeciesBaseSpAttack(u16 species) +u32 GetSpeciesBaseSpAttack(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpAttack; } -u32 GetSpeciesBaseSpDefense(u16 species) +u32 GetSpeciesBaseSpDefense(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpDefense; } -u32 GetSpeciesBaseSpeed(u16 species) +u32 GetSpeciesBaseSpeed(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].baseSpeed; } -u32 GetSpeciesBaseStat(u16 species, u32 statIndex) +u32 GetSpeciesBaseStat(enum Species species, u32 statIndex) { switch (statIndex) { @@ -3759,7 +3759,7 @@ u32 GetSpeciesBaseStat(u16 species, u32 statIndex) return 0; } -const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species) +const struct LevelUpMove *GetSpeciesLevelUpLearnset(enum Species species) { const struct LevelUpMove *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].levelUpLearnset; if (learnset == NULL) @@ -3767,7 +3767,7 @@ const struct LevelUpMove *GetSpeciesLevelUpLearnset(u16 species) return learnset; } -const u16 *GetSpeciesTeachableLearnset(u16 species) +const u16 *GetSpeciesTeachableLearnset(enum Species species) { const u16 *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].teachableLearnset; if (learnset == NULL) @@ -3775,7 +3775,7 @@ const u16 *GetSpeciesTeachableLearnset(u16 species) return learnset; } -const u16 *GetSpeciesEggMoves(u16 species) +const u16 *GetSpeciesEggMoves(enum Species species) { const u16 *learnset = gSpeciesInfo[SanitizeSpeciesId(species)].eggMoveLearnset; if (learnset == NULL) @@ -3783,7 +3783,7 @@ const u16 *GetSpeciesEggMoves(u16 species) return learnset; } -const struct Evolution *GetSpeciesEvolutions(u16 species) +const struct Evolution *GetSpeciesEvolutions(enum Species species) { const struct Evolution *evolutions = gSpeciesInfo[SanitizeSpeciesId(species)].evolutions; if (evolutions == NULL) @@ -3791,7 +3791,7 @@ const struct Evolution *GetSpeciesEvolutions(u16 species) return evolutions; } -const u16 *GetSpeciesFormTable(u16 species) +const u16 *GetSpeciesFormTable(enum Species species) { const u16 *formTable = gSpeciesInfo[SanitizeSpeciesId(species)].formSpeciesIdTable; if (formTable == NULL) @@ -3799,7 +3799,7 @@ const u16 *GetSpeciesFormTable(u16 species) return formTable; } -const struct FormChange *GetSpeciesFormChanges(u16 species) +const struct FormChange *GetSpeciesFormChanges(enum Species species) { const struct FormChange *formChanges = gSpeciesInfo[SanitizeSpeciesId(species)].formChangeTable; if (formChanges == NULL) @@ -3999,7 +3999,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex, } else if (param - 1 < ARRAY_COUNT(sExpCandyExperienceTable)) // EXP Candies { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); dataUnsigned = sExpCandyExperienceTable[param - 1] + GetMonData(mon, MON_DATA_EXP); if (B_RARE_CANDY_CAP && B_EXP_CAP_TYPE == EXP_CAP_HARD) @@ -4232,7 +4232,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex, case 7: // ITEM4_EVO_STONE { bool32 canStopEvo = TRUE; - u32 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_ITEM_USE, item, NULL, &canStopEvo, CHECK_EVO); + enum Species targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_ITEM_USE, item, NULL, &canStopEvo, CHECK_EVO); if (targetSpecies != SPECIES_NONE) { @@ -4615,7 +4615,7 @@ u8 GetNatureFromPersonality(u32 personality) return personality % NUM_NATURES; } -u32 GetGMaxTargetSpecies(u32 species) +enum Species GetGMaxTargetSpecies(enum Species species) { const struct FormChange *formChanges = GetSpeciesFormChanges(species); u32 i; @@ -4643,7 +4643,7 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti enum Item removeBagItem = ITEM_NONE; u32 removeBagItemCount = 0; u32 evolutionTracker = GetMonData(mon, MON_DATA_EVOLUTION_TRACKER, 0); - u32 partnerSpecies; + enum Species partnerSpecies; enum Item partnerHeldItem; enum HoldEffect partnerHoldEffect; @@ -4795,7 +4795,7 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti case IF_TYPE_IN_PARTY: for (j = 0; j < PARTY_SIZE; j++) { - u16 currSpecies = GetMonData(&gPlayerParty[j], MON_DATA_SPECIES); + enum Species currSpecies = GetMonData(&gPlayerParty[j], MON_DATA_SPECIES); if (GetSpeciesType(currSpecies, 0) == params[i].arg1 || GetSpeciesType(currSpecies, 1) == params[i].arg1) { @@ -4956,11 +4956,11 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti return TRUE; } -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) { int i; - u32 targetSpecies = SPECIES_NONE; - u32 species = GetMonData(mon, MON_DATA_SPECIES, 0); + enum Species targetSpecies = SPECIES_NONE; + enum Species species = GetMonData(mon, MON_DATA_SPECIES, 0); enum Item heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0); u32 level = GetMonData(mon, MON_DATA_LEVEL, 0); enum HoldEffect holdEffect; @@ -5155,7 +5155,7 @@ u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 bool8 IsMonPastEvolutionLevel(struct Pokemon *mon) { int i; - u16 species = GetMonData(mon, MON_DATA_SPECIES, 0); + enum Species species = GetMonData(mon, MON_DATA_SPECIES, 0); u8 level = GetMonData(mon, MON_DATA_LEVEL, 0); const struct Evolution *evolutions = GetSpeciesEvolutions(species); @@ -5179,12 +5179,12 @@ bool8 IsMonPastEvolutionLevel(struct Pokemon *mon) return FALSE; } -u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum) +enum Species NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum) { - u16 species; + enum Species species; if (!nationalNum) - return 0; + return SPECIES_NONE; species = 1; @@ -5192,7 +5192,7 @@ u16 NationalPokedexNumToSpecies(enum NationalDexOrder nationalNum) species++; if (species == NUM_SPECIES) - return NATIONAL_DEX_NONE; + return SPECIES_NONE; return GET_BASE_SPECIES_ID(species); } @@ -5240,7 +5240,7 @@ enum HoennDexOrder NationalToHoennOrder(enum NationalDexOrder nationalNum) return hoennNum + 1; } -enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species) +enum NationalDexOrder SpeciesToNationalPokedexNum(enum Species species) { species = SanitizeSpeciesId(species); if (!species) @@ -5249,21 +5249,21 @@ enum NationalDexOrder SpeciesToNationalPokedexNum(u16 species) return gSpeciesInfo[species].natDexNum; } -u32 SpeciesToRegionalPokedexNum(u16 species) +u32 SpeciesToRegionalPokedexNum(enum Species species) { if (IS_FRLG) return SpeciesToKantoPokedexNum(species); return SpeciesToHoennPokedexNum(species); } -enum KantoDexOrder SpeciesToKantoPokedexNum(u16 species) +enum KantoDexOrder SpeciesToKantoPokedexNum(enum Species species) { if (!species) return 0; return NationalToKantoOrder(gSpeciesInfo[species].natDexNum); } -enum HoennDexOrder SpeciesToHoennPokedexNum(u16 species) +enum HoennDexOrder SpeciesToHoennPokedexNum(enum Species species) { if (!species) return 0; @@ -5393,7 +5393,7 @@ 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 language; GetMonData(mon, MON_DATA_NICKNAME, gStringVar1); @@ -5475,7 +5475,8 @@ u16 ModifyStatByNature(u8 nature, u16 stat, enum Stat statIndex) void AdjustFriendship(struct Pokemon *mon, u8 event) { - u16 species, heldItem; + enum Species species; + enum Item heldItem; enum HoldEffect holdEffect; s8 mod; @@ -5562,7 +5563,7 @@ u8 CalculateFriendshipBonuses(struct Pokemon *mon, u32 modifier, enum HoldEffect return bonus; } -void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) +void MonGainEVs(struct Pokemon *mon, enum Species defeatedSpecies) { u8 evs[NUM_STATS]; u16 evIncrease = 0; @@ -5685,7 +5686,7 @@ u16 GetMonEVCount(struct Pokemon *mon) bool8 TryIncrementMonLevel(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES, 0); + enum Species species = GetMonData(mon, MON_DATA_SPECIES, 0); u8 nextLevel = GetMonData(mon, MON_DATA_LEVEL, 0) + 1; u32 expPoints = GetMonData(mon, MON_DATA_EXP, 0); if (expPoints > gExperienceTables[gSpeciesInfo[species].growthRate][MAX_LEVEL]) @@ -5704,7 +5705,7 @@ bool8 TryIncrementMonLevel(struct Pokemon *mon) } } -u8 CanLearnTeachableMove(u16 species, enum Move move) +u8 CanLearnTeachableMove(enum Species species, enum Move move) { const u16 *teachableLearnset = GetSpeciesTeachableLearnset(species); if (species == SPECIES_EGG) @@ -5717,7 +5718,7 @@ u8 CanLearnTeachableMove(u16 species, enum Move move) return FALSE; } -u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) +u8 GetLevelUpMovesBySpecies(enum Species species, u16 *moves) { u8 numMoves = 0; int i; @@ -5729,7 +5730,7 @@ u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves) return numMoves; } -u16 SpeciesToPokedexNum(u16 species) +u16 SpeciesToPokedexNum(enum Species species) { if (IsNationalPokedexEnabled()) { @@ -5744,14 +5745,14 @@ u16 SpeciesToPokedexNum(u16 species) } } -bool32 IsSpeciesInRegionalDex(u16 species) +bool32 IsSpeciesInRegionalDex(enum Species species) { if (IS_FRLG) return IsSpeciesInKantoDex(species); return IsSpeciesInHoennDex(species); } -bool32 IsSpeciesInKantoDex(u16 species) +bool32 IsSpeciesInKantoDex(enum Species species) { if (SpeciesToKantoPokedexNum(species) > KANTO_DEX_COUNT) return FALSE; @@ -5759,7 +5760,7 @@ bool32 IsSpeciesInKantoDex(u16 species) return TRUE; } -bool32 IsSpeciesInHoennDex(u16 species) +bool32 IsSpeciesInHoennDex(enum Species species) { if (SpeciesToHoennPokedexNum(species) > HOENN_DEX_COUNT) return FALSE; @@ -5899,29 +5900,29 @@ static void Task_PlayMapChosenOrBattleBGM(u8 taskId) const u16 *GetMonFrontSpritePal(struct Pokemon *mon) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); bool32 isShiny = GetMonData(mon, MON_DATA_IS_SHINY); u32 personality = GetMonData(mon, MON_DATA_PERSONALITY); bool32 isEgg = GetMonData(mon, MON_DATA_IS_EGG); return GetMonSpritePalFromSpeciesAndPersonalityIsEgg(species, isShiny, personality, isEgg); } -const u16 *GetMonSpritePalFromSpeciesAndPersonality(u16 species, bool32 isShiny, u32 personality) +const u16 *GetMonSpritePalFromSpeciesAndPersonality(enum Species species, bool32 isShiny, u32 personality) { return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, IsPersonalityFemale(species, personality), FALSE); } -const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(u16 species, bool32 isShiny, u32 personality, bool32 isEgg) +const u16 *GetMonSpritePalFromSpeciesAndPersonalityIsEgg(enum Species species, bool32 isShiny, u32 personality, bool32 isEgg) { return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, IsPersonalityFemale(species, personality), isEgg); } -const u16 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFemale) +const u16 *GetMonSpritePalFromSpecies(enum Species species, bool32 isShiny, bool32 isFemale) { return GetMonSpritePalFromSpeciesIsEgg(species, isShiny, isFemale, FALSE); } -const u16 *GetMonSpritePalFromSpeciesIsEgg(u16 species, bool32 isShiny, bool32 isFemale, bool32 isEgg) +const u16 *GetMonSpritePalFromSpeciesIsEgg(enum Species species, bool32 isShiny, bool32 isFemale, bool32 isEgg) { species = SanitizeSpeciesId(species); @@ -5975,7 +5976,7 @@ bool32 CannotForgetMove(enum Move move) return IsMoveHM(move); } -bool8 IsMonSpriteNotFlipped(u16 species) +bool8 IsMonSpriteNotFlipped(enum Species species) { return gSpeciesInfo[species].noFlip; } @@ -6055,7 +6056,7 @@ void SetMonPreventsSwitchingString(void) BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4, sizeof(gStringVar4)); } -static s32 GetWildMonTableIdInAlteringCave(u16 species) +static s32 GetWildMonTableIdInAlteringCave(enum Species species) { s32 i; for (i = 0; i < (s32) ARRAY_COUNT(sAlteringCaveWildMonHeldItems); i++) @@ -6083,7 +6084,7 @@ void SetWildMonHeldItem(void) if (!(gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE))) { u16 rnd; - u16 species; + enum Species species; u16 count = (WILD_DOUBLE_BATTLE) ? 2 : 1; u16 i; bool32 itemHeldBoost = CanFirstMonBoostHeldItemRarity(); @@ -6191,7 +6192,7 @@ static void Task_PokemonSummaryAnimateAfterDelay(u8 taskId) } } -void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u8 panMode) +void BattleAnimateFrontSprite(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panMode) { if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) DoMonFrontSpriteAnimation(sprite, species, noCry, panMode | SKIP_FRONT_ANIM); @@ -6199,7 +6200,7 @@ void BattleAnimateFrontSprite(struct Sprite *sprite, u16 species, bool8 noCry, u DoMonFrontSpriteAnimation(sprite, species, noCry, panMode); } -void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, u8 panModeAnimFlag) +void DoMonFrontSpriteAnimation(struct Sprite *sprite, enum Species species, bool8 noCry, u8 panModeAnimFlag) { s8 pan; switch (panModeAnimFlag & (u8)~SKIP_FRONT_ANIM) // Exclude anim flag to get pan mode @@ -6246,7 +6247,7 @@ void DoMonFrontSpriteAnimation(struct Sprite *sprite, u16 species, bool8 noCry, } } -void PokemonSummaryDoMonAnimation(struct Sprite *sprite, u16 species, bool8 oneFrame) +void PokemonSummaryDoMonAnimation(struct Sprite *sprite, enum Species species, bool8 oneFrame) { if (!oneFrame && HasTwoFramesAnimation(species)) StartSpriteAnim(sprite, 1); @@ -6274,7 +6275,7 @@ void StopPokemonAnimationDelayTask(void) DestroyTask(delayTaskId); } -void BattleAnimateBackSprite(struct Sprite *sprite, u16 species) +void BattleAnimateBackSprite(struct Sprite *sprite, enum Species species) { if (gHitMarker & HITMARKER_NO_ANIMATIONS && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))) { @@ -6370,7 +6371,7 @@ void HandleSetPokedexFlagFromMon(struct Pokemon *mon, u32 caseId) HandleSetPokedexFlag(nationalNum, caseId, personality); } -bool8 HasTwoFramesAnimation(u16 species) +bool8 HasTwoFramesAnimation(enum Species species) { return P_TWO_FRAME_FRONT_SPRITES && gSpeciesInfo[species].frontAnimFrames != sAnims_SingleFramePlaceHolder @@ -6569,7 +6570,7 @@ u8 *MonSpritesGfxManager_GetSpritePtr(u8 managerId, u8 spriteNum) } } -u16 GetFormSpeciesId(u16 speciesId, u8 formId) +u16 GetFormSpeciesId(enum Species speciesId, u8 formId) { if (GetSpeciesFormTable(speciesId) != NULL) return GetSpeciesFormTable(speciesId)[formId]; @@ -6593,9 +6594,9 @@ u8 GetFormIdFromFormSpeciesId(u16 formSpeciesId) } // Returns the current species if no form change is possible -u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges method) +enum Species GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges method) { - u32 species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL); const struct FormChange *formChanges = GetSpeciesFormChanges(species); if (formChanges == NULL) @@ -6616,15 +6617,15 @@ u32 GetFormChangeTargetSpeciesBoxMon(struct BoxPokemon *boxMon, enum FormChanges } // Returns the current species if no form change is possible -u32 GetFormChangeTargetSpecies(struct Pokemon *mon, enum FormChanges method) +enum Species GetFormChangeTargetSpecies(struct Pokemon *mon, enum FormChanges method) { return GetFormChangeTargetSpeciesBoxMon(&mon->box, method); } -u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx) +enum Species GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx) { u32 i; - u32 targetSpecies = ctx.currentSpecies; + enum Species targetSpecies = ctx.currentSpecies; const struct FormChange *formChanges = GetSpeciesFormChanges(ctx.currentSpecies); if (formChanges == NULL) @@ -6846,7 +6847,7 @@ u32 GetFormChangeTargetSpecies_Internal(struct FormChangeContext ctx) void TrySetDayLimitToFormChange(struct Pokemon *mon) { u32 i; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); const struct FormChange *formChanges = GetSpeciesFormChanges(species); for (i = 0; formChanges != NULL && formChanges[i].method != FORM_CHANGE_TERMINATOR; i++) @@ -6859,7 +6860,7 @@ void TrySetDayLimitToFormChange(struct Pokemon *mon) } } -bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method) +bool32 DoesSpeciesHaveFormChangeMethod(enum Species species, enum FormChanges method) { u32 i; const struct FormChange *formChanges = GetSpeciesFormChanges(species); @@ -6875,7 +6876,7 @@ bool32 DoesSpeciesHaveFormChangeMethod(u16 species, enum FormChanges method) u16 MonTryLearningNewMoveEvolution(struct Pokemon *mon, bool8 firstMove) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u8 level = GetMonData(mon, MON_DATA_LEVEL); const struct LevelUpMove *learnset = GetSpeciesLevelUpLearnset(species); @@ -6931,7 +6932,7 @@ void TryScriptEvolution(void) for (i = 0; i < PARTY_SIZE; i++) { - u32 targetSpecies = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_SCRIPT_TRIGGER, 0, NULL, &canStopEvo, CHECK_EVO); + enum Species targetSpecies = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_SCRIPT_TRIGGER, 0, NULL, &canStopEvo, CHECK_EVO); if (targetSpecies != SPECIES_NONE && !(sTriedEvolving & (1u << i))) { @@ -6962,7 +6963,7 @@ void TrySpecialOverworldEvo(void) for (i = 0; i < PARTY_SIZE; i++) { - u32 targetSpecies = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_OVERWORLD_SPECIAL, 0, NULL, &canStopEvo, CHECK_EVO); + enum Species targetSpecies = GetEvolutionTargetSpecies(&gPlayerParty[i], EVO_MODE_OVERWORLD_SPECIAL, 0, NULL, &canStopEvo, CHECK_EVO); if (targetSpecies != SPECIES_NONE && !(sTriedEvolving & (1u << i))) { @@ -6985,7 +6986,7 @@ void TrySpecialOverworldEvo(void) SetMainCallback2(CB2_ReturnToField); } -bool32 SpeciesHasGenderDifferences(u16 species) +bool32 SpeciesHasGenderDifferences(enum Species species) { #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].frontPicFemale != NULL @@ -7022,8 +7023,8 @@ bool32 TryFormChange(struct Pokemon *mon, enum FormChanges method) || GetMonData(mon, MON_DATA_SPECIES_OR_EGG, 0) == SPECIES_EGG) return FALSE; - u32 currentSpecies = GetMonData(mon, MON_DATA_SPECIES); - u32 targetSpecies = GetFormChangeTargetSpecies(mon, method); + enum Species currentSpecies = GetMonData(mon, MON_DATA_SPECIES); + enum Species targetSpecies = GetFormChangeTargetSpecies(mon, method); struct PartyState *battlePartyState = GetBattlerPartyStateByPokemon(mon); // If the battle ends, and there's not a specified species to change back to, @@ -7060,8 +7061,8 @@ bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method) || GetBoxMonData(boxMon, MON_DATA_SPECIES_OR_EGG, 0) == SPECIES_EGG) return FALSE; - u32 currentSpecies = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL); - u32 targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, method); + enum Species currentSpecies = GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL); + enum Species targetSpecies = GetFormChangeTargetSpeciesBoxMon(boxMon, method); assertf(targetSpecies != SPECIES_NONE, "form change target returned NONE. cur:%d, method:%d", currentSpecies, method) { @@ -7076,7 +7077,7 @@ bool32 TryBoxMonFormChange(struct BoxPokemon *boxMon, enum FormChanges method) return FALSE; } -u16 SanitizeSpeciesId(u16 species) +u16 SanitizeSpeciesId(enum Species species) { assertf(species <= NUM_SPECIES && (species == SPECIES_NONE || IsSpeciesEnabled(species)), "invalid species: %d", species) { @@ -7086,7 +7087,7 @@ u16 SanitizeSpeciesId(u16 species) return species; } -bool32 IsSpeciesEnabled(u16 species) +bool32 IsSpeciesEnabled(enum Species species) { // This function should not use the GetSpeciesBaseHP function, as the included sanitation will result in an infinite loop return gSpeciesInfo[species].baseHP > 0 || species == SPECIES_EGG; @@ -7095,7 +7096,7 @@ bool32 IsSpeciesEnabled(u16 species) void TryToSetBattleFormChangeMoves(struct Pokemon *mon, enum FormChanges method) { int i, j; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); const struct FormChange *formChanges = GetSpeciesFormChanges(species); if (formChanges == NULL @@ -7223,7 +7224,7 @@ void HealBoxPokemon(struct BoxPokemon *boxMon) BoxMonRestorePP(boxMon); } -enum PokemonCry GetCryIdBySpecies(u16 species) +enum PokemonCry GetCryIdBySpecies(enum Species species) { species = SanitizeSpeciesId(species); if (P_CRIES_ENABLED == FALSE || gSpeciesInfo[species].cryId >= CRY_COUNT || gTestRunnerHeadless) @@ -7231,7 +7232,7 @@ enum PokemonCry GetCryIdBySpecies(u16 species) return gSpeciesInfo[species].cryId; } -u16 GetSpeciesPreEvolution(u16 species) +u16 GetSpeciesPreEvolution(enum Species species) { int i, j; @@ -7260,7 +7261,7 @@ void UpdateDaysPassedSinceFormChange(u16 days) for (i = 0; i < PARTY_SIZE; i++) { struct Pokemon *mon = &gPlayerParty[i]; - u32 currentSpecies = GetMonData(mon, MON_DATA_SPECIES); + enum Species currentSpecies = GetMonData(mon, MON_DATA_SPECIES); u8 daysSinceFormChange; if (currentSpecies == SPECIES_NONE) @@ -7297,7 +7298,7 @@ uq4_12_t GetDynamaxLevelHPMultiplier(u32 dynamaxLevel, bool32 inverseMultiplier) return UQ_4_12(1.5 + 0.05 * dynamaxLevel); } -bool32 IsSpeciesRegionalForm(u32 species) +bool32 IsSpeciesRegionalForm(enum Species species) { return gSpeciesInfo[species].isAlolanForm || gSpeciesInfo[species].isGalarianForm @@ -7305,7 +7306,7 @@ bool32 IsSpeciesRegionalForm(u32 species) || gSpeciesInfo[species].isPaldeanForm; } -bool32 IsSpeciesRegionalFormFromRegion(u32 species, u32 region) +bool32 IsSpeciesRegionalFormFromRegion(enum Species species, u32 region) { switch (region) { @@ -7317,7 +7318,7 @@ bool32 IsSpeciesRegionalFormFromRegion(u32 species, u32 region) } } -bool32 SpeciesHasRegionalForm(u32 species) +bool32 SpeciesHasRegionalForm(enum Species species) { u32 formId; const u16 *formTable = GetSpeciesFormTable(species); @@ -7329,10 +7330,10 @@ bool32 SpeciesHasRegionalForm(u32 species) return FALSE; } -u32 GetRegionalFormByRegion(u32 species, u32 region) +u32 GetRegionalFormByRegion(enum Species species, u32 region) { u32 formId = 0; - u32 firstFoundSpecies = 0; + enum Species firstFoundSpecies = 0; const u16 *formTable = GetSpeciesFormTable(species); if (formTable != NULL) @@ -7351,7 +7352,7 @@ u32 GetRegionalFormByRegion(u32 species, u32 region) return species; } -bool32 IsSpeciesForeignRegionalForm(u32 species, u32 currentRegion) +bool32 IsSpeciesForeignRegionalForm(enum Species species, u32 currentRegion) { u32 i; for (i = 0; i < REGIONS_COUNT; i++) @@ -7385,7 +7386,7 @@ void SavePlayerPartyMon(u32 index, struct Pokemon *mon) gSaveBlock1Ptr->playerParty[index] = *mon; } -bool32 IsSpeciesOfType(u32 species, enum Type type) +bool32 IsSpeciesOfType(enum Species species, enum Type type) { if (gSpeciesInfo[species].types[0] == type || gSpeciesInfo[species].types[1] == type) @@ -7446,7 +7447,7 @@ void ChangePokemonNicknameWithCallback(void (*callback)(void)) DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY), callback); } -bool32 HasShedinjaHPHandling(u32 species) +bool32 HasShedinjaHPHandling(enum Species species) { if (species == SPECIES_SHEDINJA) return TRUE; diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index b6ba7232e3..cde0ae0e87 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -468,7 +468,7 @@ static void SetPosForRotation(struct Sprite *sprite, u16 index, s16 amplitudeX, sprite->y2 = yAdder + amplitudeY; } -enum BackAnim GetSpeciesBackAnimSet(u16 species) +enum BackAnim GetSpeciesBackAnimSet(enum Species species) { if (gSpeciesInfo[species].backAnimId != BACK_ANIM_NONE) return gSpeciesInfo[species].backAnimId - 1; diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 345a60c7f1..e9355b1c62 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -134,12 +134,12 @@ static const u16 sSpriteImageSizes[3][4] = }, }; -u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality) +u8 CreateMonIcon(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality) { return CreateMonIconIsEgg(species, callback, x, y, subpriority, personality, FALSE); } -u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg) +u8 CreateMonIconIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality, bool32 isEgg) { u8 spriteId; struct MonIconSpriteTemplate iconTemplate = @@ -179,11 +179,11 @@ u8 CreateMonIconIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 } -u8 CreateMonIconNoPersonality(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) +u8 CreateMonIconNoPersonality(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) { return CreateMonIconNoPersonalityIsEgg(species, callback, x, y, subpriority, FALSE); } -u8 CreateMonIconNoPersonalityIsEgg(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 isEgg) +u8 CreateMonIconNoPersonalityIsEgg(enum Species species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, bool32 isEgg) { u8 spriteId; struct MonIconSpriteTemplate iconTemplate = @@ -204,7 +204,7 @@ u8 CreateMonIconNoPersonalityIsEgg(u16 species, void (*callback)(struct Sprite * return spriteId; } -u16 GetIconSpecies(u16 species, u32 personality) +enum Species GetIconSpecies(enum Species species, u32 personality) { species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) @@ -220,7 +220,7 @@ u16 GetUnownLetterByPersonality(u32 personality) return GET_UNOWN_LETTER(personality); } -u16 GetIconSpeciesNoPersonality(u16 species) +enum Species GetIconSpeciesNoPersonality(enum Species species) { species = SanitizeSpeciesId(species); @@ -229,12 +229,12 @@ u16 GetIconSpeciesNoPersonality(u16 species) return GetIconSpecies(species, 0); } -const u8 *GetMonIconPtr(u16 species, u32 personality) +const u8 *GetMonIconPtr(enum Species species, u32 personality) { return GetMonIconPtrIsEgg(species, personality, FALSE); } -const u8 *GetMonIconPtrIsEgg(u16 species, u32 personality, bool32 isEgg) +const u8 *GetMonIconPtrIsEgg(enum Species species, u32 personality, bool32 isEgg) { return GetMonIconTilesIsEgg(GetIconSpecies(species, personality), personality, isEgg); } @@ -252,7 +252,7 @@ void LoadMonIconPalettes(void) } // unused -void SafeLoadMonIconPalette(u16 species) +void SafeLoadMonIconPalette(enum Species species) { u8 palIndex; palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; @@ -260,14 +260,14 @@ void SafeLoadMonIconPalette(u16 species) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); } -void LoadMonIconPalette(u16 species) +void LoadMonIconPalette(enum Species species) { u8 palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); } -void LoadMonIconPalettePersonality(u16 species, u32 personality) +void LoadMonIconPalettePersonality(enum Species species, u32 personality) { u8 palIndex; species = SanitizeSpeciesId(species); @@ -289,14 +289,14 @@ void FreeMonIconPalettes(void) } // unused -void SafeFreeMonIconPalette(u16 species) +void SafeFreeMonIconPalette(enum Species species) { u8 palIndex; palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; FreeSpritePaletteByTag(gMonIconPaletteTable[palIndex].tag); } -void FreeMonIconPalette(u16 species) +void FreeMonIconPalette(enum Species species) { u8 palIndex; palIndex = gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; @@ -308,12 +308,12 @@ void SpriteCB_MonIcon(struct Sprite *sprite) UpdateMonIconFrame(sprite); } -const u8 *GetMonIconTiles(u16 species, u32 personality) +const u8 *GetMonIconTiles(enum Species species, u32 personality) { return GetMonIconTilesIsEgg(species, personality, FALSE); } -const u8 *GetMonIconTilesIsEgg(u16 species, u32 personality, bool32 isEgg) +const u8 *GetMonIconTilesIsEgg(enum Species species, u32 personality, bool32 isEgg) { const u8 *iconSprite; @@ -356,17 +356,17 @@ void TryLoadAllMonIconPalettesAtOffset(u16 offset) } } -u8 GetValidMonIconPalIndex(u16 species) +u8 GetValidMonIconPalIndex(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; } -u8 GetMonIconPaletteIndexFromSpecies(u16 species) +u8 GetMonIconPaletteIndexFromSpecies(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex; } -const u16 *GetValidMonIconPalettePtr(u16 species) +const u16 *GetValidMonIconPalettePtr(enum Species species) { return gMonIconPaletteTable[gSpeciesInfo[SanitizeSpeciesId(species)].iconPalIndex].data; } diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index a146f2d333..7b103c8b95 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -272,7 +272,7 @@ static void InitGame(struct PokemonJump *); static void ResetForNewGame(struct PokemonJump *); static void InitPlayerAndJumpTypes(void); static void ResetPlayersForNewGame(void); -static s16 GetSpeciesPokemonJumpType(u16 species); +static s16 GetSpeciesPokemonJumpType(enum Species species); static void InitJumpMonInfo(struct PokemonJump_MonInfo *, struct Pokemon *); static void CB2_PokemonJump(void); static void Task_StartPokemonJump(u8); @@ -520,7 +520,7 @@ static void ResetPlayersForNewGame(void) } } -static s16 GetSpeciesPokemonJumpType(u16 species) +static s16 GetSpeciesPokemonJumpType(enum Species species) { return gSpeciesInfo[SanitizeSpeciesId(species)].pokemonJumpType; } @@ -2214,7 +2214,7 @@ static u8 *GetPokeJumpPlayerName(u8 multiplayerId) return sPokemonJump->players[multiplayerId].name; } -bool32 IsSpeciesAllowedInPokemonJump(u16 species) +bool32 IsSpeciesAllowedInPokemonJump(enum Species species) { return GetSpeciesPokemonJumpType(species) != PKMN_JUMP_TYPE_NONE; } @@ -2227,7 +2227,7 @@ void IsPokemonJumpSpeciesInParty(void) { if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES)) { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); if (IsSpeciesAllowedInPokemonJump(species)) { gSpecialVar_Result = TRUE; diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index ca13e3ede4..7db1eb30ba 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -85,7 +85,7 @@ static u8 TranslateBigMonSizeTableIndex(u16 a) return i; } -static u32 GetMonSize(u16 species, u16 b) +static u32 GetMonSize(enum Species species, u16 b) { u64 unk2; u64 unk4; @@ -124,7 +124,7 @@ static u8* ReturnHeightStringNoWhitespace(u32 size) return heightStr; } -static u8 CompareMonSize(u16 species, u16 *sizeRecord) +static u8 CompareMonSize(enum Species species, u16 *sizeRecord) { if (gSpecialVar_Result == 0xFF) { @@ -159,7 +159,7 @@ static u8 CompareMonSize(u16 species, u16 *sizeRecord) } // Stores species name in gStringVar1, trainer's name in gStringVar2, and size in gStringVar3 -static void GetMonSizeRecordInfo(u16 species, u16 *sizeRecord) +static void GetMonSizeRecordInfo(enum Species species, u16 *sizeRecord) { u32 size = GetMonSize(species, *sizeRecord); diff --git a/src/pokemon_sprite_visualizer.c b/src/pokemon_sprite_visualizer.c index eac5c20c57..1162eeb09f 100644 --- a/src/pokemon_sprite_visualizer.c +++ b/src/pokemon_sprite_visualizer.c @@ -519,7 +519,7 @@ static void PrintInstructionsOnWindow(struct PokemonSpriteVisualizer *data) { u8 fontId = FONT_SMALL; u8 x = 2; - u16 species = data->modifyArrows.currValue; + enum Species species = data->modifyArrows.currValue; u8 textBottom[] = _("BACK:\nFRONT:\nBG:$"); u8 textBottomForms[] = _("BACK:\nFRONT:\nBG:\nFORMS:$"); @@ -575,7 +575,7 @@ static void SetStructPtr(u8 taskId, void *ptr) static void PrintDigitChars(struct PokemonSpriteVisualizer *data) { s32 i; - u16 species = data->modifyArrows.currValue; + enum Species species = data->modifyArrows.currValue; u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 8]; for (i = 0; i < data->modifyArrows.maxDigits; i++) @@ -782,7 +782,7 @@ static void UpdateBattlerValue(struct PokemonSpriteVisualizer *data) } } -static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bool8 isShiny, enum BattlerId battler) +static void BattleLoadOpponentMonSpriteGfxCustom(enum Species species, bool8 isFemale, bool8 isShiny, enum BattlerId battler) { const u16 *palette = GetMonSpritePalFromSpecies(species, isShiny, isFemale); u16 paletteOffset = OBJ_PLTT_ID(battler); @@ -793,7 +793,7 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo static void SetConstSpriteValues(struct PokemonSpriteVisualizer *data) { - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); data->constSpriteValues.frontPicCoords = gSpeciesInfo[species].frontPicYOffset; data->constSpriteValues.frontElevation = gSpeciesInfo[species].enemyMonElevation; data->constSpriteValues.backPicCoords = gSpeciesInfo[species].backPicYOffset; @@ -810,7 +810,7 @@ static void ResetShadowSettings(struct PokemonSpriteVisualizer *data) { if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE) return; - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); data->shadowSettings.definedX = gSpeciesInfo[species].enemyShadowXOffset; data->shadowSettings.definedY = gSpeciesInfo[species].enemyShadowYOffset; data->shadowSettings.definedSize = gSpeciesInfo[species].enemyShadowSize; @@ -820,7 +820,7 @@ static void ResetShadowSettings(struct PokemonSpriteVisualizer *data) data->shadowSettings.overrideSize = data->shadowSettings.definedSize; } -static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 offset_elevation) +static u8 GetBattlerSpriteFinal_YCustom(enum Species species, s8 offset_picCoords, s8 offset_elevation) { u16 offset; u8 y; @@ -910,7 +910,7 @@ static void SpriteCB_Follower(struct Sprite *sprite) static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer *data) { bool8 invisible = FALSE; - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { @@ -1040,7 +1040,7 @@ static void DrawFollowerSprite(struct PokemonSpriteVisualizer *data) if (!OW_POKEMON_OBJECT_EVENTS) return; - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); u16 graphicsId = species + OBJ_EVENT_MON; if (data->isShiny) graphicsId += OBJ_EVENT_MON_SHINY; @@ -1211,7 +1211,7 @@ void CB2_Pokemon_Sprite_Visualizer(void) u8 taskId; const u16 *palette; struct PokemonSpriteVisualizer *data; - u16 species; + enum Species species; s16 offset_y; u8 front_x = sBattlerCoords[0][1].x; u8 front_y; @@ -1385,7 +1385,7 @@ static void ResetBGs_PokemonSpriteVisualizer(u16 a) static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data) { - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); //Back gSprites[data->backspriteId].y = VISUALIZER_MON_BACK_Y + gSpeciesInfo[species].backPicYOffset + data->offsetsSpriteValues.offset_back_picCoords; //Front @@ -1398,7 +1398,7 @@ static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data) static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) { struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); u8 option = data->submenuYpos[1]; switch (option) @@ -1483,7 +1483,7 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment) static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) { struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); u8 option = data->submenuYpos[2]; s8 offset; u8 y; @@ -1703,7 +1703,7 @@ static void OpenSubmenu(u32 submenu, u8 taskId) static void HandleInput_PokemonSpriteVisualizer(u8 taskId) { struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); struct Sprite *Frontsprite = &gSprites[data->frontspriteId]; struct Sprite *Backsprite = &gSprites[data->backspriteId]; @@ -1987,7 +1987,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId) static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data) { const u16 *palette; - u16 species = SanitizeSpeciesId(data->currentmonId); + enum Species species = SanitizeSpeciesId(data->currentmonId); s16 offset_y; u8 front_x = sBattlerCoords[0][1].x; u8 front_y; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index 63df3761b0..1ad969c331 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -443,8 +443,8 @@ struct PokemonStorageSystemData struct Sprite **shiftMonSpritePtr; struct Sprite **releaseMonSpritePtr; u16 numIconsPerSpecies[MAX_MON_ICONS]; - u16 iconSpeciesList[MAX_MON_ICONS]; - u16 boxSpecies[IN_BOX_COUNT]; + enum Species iconSpeciesList[MAX_MON_ICONS]; + enum Species boxSpecies[IN_BOX_COUNT]; u32 boxPersonalities[IN_BOX_COUNT]; bool8 boxIsEgg[IN_BOX_COUNT]; u8 incomingBoxId; @@ -480,7 +480,7 @@ struct PokemonStorageSystemData u8 cursorPalNums[2]; const u16 *displayMonPalette; u32 displayMonPersonality; - u16 displayMonSpecies; + enum Species displayMonSpecies; u16 displayMonItemId; u16 displayUnusedVar; bool8 setMosaic; @@ -633,7 +633,7 @@ static void ReshowReleaseMon(void); static bool8 ResetReleaseMonSpritePtr(void); static void SetMovingMonPriority(u8); static void SpriteCB_HeldMon(struct Sprite *); -static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority, bool32 isEgg); +static struct Sprite *CreateMonIconSprite(enum Species species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority, bool32 isEgg); static void DestroyBoxMonIcon(struct Sprite *); // Pokémon data @@ -837,7 +837,7 @@ static bool8 IsDisplayMosaicActive(void); static void ShowYesNoWindow(s8); static void UpdateCloseBoxButtonTilemap(bool8); static void PrintMessage(u8 id); -static void LoadDisplayMonGfx(u16 species, u32 pid, bool32 isEgg); +static void LoadDisplayMonGfx(enum Species species, u32 pid, bool32 isEgg); static void SpriteCB_DisplayMonMosaic(struct Sprite *); static void SetPartySlotTilemap(u8, bool8); @@ -3994,7 +3994,7 @@ static void CreateDisplayMonSprite(void) } } -static void LoadDisplayMonGfx(u16 species, u32 pid, bool32 isEgg) +static void LoadDisplayMonGfx(enum Species species, u32 pid, bool32 isEgg) { if (sStorage->displayMonSprite == NULL) return; @@ -4451,7 +4451,7 @@ static u8 GetMonIconPriorityByCursorPos(void) static void CreateMovingMonIcon(void) { u32 personality = GetMonData(&sStorage->movingMon, MON_DATA_PERSONALITY); - u16 species = GetMonData(&sStorage->movingMon, MON_DATA_SPECIES); + enum Species species = GetMonData(&sStorage->movingMon, MON_DATA_SPECIES); u8 priority = GetMonIconPriorityByCursorPos(); bool32 isEgg = GetMonData(&sStorage->movingMon, MON_DATA_IS_EGG); @@ -4474,7 +4474,7 @@ static void InitBoxMonSprites(u8 boxId) { u8 boxPosition; u16 i, j, count; - u16 species; + enum Species species; u32 personality; count = 0; @@ -4507,7 +4507,7 @@ static void InitBoxMonSprites(u8 boxId) static void CreateBoxMonIconAtPos(u8 boxPosition) { - u16 species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES); + enum Species species = GetCurrentBoxMonData(boxPosition, MON_DATA_SPECIES); bool32 isEgg = GetCurrentBoxMonData(boxPosition, MON_DATA_IS_EGG); if (species != SPECIES_NONE) @@ -4744,7 +4744,7 @@ static void SetBoxMonIconObjMode(u8 boxPosition, u8 objMode) static void CreatePartyMonsSprites(bool8 visible) { u16 i, count; - u16 species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES); + enum Species species = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES); bool32 isEgg = GetMonData(&gPlayerParty[0], MON_DATA_IS_EGG); u32 personality = GetMonData(&gPlayerParty[0], MON_DATA_PERSONALITY); @@ -5103,7 +5103,7 @@ static void SpriteCB_HeldMon(struct Sprite *sprite) sprite->y = sStorage->cursorSprite->y + sStorage->cursorSprite->y2 + 4; } -static u16 TryLoadMonIconTiles(u16 species, u32 personality, bool32 isEgg) +static u16 TryLoadMonIconTiles(enum Species species, u32 personality, bool32 isEgg) { u16 i, offset; @@ -5145,7 +5145,7 @@ static u16 TryLoadMonIconTiles(u16 species, u32 personality, bool32 isEgg) return offset; } -static void RemoveSpeciesFromIconList(u16 species) +static void RemoveSpeciesFromIconList(enum Species species) { u16 i; bool8 hasFemale = FALSE; @@ -5170,7 +5170,7 @@ static void RemoveSpeciesFromIconList(u16 species) } } -static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority, bool32 isEgg) +static struct Sprite *CreateMonIconSprite(enum Species species, u32 personality, s16 x, s16 y, u8 oamPriority, u8 subpriority, bool32 isEgg) { u16 tileNum; u8 spriteId; @@ -6806,7 +6806,7 @@ s16 CompactPartySlots(void) for (i = 0, last = 0; i < PARTY_SIZE; i++) { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); + enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); if (species != SPECIES_NONE) { if (i != last) @@ -7723,7 +7723,7 @@ static u8 SetSelectionMenuTexts(void) static bool8 SetMenuTexts_Mon(void) { - u16 species = GetSpeciesAtCursorPosition(); + enum Species species = GetSpeciesAtCursorPosition(); switch (sStorage->boxOption) { @@ -8540,7 +8540,7 @@ static void MultiMove_DeselectRow(u8 row, u8 minColumn, u8 maxColumn) static void MultiMove_SetIconToBg(u8 x, u8 y) { u8 position = x + (IN_BOX_COLUMNS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES); + enum Species species = GetCurrentBoxMonData(position, MON_DATA_SPECIES); u32 personality = GetCurrentBoxMonData(position, MON_DATA_PERSONALITY); bool32 isEgg = GetCurrentBoxMonData(position, MON_DATA_IS_EGG); @@ -8566,7 +8566,7 @@ static void MultiMove_SetIconToBg(u8 x, u8 y) static void MultiMove_ClearIconFromBg(u8 x, u8 y) { u8 position = x + (IN_BOX_COLUMNS * y); - u16 species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG); + enum Species species = GetCurrentBoxMonData(position, MON_DATA_SPECIES_OR_EGG); if (species != SPECIES_NONE) { @@ -10054,8 +10054,8 @@ static void TilemapUtil_Draw(u8 id) void UpdateSpeciesSpritePSS(struct BoxPokemon *boxMon) { - u16 species = GetBoxMonData(boxMon, MON_DATA_SPECIES); - bool8 isShiny = GetBoxMonData(boxMon, MON_DATA_IS_SHINY); + enum Species species = GetBoxMonData(boxMon, MON_DATA_SPECIES); + bool32 isShiny = GetBoxMonData(boxMon, MON_DATA_IS_SHINY); u32 pid = GetBoxMonData(boxMon, MON_DATA_PERSONALITY); bool32 isEgg = GetBoxMonData(boxMon, MON_DATA_IS_EGG); diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index b42e43611b..97ddad8716 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -133,8 +133,8 @@ static EWRAM_DATA struct PokemonSummaryScreenData /*0x0C*/ struct Pokemon currentMon; /*0x70*/ struct PokeSummary { - u16 species; // 0x0 - u16 species2; // 0x2 + enum Species species; // 0x0 + enum Species species2; // 0x2 u8 isEgg:1; // 0x4 u8 isShiny:1; u8 padding:6; @@ -247,7 +247,7 @@ static void ResetWindows(void); static void PrintMonInfo(void); static void PrintNotEggInfo(void); static void PrintEggInfo(void); -static void PrintGenderSymbol(struct Pokemon *, u16); +static void PrintGenderSymbol(struct Pokemon *, enum Species); static void PrintPageNamesAndStats(void); static void PutPageWindowTilemaps(u8); static void ClearPageWindowTilemaps(u8); @@ -3346,7 +3346,7 @@ static void PrintEggInfo(void) ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_SPECIES); } -static void PrintGenderSymbol(struct Pokemon *mon, u16 species) +static void PrintGenderSymbol(struct Pokemon *mon, enum Species species) { if (species != SPECIES_NIDORAN_M && species != SPECIES_NIDORAN_F) { diff --git a/src/pokenav_conditions.c b/src/pokenav_conditions.c index c110c3fdd4..056357710d 100644 --- a/src/pokenav_conditions.c +++ b/src/pokenav_conditions.c @@ -536,7 +536,7 @@ static void ConditionGraphDrawMonPic(s16 listId, u8 loadId) u32 boxId = monListPtr->monData[listId].boxId; u32 monId = monListPtr->monData[listId].monId; - u32 species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); + enum Species species = GetBoxOrPartyMonData(boxId, monId, MON_DATA_SPECIES, NULL); bool32 isShiny = GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_SHINY, NULL); u32 personality = GetBoxOrPartyMonData(boxId, monId, MON_DATA_PERSONALITY, NULL); bool32 isEgg = GetBoxOrPartyMonData(boxId, monId, MON_DATA_IS_EGG, NULL); diff --git a/src/pokenav_ribbons_summary.c b/src/pokenav_ribbons_summary.c index 182949d73b..142e861c7c 100644 --- a/src/pokenav_ribbons_summary.c +++ b/src/pokenav_ribbons_summary.c @@ -403,7 +403,7 @@ static void GetMonNicknameLevelGender(u8 *nick, u8 *level, u8 *gender) StringGet_Nickname(nick); } -static void GetMonSpeciesPersonalityShiny(u16 *species, u32 *personality, bool8 *isShiny) +static void GetMonSpeciesPersonalityShiny(enum Species *species, u32 *personality, bool32 *isShiny) { struct Pokenav_RibbonsSummaryList *list = GetSubstructPtr(POKENAV_SUBSTRUCT_RIBBONS_SUMMARY_LIST); struct PokenavMonList *mons = list->monList; @@ -946,9 +946,9 @@ static void PrintRibbonsMonListIndex(struct Pokenav_RibbonsSummaryMenu *menu) static void ResetSpritesAndDrawMonFrontPic(struct Pokenav_RibbonsSummaryMenu *menu) { - u16 species; + enum Species species; u32 personality; - bool8 isShiny; + bool32 isShiny; GetMonSpeciesPersonalityShiny(&species, &personality, &isShiny); ResetAllPicSprites(); @@ -966,9 +966,10 @@ static void DestroyRibbonsMonFrontPic(struct Pokenav_RibbonsSummaryMenu *menu) // x is given as either MON_SPRITE_X_ON or MON_SPRITE_X_OFF (but ignored and MON_SPRITE_X_ON is used) static u16 DrawRibbonsMonFrontPic(s32 x, s32 y) { - u16 species, spriteId; + enum Species species; + u16 spriteId; u32 personality; - bool8 isShiny; + bool32 isShiny; GetMonSpeciesPersonalityShiny(&species, &personality, &isShiny); spriteId = CreateMonPicSprite(species, isShiny, personality, TRUE, MON_SPRITE_X_ON, MON_SPRITE_Y, 15, TAG_NONE); diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 29609dc23a..c52fe8c626 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -136,7 +136,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void) case 19: { enum BattlerId opponentBattler; - u16 species; + enum Species species; LoadAndCreateEnemyShadowSprites(); @@ -316,7 +316,7 @@ void CreateBattlerSprite(enum BattlerId battler) return; if (gBattleScripting.monCaught) // Don't create opponent sprite if it has been caught. return; - u32 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); SetMultiuseSpriteTemplateToPokemon(species, position); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); @@ -353,7 +353,7 @@ void CreateBattlerSprite(enum BattlerId battler) struct Pokemon *mon = GetBattlerMon(battler); if (!IsValidForBattle(mon)) return; - u32 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); SetMultiuseSpriteTemplateToPokemon(species, position); gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2), posY, GetBattlerSpriteSubpriority(battler)); diff --git a/src/roamer.c b/src/roamer.c index 2dce1dc5ed..44ff88d810 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -98,7 +98,7 @@ void MoveAllRoamers(void) RoamerMove(i); } -static void CreateInitialRoamerMon(u8 index, u16 species, u8 level) +static void CreateInitialRoamerMon(u8 index, enum Species species, u8 level) { ClearRoamerLocationHistory(index); u32 personality = GetMonPersonality(species, @@ -137,7 +137,7 @@ static u8 GetFirstInactiveRoamerIndex(void) return ROAMER_COUNT; } -bool8 TryAddRoamer(u16 species, u8 level) +bool8 TryAddRoamer(enum Species species, u8 level) { u8 index = GetFirstInactiveRoamerIndex(); diff --git a/src/scrcmd.c b/src/scrcmd.c index ce22da1985..f95f7b0952 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1999,7 +1999,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx) bool8 ScrCmd_showmonpic(struct ScriptContext *ctx) { - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); u8 x = ScriptReadByte(ctx); u8 y = ScriptReadByte(ctx); @@ -2116,7 +2116,7 @@ bool8 ScrCmd_vmessage(struct ScriptContext *ctx) bool8 ScrCmd_bufferspeciesname(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 species = VarGet(ScriptReadHalfword(ctx)) & OBJ_EVENT_MON_SPECIES_MASK; // ignore possible shiny / form bits + enum Species species = VarGet(ScriptReadHalfword(ctx)) & OBJ_EVENT_MON_SPECIES_MASK; // ignore possible shiny / form bits Script_RequestEffects(SCREFF_V1); @@ -2132,7 +2132,7 @@ bool8 ScrCmd_bufferleadmonspeciesname(struct ScriptContext *ctx) u8 *dest = sScriptStringVars[stringVarIndex]; u8 partyIndex = GetLeadMonIndex(); - u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES); + enum Species species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES); StringCopy(dest, GetSpeciesName(species)); return FALSE; } @@ -2285,7 +2285,7 @@ bool8 ScrCmd_bufferboxname(struct ScriptContext *ctx) bool8 ScrCmd_giveegg(struct ScriptContext *ctx) { - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -2320,7 +2320,7 @@ bool8 ScrCmd_checkfieldmove(struct ScriptContext *ctx) move = FieldMove_GetMoveId(fieldMove); for (u32 i = 0; i < PARTY_SIZE; i++) { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); + enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); if (!species) break; if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && MonKnowsMove(&gPlayerParty[i], move) == TRUE) @@ -2515,10 +2515,10 @@ bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx) bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx) { - u16 species = ScriptReadHalfword(ctx); + enum Species species = ScriptReadHalfword(ctx); u8 level = ScriptReadByte(ctx); enum Item item = ScriptReadHalfword(ctx); - u16 species2 = ScriptReadHalfword(ctx); + enum Species species2 = ScriptReadHalfword(ctx); u8 level2 = ScriptReadByte(ctx); enum Item item2 = ScriptReadHalfword(ctx); @@ -2716,7 +2716,7 @@ bool8 ScrCmd_checkplayergender(struct ScriptContext *ctx) bool8 ScrCmd_playmoncry(struct ScriptContext *ctx) { - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); u16 mode = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_HARDWARE); @@ -3138,7 +3138,7 @@ bool8 Scrcmd_getsetpokedexflag(struct ScriptContext *ctx) bool8 Scrcmd_checkspecies(struct ScriptContext *ctx) { - u32 givenSpecies = VarGet(ScriptReadHalfword(ctx)); + enum Species givenSpecies = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -3149,7 +3149,7 @@ bool8 Scrcmd_checkspecies(struct ScriptContext *ctx) bool8 Scrcmd_checkspecies_choose(struct ScriptContext *ctx) { - u32 givenSpecies = VarGet(ScriptReadHalfword(ctx)); + enum Species givenSpecies = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); diff --git a/src/script_menu.c b/src/script_menu.c index 3e8230db30..07be9c4967 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -966,7 +966,7 @@ static void Task_PokemonPicWindow(u8 taskId) } } -bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y) +bool8 ScriptMenu_ShowPokemonPic(enum Species species, u8 x, u8 y) { u8 taskId; u8 spriteId; diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index d864595d09..342bc32d33 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -63,7 +63,7 @@ static void HealPlayerBoxes(void) } } -u8 ScriptGiveEgg(u16 species) +u8 ScriptGiveEgg(enum Species species) { struct Pokemon mon; u8 isEgg; @@ -97,7 +97,7 @@ static bool32 CheckPartyMonHasHeldItem(enum Item item) for (i = 0; i < PARTY_SIZE; i++) { - u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES_OR_EGG); if (species != SPECIES_NONE && species != SPECIES_EGG && GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM) == item) return TRUE; } @@ -113,7 +113,7 @@ bool8 DoesPartyHaveEnigmaBerry(void) return hasItem; } -void CreateScriptedWildMon(u16 species, u8 level, enum Item item) +void CreateScriptedWildMon(enum Species species, u8 level, enum Item item) { u8 heldItem[2]; @@ -131,7 +131,7 @@ void CreateScriptedWildMon(u16 species, u8 level, enum Item item) SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem); } } -void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 species2, u8 level2, enum Item item2) +void CreateScriptedDoubleWildMon(enum Species species1, u8 level1, enum Item item1, enum Species species2, u8 level2, enum Item item2) { u8 heldItem1[2]; u8 heldItem2[2]; @@ -358,7 +358,7 @@ void SetTeraType(struct ScriptContext *ctx) * if side/slot are assigned, it will create the mon at the assigned party location * if slot == PARTY_SIZE, it will give the mon to first available party or storage slot */ -static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, enum Item item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u16 *evs, u16 *ivs, enum Move *moves, enum ShinyMode shinyMode, bool8 gmaxFactor, enum Type teraType, u8 dmaxLevel) +static u32 ScriptGiveMonParameterized(u8 side, u8 slot, enum Species species, u8 level, enum Item item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u16 *evs, u16 *ivs, enum Move *moves, enum ShinyMode shinyMode, bool8 gmaxFactor, enum Type teraType, u8 dmaxLevel) { struct Pokemon mon; u32 i; @@ -473,7 +473,7 @@ static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, e return MON_GIVEN_TO_PARTY; } -u32 ScriptGiveMon(u16 species, u8 level, enum Item item) +u32 ScriptGiveMon(enum Species species, u8 level, enum Item item) { struct Pokemon mon; u8 heldItem[2]; @@ -513,7 +513,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx) { u8 side = ScriptReadByte(ctx); u8 slot = ScriptReadByte(ctx); - u16 species = VarGet(ScriptReadHalfword(ctx)); + enum Species species = VarGet(ScriptReadHalfword(ctx)); u8 level = VarGet(ScriptReadHalfword(ctx)); u32 flags = ScriptReadWord(ctx); @@ -652,7 +652,7 @@ void Script_SetStatus1(struct ScriptContext *ctx) if (slot >= PARTY_SIZE) { - u16 species; + enum Species species; for (slot = 0; slot < PARTY_SIZE; slot++) { diff --git a/src/sound.c b/src/sound.c index 4bc8505919..a52f427b6c 100644 --- a/src/sound.c +++ b/src/sound.c @@ -310,7 +310,7 @@ bool8 IsBGMStopped(void) return FALSE; } -void PlayCry_Normal(u16 species, s8 pan) +void PlayCry_Normal(enum Species species, s8 pan) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85); PlayCryInternal(species, pan, CRY_VOLUME, CRY_PRIORITY_NORMAL, CRY_MODE_NORMAL); @@ -318,13 +318,13 @@ void PlayCry_Normal(u16 species, s8 pan) RestoreBGMVolumeAfterPokemonCry(); } -void PlayCry_NormalNoDucking(u16 species, s8 pan, s8 volume, u8 priority) +void PlayCry_NormalNoDucking(enum Species species, s8 pan, s8 volume, u8 priority) { PlayCryInternal(species, pan, volume, priority, CRY_MODE_NORMAL); } // Assuming it's not CRY_MODE_DOUBLES, this is equivalent to PlayCry_Normal except it allows other modes. -void PlayCry_ByMode(u16 species, s8 pan, u8 mode) +void PlayCry_ByMode(enum Species species, s8 pan, u8 mode) { if (mode == CRY_MODE_DOUBLES) { @@ -340,7 +340,7 @@ void PlayCry_ByMode(u16 species, s8 pan, u8 mode) } // Used when releasing multiple Pokémon at once in battle. -void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode) +void PlayCry_ReleaseDouble(enum Species species, s8 pan, u8 mode) { if (mode == CRY_MODE_DOUBLES) { @@ -355,7 +355,7 @@ void PlayCry_ReleaseDouble(u16 species, s8 pan, u8 mode) } // Duck the BGM but don't restore it. Not present in R/S -void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode) +void PlayCry_DuckNoRestore(enum Species species, s8 pan, u8 mode) { if (mode == CRY_MODE_DOUBLES) { @@ -369,7 +369,7 @@ void PlayCry_DuckNoRestore(u16 species, s8 pan, u8 mode) } } -void PlayCry_Script(u16 species, u8 mode) +void PlayCry_Script(enum Species species, u8 mode) { m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 85); PlayCryInternal(species, 0, CRY_VOLUME, CRY_PRIORITY_NORMAL, mode); @@ -377,7 +377,7 @@ void PlayCry_Script(u16 species, u8 mode) RestoreBGMVolumeAfterPokemonCry(); } -void PlayCryInternal(u16 species, s8 pan, s8 volume, u8 priority, u8 mode) +void PlayCryInternal(enum Species species, s8 pan, s8 volume, u8 priority, u8 mode) { bool32 reverse; u32 release; diff --git a/src/starter_choose.c b/src/starter_choose.c index 123defed23..7b3b66fe7f 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -44,7 +44,7 @@ static void Task_DeclineStarter(u8 taskId); static void Task_MoveStarterChooseCursor(u8 taskId); static void Task_CreateStarterLabel(u8 taskId); static void CreateStarterPokemonLabel(u8 selection); -static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y); +static u8 CreatePokemonFrontSprite(enum Species species, u8 x, u8 y); static void SpriteCB_SelectionHand(struct Sprite *sprite); static void SpriteCB_Pokeball(struct Sprite *sprite); static void SpriteCB_StarterPokemon(struct Sprite *sprite); @@ -574,7 +574,7 @@ static void CreateStarterPokemonLabel(u8 selection) s32 width; u8 labelLeft, labelRight, labelTop, labelBottom; - u16 species = GetStarterPokemon(selection); + enum Species species = GetStarterPokemon(selection); CopyMonCategoryText(species, categoryText); speciesName = GetSpeciesName(species); @@ -625,7 +625,7 @@ static void Task_CreateStarterLabel(u8 taskId) gTasks[taskId].func = Task_HandleStarterChooseInput; } -static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) +static u8 CreatePokemonFrontSprite(enum Species species, u8 x, u8 y) { u8 spriteId; diff --git a/src/trade.c b/src/trade.c index 350c8d28c3..514ae2250b 100644 --- a/src/trade.c +++ b/src/trade.c @@ -150,7 +150,7 @@ enum SignalStatus { struct InGameTrade { u8 nickname[POKEMON_NAME_LENGTH + 1]; - u16 species; + enum Species species; u8 ivs[NUM_STATS]; u8 abilityNum; u32 otId; @@ -161,7 +161,7 @@ struct InGameTrade { u8 otName[TRAINER_NAME_LENGTH + 1]; u8 otGender; u8 sheen; - u16 requestedSpecies; + enum Species requestedSpecies; }; static EWRAM_DATA u8 *sMenuTextTileBuffer = NULL; @@ -247,7 +247,7 @@ static EWRAM_DATA struct { u16 gbaScale; u16 alpha; bool8 isLinkTrade; - u16 monSpecies[2]; + enum Species monSpecies[2]; u16 cachedMapMusic; u8 textColors[3]; u8 filler_F9; @@ -1157,7 +1157,7 @@ static bool8 BufferTradeParties(void) for (i = 0, mon = gEnemyParty; i < PARTY_SIZE; mon++, i++) { u8 name[POKEMON_NAME_LENGTH + 1]; - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); if (species != SPECIES_NONE) { @@ -1559,7 +1559,7 @@ static void CB_ShowTradeMonSummaryScreen(void) static u8 CheckValidityOfTradeMons(u8 *aliveMons, u8 playerPartyCount, u8 playerMonIdx, u8 partnerMonIdx) { int i; - u16 partnerSpecies; + enum Species partnerSpecies; u8 hasLiveMon = 0; // Make sure mon to be traded isn't player's last alive mon @@ -2384,8 +2384,8 @@ static u32 CanTradeSelectedMon(struct Pokemon *playerParty, int partyCount, int { int i, numMonsLeft; struct LinkPlayer *partner; - u32 species[PARTY_SIZE]; - u32 species2[PARTY_SIZE]; + enum Species species[PARTY_SIZE]; + enum Species species2[PARTY_SIZE]; for (i = 0; i < partyCount; i++) { @@ -2483,7 +2483,7 @@ s32 GetGameProgressForLinkTrade(void) return TRADE_BOTH_PLAYERS_READY; } -int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct RfuGameCompatibilityData partner, u16 playerSpecies2, u16 partnerSpecies, enum Type requestedType, u16 playerSpecies, bool8 isModernFatefulEncounter) +int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct RfuGameCompatibilityData partner, enum Species playerSpecies2, enum Species partnerSpecies, enum Type requestedType, enum Species playerSpecies, bool8 isModernFatefulEncounter) { bool8 playerHasNationalDex = player.hasNationalDex; bool8 playerCanLinkNationally = player.canLinkNationally; @@ -2545,7 +2545,7 @@ int GetUnionRoomTradeMessageId(struct RfuGameCompatibilityData player, struct Rf return UR_TRADE_MSG_NONE; } -int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, u16 species2, u16 species, bool8 isModernFatefulEncounter) +int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, enum Species species2, enum Species species, bool8 isModernFatefulEncounter) { bool8 hasNationalDex = player.hasNationalDex; @@ -2571,7 +2571,7 @@ int CanRegisterMonForTradingBoard(struct RfuGameCompatibilityData player, u16 sp int CanSpinTradeMon(struct Pokemon *mon, u16 monIdx) { int i, version, versions, canTradeAnyMon, numMonsLeft; - int speciesArray[PARTY_SIZE]; + enum Species speciesArray[PARTY_SIZE]; // Make Eggs not count for numMonsLeft for (i = 0; i < gPlayerPartyCount; i++) @@ -2766,7 +2766,8 @@ static u32 TradeGetMultiplayerId(void) static void LoadTradeMonPic(struct Pokemon *mon, u8 state) { - u32 species, personality; + enum Species species; + u32 personality; u32 whichParty = state / 2; species = GetMonData(mon, MON_DATA_SPECIES_OR_EGG); switch (state % 2) @@ -3061,7 +3062,7 @@ static void UpdatePokedexForReceivedMon(u8 partyIdx) if (!GetMonData(mon, MON_DATA_IS_EGG)) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u32 personality = GetMonData(mon, MON_DATA_PERSONALITY); enum NationalDexOrder dexNum = SpeciesToNationalPokedexNum(species); GetSetPokedexFlag(dexNum, FLAG_SET_SEEN); @@ -4625,12 +4626,12 @@ static void GetInGameTradeMail(struct Mail *mail, const struct InGameTrade *trad mail->itemId = trade->heldItem; } -u16 GetTradeSpecies(void) +enum Species GetTradeSpecies(void) { struct BoxPokemon *boxmon = GetSelectedBoxMonFromPcOrParty(); if (GetBoxMonData(boxmon, MON_DATA_IS_EGG)) return SPECIES_NONE; - u32 species = GetBoxMonData(boxmon, MON_DATA_SPECIES); + enum Species species = GetBoxMonData(boxmon, MON_DATA_SPECIES); return species; } diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 12fa797d3d..5c1a0dfeb4 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -962,7 +962,7 @@ u8 GetTrainerEncounterMusicIdInTrainerHill(u16 trainerId) static void SetTrainerHillMonLevel(struct Pokemon *mon, u8 level) { - u16 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); u32 exp = gExperienceTables[gSpeciesInfo[species].growthRate][level]; SetMonData(mon, MON_DATA_EXP, &exp); diff --git a/src/trainer_pokemon_sprites.c b/src/trainer_pokemon_sprites.c index f097b96229..c48c388ef3 100644 --- a/src/trainer_pokemon_sprites.c +++ b/src/trainer_pokemon_sprites.c @@ -61,7 +61,7 @@ static bool16 DecompressPic(u16 picId, u32 personality, bool8 isFrontPic, u8 *de { if (!isTrainer) { - u16 species = picId; + enum Species species = picId; LoadSpecialPokePic(dest, species, personality, isFrontPic); } else @@ -175,7 +175,7 @@ static u16 CreatePicSprite(u16 species, bool8 isShiny, u32 personality, bool8 is return spriteId; } -u16 CreateMonPicSprite_Affine(u16 species, bool8 isShiny, u32 personality, u8 flags, 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) { u8 *framePics; struct SpriteFrameImage *images; @@ -302,7 +302,7 @@ static u16 CreateTrainerCardSprite(u16 species, bool8 isShiny, u32 personality, return 0xFFFF; } -u16 CreateMonPicSprite(u16 species, bool8 isShiny, u32 personality, bool8 isFrontPic, 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) { return CreatePicSprite(species, isShiny, personality, isFrontPic, x, y, paletteSlot, paletteTag, FALSE); } @@ -317,13 +317,13 @@ u16 FreeAndDestroyMonPicSpriteNoPalette(u16 spriteId) return FreeAndDestroyPicSpriteInternal(spriteId, FALSE); } -static u16 UNUSED LoadMonPicInWindow(u16 species, bool8 isShiny, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) +static u16 UNUSED LoadMonPicInWindow(enum Species species, bool8 isShiny, u32 personality, bool8 isFrontPic, u8 paletteSlot, u8 windowId) { return LoadPicSpriteInWindow(species, isShiny, personality, isFrontPic, paletteSlot, windowId, FALSE); } // Unused, FRLG only -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) { return CreateTrainerCardSprite(species, isShiny, personality, isFrontPic, destX, destY, paletteSlot, windowId, FALSE); } diff --git a/src/trainer_pools.c b/src/trainer_pools.c index 6b704f902d..3ba2f3f519 100644 --- a/src/trainer_pools.c +++ b/src/trainer_pools.c @@ -173,7 +173,7 @@ static u32 PickMonFromPool(const struct Trainer *trainer, u8 *poolIndexArray, u3 return monIndex; u32 chosenTags = trainer->party[monIndex].tags; - u16 chosenSpecies = trainer->party[monIndex].species; + enum Species chosenSpecies = trainer->party[monIndex].species; enum Item chosenItem = trainer->party[monIndex].heldItem; enum NationalDexOrder chosenNatDex = gSpeciesInfo[chosenSpecies].natDexNum; // If tag was required, change pool rule to account for the required tag already being picked @@ -201,7 +201,7 @@ static u32 PickMonFromPool(const struct Trainer *trainer, u8 *poolIndexArray, u3 if (poolIndexArray[currIndex] != POOL_SLOT_DISABLED) { u32 currentTags = trainer->party[poolIndexArray[currIndex]].tags; - u16 currentSpecies = trainer->party[poolIndexArray[currIndex]].species; + enum Species currentSpecies = trainer->party[poolIndexArray[currIndex]].species; enum Item currentItem = trainer->party[poolIndexArray[currIndex]].heldItem; enum NationalDexOrder currentNatDex = gSpeciesInfo[currentSpecies].natDexNum; if (currentTags & tagsToEliminate) diff --git a/src/trainer_slide.c b/src/trainer_slide.c index e03c72647e..c8f5841b3d 100644 --- a/src/trainer_slide.c +++ b/src/trainer_slide.c @@ -110,7 +110,7 @@ static u32 GetPartyMonCount(u32 firstId, u32 lastId, enum BattleSide side, bool3 { for (u32 i = firstId; i < lastId; i++) { - u32 species = GetMonData(&party[sMultiBattleOrder[i]], MON_DATA_SPECIES_OR_EGG); + enum Species species = GetMonData(&party[sMultiBattleOrder[i]], MON_DATA_SPECIES_OR_EGG); if (species != SPECIES_NONE && species != SPECIES_EGG && (!onlyAlive || GetMonData(&party[sMultiBattleOrder[i]], MON_DATA_HP))) @@ -123,7 +123,7 @@ static u32 GetPartyMonCount(u32 firstId, u32 lastId, enum BattleSide side, bool3 { for (u32 i = firstId; i < lastId; 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 && (!onlyAlive || GetMonData(&party[i], MON_DATA_HP))) diff --git a/src/tv.c b/src/tv.c index 8884bfd69b..ae7473a49f 100644 --- a/src/tv.c +++ b/src/tv.c @@ -66,7 +66,7 @@ enum { COMMON_DATA s8 sCurTVShowSlot = 0; static s8 sTVShowMixingCurSlot; -static EWRAM_DATA u16 sPokemonAnglerSpecies = 0; +static EWRAM_DATA enum Species sPokemonAnglerSpecies = SPECIES_NONE; static EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; static EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; static EWRAM_DATA u8 sFindThatGamerWhichGame = SLOT_MACHINE; @@ -88,7 +88,7 @@ static s8 FindFirstEmptyNormalTVShowSlot(TVShow *); static void TryReplaceOldTVShowOfKind(u8); static void InterviewBefore_BravoTrainerPkmnProfile(void); static void InterviewBefore_NameRater(void); -static u16 GetRandomDifferentSpeciesSeenByPlayer(u16); +static enum Species GetRandomDifferentSpeciesSeenByPlayer(enum Species); static void Script_FindFirstEmptyNormalTVShowSlot(void); static void CompactTVShowArray(TVShow *); static s8 GetFirstEmptyPokeNewsSlot(PokeNews *); @@ -106,7 +106,7 @@ static bool8 TryMixNormalTVShow(TVShow *, TVShow *, u8); static bool8 TryMixRecordMixTVShow(TVShow *, TVShow *, u8); static bool8 TryMixOutbreakTVShow(TVShow *, TVShow *, u8); static void DeactivateShow(u8 showIdx); -static void DeactivateShowIfNotSeenSpecies(u16, u8); +static void DeactivateShowIfNotSeenSpecies(enum Species, u8); static void SetMixedPokeNews(PokeNews[POKE_NEWS_COUNT], PokeNews[POKE_NEWS_COUNT], PokeNews[POKE_NEWS_COUNT], PokeNews[POKE_NEWS_COUNT]); static void ClearInvalidPokeNews(void); static void ClearPokeNewsIfGameNotComplete(void); @@ -189,7 +189,7 @@ static const u8 sText_Roulette[] = _("ROULETTE"); static const u8 sText_Jackpot[] = _("jackpot"); static const struct { - u16 species; + enum Species species; u16 moves[MAX_MON_MOVES]; u8 level; u8 location; @@ -1246,7 +1246,7 @@ static void InterviewAfter_ContestLiveUpdates(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) { TVShow *show; u8 name[32]; @@ -1769,7 +1769,7 @@ static void TryPutFishingAdviceOnAir(void) } } -void SetPokemonAnglerSpecies(u16 species) +void SetPokemonAnglerSpecies(enum Species species) { sPokemonAnglerSpecies = species; } @@ -2024,7 +2024,7 @@ static void SecretBaseVisit_CalculatePartyData(TVShow *show) struct { enum Move move; - u16 species; + enum Species species; u8 level; } secretBaseVisitMonsTemp[PARTY_SIZE] = {0}; @@ -2163,7 +2163,7 @@ void TryPutLotteryWinnerReportOnAir(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) { TVShow *show; u8 i; @@ -3040,17 +3040,17 @@ static void CompactTVShowArray(TVShow *shows) } } -static u16 GetRandomDifferentSpeciesAndNameSeenByPlayer(u8 varIdx, u16 excludedSpecies) +static enum Species GetRandomDifferentSpeciesAndNameSeenByPlayer(u8 varIdx, enum Species excludedSpecies) { - u16 species = GetRandomDifferentSpeciesSeenByPlayer(excludedSpecies); + enum Species species = GetRandomDifferentSpeciesSeenByPlayer(excludedSpecies); StringCopy(gTVStringVarPtrs[varIdx], GetSpeciesName(species)); return species; } -static u16 GetRandomDifferentSpeciesSeenByPlayer(u16 excludedSpecies) +static enum Species GetRandomDifferentSpeciesSeenByPlayer(enum Species excludedSpecies) { - u16 species = Random() % (NUM_SPECIES - 1) + 1; - u16 initSpecies = species; + enum Species species = Random() % (NUM_SPECIES - 1) + 1; + enum Species initSpecies = species; while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == excludedSpecies) { @@ -3148,7 +3148,7 @@ static u8 GetRandomNameRaterStateFromName(TVShow *show) return nameSum & 7; } -static void GetNicknameSubstring(u8 varIdx, u8 whichPosition, u8 charParam, u16 whichString, u16 species, TVShow *show) +static void GetNicknameSubstring(u8 varIdx, u8 whichPosition, u8 charParam, u16 whichString, enum Species species, TVShow *show) { u8 buff[16]; u8 i; @@ -3586,7 +3586,8 @@ static s8 FindInactiveShowInArray(TVShow *tvShows) static void DeactivateShowsWithUnseenSpecies(void) { u16 i; - u16 species; + enum Species species; + u16 facilityAndMode; for (i = 0; i < LAST_TVSHOW_IDX; i++) { @@ -3673,9 +3674,8 @@ static void DeactivateShowsWithUnseenSpecies(void) DeactivateShowIfNotSeenSpecies(species, i); species = (&gSaveBlock1Ptr->tvShows[i])->frontier.species2; DeactivateShowIfNotSeenSpecies(species, i); - // Species var re-used here - species = (&gSaveBlock1Ptr->tvShows[i])->frontier.facilityAndMode; - switch (species) + facilityAndMode = (&gSaveBlock1Ptr->tvShows[i])->frontier.facilityAndMode; + switch (facilityAndMode) { case FRONTIER_SHOW_TOWER_MULTIS: case FRONTIER_SHOW_TOWER_LINK_MULTIS: @@ -3732,7 +3732,7 @@ static void DeactivateShow(u8 showIdx) gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; } -static void DeactivateShowIfNotSeenSpecies(u16 species, u8 showIdx) +static void DeactivateShowIfNotSeenSpecies(enum Species species, u8 showIdx) { if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN)) gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; diff --git a/src/type_icons.c b/src/type_icons.c index c43657231c..f4acb69543 100644 --- a/src/type_icons.c +++ b/src/type_icons.c @@ -15,10 +15,10 @@ static void LoadTypeIconsPerBattler(enum BattlerId, u32); static bool32 UseDoubleBattleCoords(u32); static enum Type GetMonPublicType(enum BattlerId, u32); -static bool32 ShouldHideUncaughtType(u32 species); -static bool32 ShouldHideUnseenType(u32 species); -static enum Type GetMonDefensiveTeraType(struct Pokemon *, struct Pokemon *, enum BattlerId, u32, u32, u32); -static bool32 IsIllusionActiveAndTypeUnchanged(struct Pokemon *, u32, enum BattlerId); +static bool32 ShouldHideUncaughtType(enum Species species); +static bool32 ShouldHideUnseenType(enum Species species); +static enum Type GetMonDefensiveTeraType(struct Pokemon *, struct Pokemon *, enum BattlerId, u32, enum Species, enum Species); +static bool32 IsIllusionActiveAndTypeUnchanged(struct Pokemon *, enum Species, enum BattlerId); static void CreateSpriteFromType(u32, bool32, enum Type[], u32, enum BattlerId); static bool32 ShouldSkipSecondType(enum Type[], u32); @@ -237,7 +237,7 @@ void LoadTypeIcons(enum BattlerId battler) u32 position; struct Pokemon* mon = GetBattlerMon(battler); - u32 species = GetMonData(mon, MON_DATA_SPECIES); + enum Species species = GetMonData(mon, MON_DATA_SPECIES); if (B_SHOW_TYPES == SHOW_TYPES_NEVER || (B_SHOW_TYPES == SHOW_TYPES_SEEN && !GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN))) @@ -294,9 +294,9 @@ static bool32 UseDoubleBattleCoords(u32 position) static enum Type GetMonPublicType(enum BattlerId battlerId, u32 typeNum) { struct Pokemon *mon = GetBattlerMon(battlerId); - u32 monSpecies = GetMonData(mon,MON_DATA_SPECIES,NULL); + enum Species monSpecies = GetMonData(mon,MON_DATA_SPECIES,NULL); struct Pokemon *monIllusion; - u32 illusionSpecies; + enum Species illusionSpecies; if (ShouldHideUncaughtType(monSpecies) || ShouldHideUnseenType(monSpecies)) return TYPE_MYSTERY; @@ -313,7 +313,7 @@ static enum Type GetMonPublicType(enum BattlerId battlerId, u32 typeNum) return gBattleMons[battlerId].types[typeNum]; } -static bool32 ShouldHideUncaughtType(u32 species) +static bool32 ShouldHideUncaughtType(enum Species species) { if (B_SHOW_TYPES != SHOW_TYPES_CAUGHT) return FALSE; @@ -324,7 +324,7 @@ static bool32 ShouldHideUncaughtType(u32 species) return TRUE; } -static bool32 ShouldHideUnseenType(u32 species) +static bool32 ShouldHideUnseenType(enum Species species) { if (B_SHOW_TYPES != SHOW_TYPES_SEEN) return FALSE; @@ -335,10 +335,10 @@ static bool32 ShouldHideUnseenType(u32 species) return TRUE; } -static enum Type GetMonDefensiveTeraType(struct Pokemon *mon, struct Pokemon *monIllusion, enum BattlerId battlerId, u32 typeNum, u32 illusionSpecies, u32 monSpecies) +static enum Type GetMonDefensiveTeraType(struct Pokemon *mon, struct Pokemon *monIllusion, enum BattlerId battlerId, u32 typeNum, enum Species illusionSpecies, enum Species monSpecies) { enum Type teraType = GetBattlerTeraType(battlerId); - u32 targetSpecies; + enum Species targetSpecies; if (teraType != TYPE_STELLAR) return teraType; @@ -348,7 +348,7 @@ static enum Type GetMonDefensiveTeraType(struct Pokemon *mon, struct Pokemon *mo return GetSpeciesType(targetSpecies, typeNum); } -static bool32 IsIllusionActiveAndTypeUnchanged(struct Pokemon *monIllusion, u32 monSpecies, enum BattlerId battlerId) +static bool32 IsIllusionActiveAndTypeUnchanged(struct Pokemon *monIllusion, enum Species monSpecies, enum BattlerId battlerId) { u32 typeNum; diff --git a/src/union_room.c b/src/union_room.c index 39c83b4f7b..a6637aab74 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -204,8 +204,8 @@ static EWRAM_DATA union struct WirelessLink_URoom *uRoom; } sWirelessLinkMain = {}; EWRAM_DATA struct RfuGameCompatibilityData gRfuPartnerCompatibilityData = {}; -EWRAM_DATA u16 gUnionRoomOfferedSpecies = 0; -EWRAM_DATA enum Type gUnionRoomRequestedMonType = 0; +EWRAM_DATA enum Species gUnionRoomOfferedSpecies = SPECIES_NONE; +EWRAM_DATA enum Type gUnionRoomRequestedMonType = TYPE_NONE; static EWRAM_DATA struct UnionRoomTrade sUnionRoomTrade = {}; static struct WirelessLink_Leader *sLeader; @@ -270,7 +270,7 @@ static void GetURoomActivityRejectMsg(u8 *, s32, u32); static u32 ConvPartnerUnameAndGetWhetherMetAlready(struct RfuPlayer *); static void GetURoomActivityStartMsg(u8 *, u8); static void UR_ClearBg0(void); -static s32 IsRequestedTradeInPlayerParty(enum Type, u32); +static s32 IsRequestedTradeInPlayerParty(enum Type, enum Species); static bool32 UR_PrintFieldMessage(const u8 *); static s32 GetChatLeaderActionRequestMessage(u8 *, u32, u16 *, struct WirelessLink_URoom *); static void Task_InitUnionRoom(u8 taskId); @@ -4110,7 +4110,7 @@ static void ItemPrintFunc_EmptyList(u8 windowId, u32 itemId, u8 y) static void TradeBoardPrintItemInfo(u8 windowId, u8 y, struct RfuGameData *data, const u8 *playerName, u8 colorIdx) { u8 levelStr[4]; - u16 species = data->tradeSpecies; + enum Species species = data->tradeSpecies; enum Type type = data->tradeType; u8 level = data->tradeLevel; @@ -4181,7 +4181,7 @@ static s32 GetUnionRoomPlayerGender(s32 playerIdx, struct RfuPlayerList *list) return list->players[playerIdx].rfu.data.playerGender; } -static s32 IsRequestedTradeInPlayerParty(enum Type type, u32 species) +static s32 IsRequestedTradeInPlayerParty(enum Type type, enum Species species) { s32 i; @@ -4248,7 +4248,7 @@ static void GetURoomActivityStartMsg(u8 *dst, u8 acitivty) static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activityData, struct WirelessLink_URoom *uroom) { s32 result = 0; - u16 species = SPECIES_NONE; + enum Species species = SPECIES_NONE; s32 i; switch (activityData[0]) @@ -4380,10 +4380,10 @@ static void RegisterTradeMon(u32 monId, struct UnionRoomTrade *trade) static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade *trade, u8 multiplayerId) { u16 response = 0; - u16 species; + enum Species species; u32 personality; u32 cur_personality; - u16 cur_species; + enum Species cur_species; s32 i; if (multiplayerId == 0) diff --git a/src/wild_encounter.c b/src/wild_encounter.c index 26b796c365..115932b799 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -51,7 +51,7 @@ static void FeebasSeedRng(u16 seed); static bool8 IsWildLevelAllowedByRepel(u8 level); static void ApplyFluteEncounterRateMod(u32 *encRate); static void ApplyCleanseTagEncounterRateMod(u32 *encRate); -static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, u16 species, enum WildPokemonArea area); +static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, enum Species species, enum WildPokemonArea area); #ifdef BUGFIX static bool8 TryGetAbilityInfluencedWildMonIndex(const struct WildPokemon *wildMon, enum Type type, enum Ability ability, u8 *monIndex, u32 size); #else @@ -444,7 +444,7 @@ enum TimeOfDay GetTimeOfDayForEncounters(u32 headerId, enum WildPokemonArea area return GenConfigTimeOfDay(timeOfDay); } -static u8 PickWildMonNature(u32 species) +static u8 PickWildMonNature(enum Species species) { u8 i; struct Pokeblock *safariPokeblock; @@ -469,7 +469,7 @@ static u8 PickWildMonNature(u32 species) return GetSynchronizedNature(WILDMON_ORIGIN, species); } -void CreateWildMon(u16 species, u8 level) +void CreateWildMon(enum Species species, u8 level) { ZeroEnemyPartyMons(); u32 personality = GetMonPersonality(species, GetSynchronizedGender(WILDMON_ORIGIN, species), PickWildMonNature(species), RANDOM_UNOWN_LETTER); @@ -544,7 +544,7 @@ static bool8 TryGenerateWildMon(const struct WildPokemonInfo *wildMonInfo, enum static u16 GenerateFishingWildMon(const struct WildPokemonInfo *wildMonInfo, u8 rod) { u8 wildMonIndex = ChooseWildMonIndex_Fishing(rod); - u16 wildMonSpecies = wildMonInfo->wildPokemon[wildMonIndex].species; + enum Species wildMonSpecies = wildMonInfo->wildPokemon[wildMonIndex].species; u8 level = ChooseWildMonLevel(wildMonInfo->wildPokemon, wildMonIndex, WILD_AREA_FISHING); UpdateChainFishingStreak(); @@ -930,7 +930,7 @@ bool8 DoesCurrentMapHaveFishingMons(void) void FishingWildEncounter(u8 rod) { - u16 species; + enum Species species; u32 headerId; enum TimeOfDay timeOfDay; @@ -1110,7 +1110,7 @@ static bool8 TryGetRandomWildMonIndexByType(const struct WildPokemon *wildMon, e #include "data.h" -static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, u16 species, enum WildPokemonArea area) +static u8 GetMaxLevelOfSpeciesInWildTable(const struct WildPokemon *wildMon, enum Species species, enum WildPokemonArea area) { u8 i, maxLevel = 0, numMon = 0; diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index e144549b13..c329f53cfa 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -2034,7 +2034,7 @@ void ClearVarAfterTest(void) } } -void OpenPokemon(u32 sourceLine, enum BattleTrainer trainer, u32 species) +void OpenPokemon(u32 sourceLine, enum BattleTrainer trainer, enum Species species) { s32 i, data; u8 *partySize; @@ -2073,7 +2073,7 @@ void OpenPokemon(u32 sourceLine, enum BattleTrainer trainer, u32 species) CalculateMonStats(DATA.currentMon); } -void OpenPokemonMulti(u32 sourceLine, enum BattleTrainer trainer, u32 species) +void OpenPokemonMulti(u32 sourceLine, enum BattleTrainer trainer, enum Species species) { s32 i, data;