From be23dfdf2acb11c6bbd49a0130058eb7664dc861 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Sat, 25 Oct 2025 14:37:47 +0200 Subject: [PATCH] Even more enums and documentation (#8029) --- include/battle_ai_script_commands.h | 0 include/battle_ai_switch_items.h | 2 +- include/battle_ai_util.h | 10 ++++---- include/battle_dynamax.h | 2 +- include/battle_environment.h | 4 ++-- include/battle_hold_effects.h | 2 +- include/battle_script_commands.h | 3 +-- include/battle_util.h | 4 ++-- include/constants/pokemon.h | 22 ++++++++++-------- include/item.h | 2 +- include/pokemon.h | 6 ++--- src/battle_ai_switch_items.c | 2 +- src/battle_ai_util.c | 34 ++++++++++++++++----------- src/battle_anim_throw.c | 2 +- src/battle_debug.c | 1 + src/battle_dome.c | 3 +-- src/battle_hold_effects.c | 8 +++---- src/battle_main.c | 2 +- src/battle_script_commands.c | 36 ++++++++++++++++------------- src/battle_tower.c | 2 +- src/battle_util.c | 25 ++++++++++++-------- src/contest_ai.c | 2 +- src/contest_util.c | 2 +- src/debug.c | 2 +- src/item.c | 2 +- src/metatile_behavior.c | 2 +- src/pokedex_cry_screen.c | 2 +- src/pokemon.c | 29 +++++++++++++---------- src/pokemon_summary_screen.c | 2 +- src/save.c | 2 +- src/script_pokemon_util.c | 5 ++-- test/test_runner_battle.c | 2 ++ 32 files changed, 125 insertions(+), 99 deletions(-) delete mode 100644 include/battle_ai_script_commands.h diff --git a/include/battle_ai_script_commands.h b/include/battle_ai_script_commands.h deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index 8fcd7ba353..afc50a2364 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -45,7 +45,7 @@ void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId); void AI_TrySwitchOrUseItem(u32 battler); u32 GetMostSuitableMonToSwitchInto(u32 battler, enum SwitchType switchType); bool32 ShouldSwitch(u32 battler); -bool32 IsMonGrounded(u16 heldItemEffect, enum Ability ability, u8 type1, u8 type2); +bool32 IsMonGrounded(enum HoldEffect heldItemEffect, enum Ability ability, u8 type1, u8 type2); void ModifySwitchAfterMoveScoring(u32 battler); #endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index f175f88c40..ee6922042e 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -94,7 +94,7 @@ void RecordAllMoves(u32 battler); void RecordKnownMove(u32 battlerId, u32 move); void RecordAbilityBattle(u32 battlerId, enum Ability abilityId); void ClearBattlerAbilityHistory(u32 battlerId); -void RecordItemEffectBattle(u32 battlerId, u32 itemEffect); +void RecordItemEffectBattle(u32 battlerId, enum HoldEffect itemEffect); void ClearBattlerItemEffectHistory(u32 battlerId); void SaveBattlerData(u32 battlerId); void SetBattlerData(u32 battlerId); @@ -151,8 +151,8 @@ bool32 CanEndureHit(u32 battler, u32 battlerTarget, u32 move); // stat stage checks bool32 AnyStatIsRaised(u32 battlerId); -bool32 CanLowerStat(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData, u32 stat); -bool32 BattlerStatCanRise(u32 battler, enum Ability battlerAbility, u32 stat); +bool32 CanLowerStat(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData, enum Stat stat); +bool32 BattlerStatCanRise(u32 battler, enum Ability battlerAbility, enum Stat stat); bool32 AreBattlersStatsMaxed(u32 battler); u32 CountPositiveStatStages(u32 battlerId); u32 CountNegativeStatStages(u32 battlerId); @@ -256,7 +256,7 @@ s32 BattlerBenefitsFromAbilityScore(u32 battler, enum Ability ability, struct Ai bool32 IsTargetingPartner(u32 battlerAtk, u32 battlerDef); // IsTargetingPartner includes a check to make sure the adjacent pokemon is truly a partner. u32 GetAllyChosenMove(u32 battlerId); -bool32 IsBattle1v1(); +bool32 IsBattle1v1(void); // IsBattle1v1 is distinct from !IsDoubleBattle. If the player is fighting Maxie and Tabitha, with Steven as their partner, and both Tabitha and Steven have run out of Pokemon, the battle is 1v1, even though mechanically it is a Double Battle for how battlers and flags are set. // Most AI checks should be using IsBattle1v1; most engine checks should be using !IsDoubleBattle bool32 HasTwoOpponents(u32 battler); @@ -287,7 +287,7 @@ bool32 SideHasMoveCategory(u32 battlerId, enum DamageCategory category); // score increases u32 IncreaseStatUpScore(u32 battlerAtk, u32 battlerDef, enum StatChange statId); u32 IncreaseStatUpScoreContrary(u32 battlerAtk, u32 battlerDef, enum StatChange statId); -u32 IncreaseStatDownScore(u32 battlerAtk, u32 battlerDef, u32 stat); +u32 IncreaseStatDownScore(u32 battlerAtk, u32 battlerDef, enum Stat stat); void IncreasePoisonScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); void IncreaseBurnScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); void IncreaseParalyzeScore(u32 battlerAtk, u32 battlerDef, u32 move, s32 *score); diff --git a/include/battle_dynamax.h b/include/battle_dynamax.h index 03dfef96a3..99c917f456 100644 --- a/include/battle_dynamax.h +++ b/include/battle_dynamax.h @@ -5,7 +5,7 @@ bool32 CanDynamax(u32 battler); bool32 IsGigantamaxed(u32 battler); -void ApplyDynamaxHPMultiplier(struct Pokemon* mon); +void ApplyDynamaxHPMultiplier(struct Pokemon *mon); void ActivateDynamax(u32 battler); u16 GetNonDynamaxHP(u32 battler); u16 GetNonDynamaxMaxHP(u32 battler); diff --git a/include/battle_environment.h b/include/battle_environment.h index e9435aa454..e93b848e87 100644 --- a/include/battle_environment.h +++ b/include/battle_environment.h @@ -4,8 +4,8 @@ #include "constants/battle.h" #include "battle_bg.h" -struct BattleEnvironment { - u8 name[26]; +struct BattleEnvironment +{ u16 naturePower; u16 secretPowerEffect; u8 camouflageType; diff --git a/include/battle_hold_effects.h b/include/battle_hold_effects.h index 7ddace7782..56a3718fb4 100644 --- a/include/battle_hold_effects.h +++ b/include/battle_hold_effects.h @@ -29,7 +29,7 @@ extern const struct HoldEffectInfo gHoldEffectsInfo[]; typedef bool32 (*ActivationTiming)(enum HoldEffect holdEffect); enum ItemEffect ItemBattleEffects(u32 primaryBattler, u32 secondaryBattler, enum HoldEffect holdEffect, ActivationTiming timing); enum ItemEffect TryBoosterEnergy(u32 battler, enum Ability ability, ActivationTiming timing); -enum ItemEffect TryHandleSeed(u32 battler, u32 terrainFlag, u32 statId, u32 itemId, ActivationTiming timing); +enum ItemEffect TryHandleSeed(u32 battler, u32 terrainFlag, enum Stat statId, u32 itemId, ActivationTiming timing); bool32 IsOnSwitchInActivation(enum HoldEffect holdEffect); bool32 IsOnSwitchInFirstTurnActivation(enum HoldEffect holdEffect); diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index df30037f4c..2f3bd8e731 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -43,7 +43,6 @@ union TRANSPARENT StatChangeFlags s32 CalcCritChanceStage(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility, enum Ability abilityAtk, enum Ability abilityDef, enum HoldEffect holdEffectAtk); s32 CalcCritChanceStageGen1(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility, enum Ability abilityAtk, enum Ability abilityDef, enum HoldEffect holdEffectAtk); s32 GetCritHitOdds(s32 critChanceIndex); -u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkAbility, enum Ability defAbility, u32 atkHoldEffect, u32 defHoldEffect); bool32 HasBattlerActedThisTurn(u32 battler); u32 GetBattlerTurnOrderNum(u32 battler); bool32 NoAliveMonsForBattlerSide(u32 battler); @@ -67,7 +66,7 @@ bool32 TryResetBattlerStatChanges(u8 battler); bool32 CanCamouflage(u8 battlerId); void StealTargetItem(u8 battlerStealer, u8 battlerItem); u8 GetCatchingBattler(void); -u32 GetHighestStatId(u32 battlerId); +enum Stat GetHighestStatId(u32 battlerId); bool32 ProteanTryChangeType(u32 battler, enum Ability ability, u32 move, u32 moveType); bool32 IsMoveNotAllowedInSkyBattles(u32 move); bool32 DoSwitchInAbilities(u32 battlerId); diff --git a/include/battle_util.h b/include/battle_util.h index b5693be0c0..38f26be489 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -338,7 +338,7 @@ void TrySaveExchangedItem(u32 battler, u16 stolenItem); bool32 IsPartnerMonFromSameTrainer(u32 battler); bool32 IsBattlerAffectedByHazards(u32 battler, bool32 toxicSpikes); void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast); -bool32 CompareStat(u32 battler, u8 statId, u8 cmpTo, u8 cmpKind); +bool32 CompareStat(u32 battler, enum Stat statId, u8 cmpTo, u8 cmpKind); bool32 BlocksPrankster(u16 move, u32 battlerPrankster, u32 battlerDef, bool32 checkTarget); bool32 PickupHasValidTarget(u32 battler); bool32 CantPickupItem(u32 battler); @@ -412,7 +412,7 @@ void RemoveAllHazardsFromField(u32 side); bool32 IsHazardOnSideAndClear(u32 side, enum Hazards hazardType); void RemoveHazardFromField(u32 side, enum Hazards hazardType); bool32 CanMoveSkipAccuracyCalc(u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum Ability abilityDef, u32 move, enum FunctionCallOption option); -u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkAbility, enum Ability defAbility, u32 atkHoldEffect, u32 defHoldEffect); +u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkAbility, enum Ability defAbility, enum HoldEffect atkHoldEffect, enum HoldEffect defHoldEffect); bool32 IsSemiInvulnerable(u32 battler, enum SemiInvulnerableExclusion excludeCommander); bool32 BreaksThroughSemiInvulnerablity(u32 battler, u32 move); u32 GetNaturePowerMove(u32 battler); diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index b23bdb11f2..76c4667696 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -74,16 +74,18 @@ #define NUM_NATURES 25 // Pokémon Stats -#define STAT_HP 0 -#define STAT_ATK 1 -#define STAT_DEF 2 -#define STAT_SPEED 3 -#define STAT_SPATK 4 -#define STAT_SPDEF 5 -#define NUM_STATS 6 - -#define STAT_ACC 6 // Only in battles. -#define STAT_EVASION 7 // Only in battles. +enum __attribute__((packed)) Stat +{ + STAT_HP, + STAT_ATK, + STAT_DEF, + STAT_SPEED, + STAT_SPATK, + STAT_SPDEF, + NUM_STATS, + STAT_ACC = NUM_STATS, // Only in battles. + STAT_EVASION, // Only in battles. +}; #define NUM_NATURE_STATS (NUM_STATS - 1) // excludes HP #define NUM_BATTLE_STATS (NUM_STATS + 2) // includes Accuracy and Evasion diff --git a/include/item.h b/include/item.h index eaec831fe5..fa52b4adb5 100644 --- a/include/item.h +++ b/include/item.h @@ -231,7 +231,7 @@ bool32 RemovePyramidBagItem(u16 itemId, u16 count); const u8 *GetItemName(u16 itemId); u32 GetItemPrice(u16 itemId); const u8 *GetItemEffect(u32 itemId); -u32 GetItemHoldEffect(u32 itemId); +enum HoldEffect GetItemHoldEffect(u32 itemId); u32 GetItemHoldEffectParam(u32 itemId); const u8 *GetItemDescription(u16 itemId); u8 GetItemImportance(u16 itemId); diff --git a/include/pokemon.h b/include/pokemon.h index a72cc83b6c..6264dbd2cb 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -601,8 +601,8 @@ enum { struct NatureInfo { const u8 *name; - u8 statUp; - u8 statDown; + enum Stat statUp; + enum Stat statDown; u8 backAnim; u8 pokeBlockAnim[2]; u8 battlePalacePercents[4]; @@ -826,7 +826,7 @@ u8 GetPlayerFlankId(void); u16 GetLinkTrainerFlankId(u8 linkPlayerId); s32 GetBattlerMultiplayerId(u16 id); u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); -u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex); +u16 ModifyStatByNature(u8 nature, u16 stat, enum Stat statIndex); void AdjustFriendship(struct Pokemon *mon, u8 event); void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); u16 GetMonEVCount(struct Pokemon *mon); diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 62a68cf800..6b7dcf300b 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -1535,7 +1535,7 @@ static u32 GetFirstNonInvalidMon(u32 firstId, u32 lastId, u32 invalidMons, u32 b return PARTY_SIZE; } -bool32 IsMonGrounded(u16 heldItemEffect, enum Ability ability, u8 type1, u8 type2) +bool32 IsMonGrounded(enum HoldEffect heldItemEffect, enum Ability ability, u8 type1, u8 type2) { // List that makes mon not grounded if (type1 == TYPE_FLYING || type2 == TYPE_FLYING || ability == ABILITY_LEVITATE diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index d34040ffc8..6049a13842 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -271,7 +271,7 @@ void ClearBattlerAbilityHistory(u32 battlerId) gBattleHistory->abilities[battlerId] = ABILITY_NONE; } -void RecordItemEffectBattle(u32 battlerId, u32 itemEffect) +void RecordItemEffectBattle(u32 battlerId, enum HoldEffect itemEffect) { gBattleHistory->itemEffects[battlerId] = itemEffect; gAiPartyData->mons[GetBattlerSide(battlerId)][gBattlerPartyIndexes[battlerId]].heldEffect = itemEffect; @@ -2107,7 +2107,7 @@ s32 ProtectChecks(u32 battlerAtk, u32 battlerDef, u32 move, u32 predictedMove) } // stat stages -bool32 CanLowerStat(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData, u32 stat) +bool32 CanLowerStat(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData, enum Stat stat) { if (gBattleMons[battlerDef].statStages[stat] == MIN_STAT_STAGE) return FALSE; @@ -2170,7 +2170,7 @@ bool32 CanLowerStat(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData, return TRUE; } -u32 IncreaseStatDownScore(u32 battlerAtk, u32 battlerDef, u32 stat) +u32 IncreaseStatDownScore(u32 battlerAtk, u32 battlerDef, enum Stat stat) { u32 tempScore = NO_INCREASE; @@ -2236,12 +2236,14 @@ u32 IncreaseStatDownScore(u32 battlerAtk, u32 battlerDef, u32 stat) if (gBattleMons[battlerDef].volatiles.cursed) tempScore += WEAK_EFFECT; break; + default: + break; } return (tempScore > BEST_EFFECT) ? BEST_EFFECT : tempScore; // don't inflate score so only max +4 } -bool32 BattlerStatCanRise(u32 battler, enum Ability battlerAbility, u32 stat) +bool32 BattlerStatCanRise(u32 battler, enum Ability battlerAbility, enum Stat stat) { if ((gBattleMons[battler].statStages[stat] < MAX_STAT_STAGE && battlerAbility != ABILITY_CONTRARY) || (battlerAbility == ABILITY_CONTRARY && gBattleMons[battler].statStages[stat] > MIN_STAT_STAGE)) @@ -2251,7 +2253,7 @@ bool32 BattlerStatCanRise(u32 battler, enum Ability battlerAbility, u32 stat) bool32 AreBattlersStatsMaxed(u32 battlerId) { - u32 i; + enum Stat i; for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) { if (gBattleMons[battlerId].statStages[i] < MAX_STAT_STAGE) @@ -2262,7 +2264,7 @@ bool32 AreBattlersStatsMaxed(u32 battlerId) bool32 AnyStatIsRaised(u32 battlerId) { - u32 i; + enum Stat i; for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) { @@ -2275,7 +2277,7 @@ bool32 AnyStatIsRaised(u32 battlerId) u32 CountPositiveStatStages(u32 battlerId) { u32 count = 0; - u32 i; + enum Stat i; for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) { if (gBattleMons[battlerId].statStages[i] > DEFAULT_STAT_STAGE) @@ -2287,7 +2289,7 @@ u32 CountPositiveStatStages(u32 battlerId) u32 CountNegativeStatStages(u32 battlerId) { u32 count = 0; - u32 i; + enum Stat i; for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) { if (gBattleMons[battlerId].statStages[i] < DEFAULT_STAT_STAGE) @@ -3192,7 +3194,7 @@ bool32 BattlerWillFaintFromSecondaryDamage(u32 battler, enum Ability ability) static bool32 AnyUsefulStatIsRaised(u32 battler) { - u32 statId; + enum Stat statId; for (statId = STAT_ATK; statId < NUM_BATTLE_STATS; statId++) { @@ -3210,6 +3212,8 @@ static bool32 AnyUsefulStatIsRaised(u32 battler) break; case STAT_SPEED: return TRUE; + default: + break; } } } @@ -4033,7 +4037,7 @@ bool32 ShouldCureStatusWithItem(u32 battlerAtk, u32 battlerDef, struct AiLogicDa } // Partner Logic -bool32 IsBattle1v1() +bool32 IsBattle1v1(void) { if (IsDoubleBattle() && ((IsBattlerAlive(B_POSITION_PLAYER_LEFT) && IsBattlerAlive(B_POSITION_PLAYER_RIGHT)) @@ -4706,7 +4710,7 @@ static bool32 HasMoveThatChangesKOThreshold(u32 battlerId, u32 noOfHitsToFaint, return FALSE; } -static u32 GetStatBeingChanged(enum StatChange statChange) +static enum Stat GetStatBeingChanged(enum StatChange statChange) { switch(statChange) { @@ -4774,7 +4778,7 @@ static enum AIScore IncreaseStatUpScoreInternal(u32 battlerAtk, u32 battlerDef, u32 aiIsFaster = AI_IsFaster(battlerAtk, battlerDef, MOVE_NONE, predictedMoveSpeedCheck, DONT_CONSIDER_PRIORITY); // Don't care about the priority of our setup move, care about outspeeding otherwise u32 shouldSetUp = ((noOfHitsToFaint >= 2 && aiIsFaster) || (noOfHitsToFaint >= 3 && !aiIsFaster) || noOfHitsToFaint == UNKNOWN_NO_OF_HITS); u32 i; - u32 statId = GetStatBeingChanged(statChange); + enum Stat statId = GetStatBeingChanged(statChange); u32 stages = GetStagesOfStatChange(statChange); if (considerContrary && gAiLogicData->abilities[battlerAtk] == ABILITY_CONTRARY) @@ -4878,6 +4882,8 @@ static enum AIScore IncreaseStatUpScoreInternal(u32 battlerAtk, u32 battlerDef, else tempScore += DECENT_EFFECT; break; + default: + break; } // if already inclined to boost, be slightly more likely to if boost levels matter @@ -5479,7 +5485,7 @@ s32 AI_TryToClearStats(u32 battlerAtk, u32 battlerDef, bool32 isDoubleBattle) bool32 AI_ShouldCopyStatChanges(u32 battlerAtk, u32 battlerDef) { - u8 i; + enum Stat i; // Want to copy positive stat changes for (i = STAT_ATK; i < NUM_BATTLE_STATS; i++) { @@ -5499,6 +5505,8 @@ bool32 AI_ShouldCopyStatChanges(u32 battlerAtk, u32 battlerDef) case STAT_DEF: case STAT_SPDEF: return (gAiThinkingStruct->aiFlags[battlerAtk] & AI_FLAG_STALL); + default: + break; } } } diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index 54f16003be..5ee1a7d6da 100644 --- a/src/battle_anim_throw.c +++ b/src/battle_anim_throw.c @@ -2312,7 +2312,7 @@ void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId) { u8 spriteId; u32 x; - u32 done = FALSE; + bool32 done = FALSE; spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; switch (gTasks[taskId].data[10]) diff --git a/src/battle_debug.c b/src/battle_debug.c index 6a96b52e88..98c440291b 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -2291,6 +2291,7 @@ static const u8 *const sHoldEffectNames[HOLD_EFFECT_COUNT] = [HOLD_EFFECT_OGERPON_MASK] = COMPOUND_STRING("Ogerpon Mask"), [HOLD_EFFECT_BERSERK_GENE] = COMPOUND_STRING("Berserk Gene"), }; + static const u8 *GetHoldEffectName(enum HoldEffect holdEffect) { if (sHoldEffectNames[holdEffect] == NULL) diff --git a/src/battle_dome.c b/src/battle_dome.c index 1629330898..309a0e4a58 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -2136,9 +2136,8 @@ static void InitDomeTrainers(void) static void CalcDomeMonStats(const struct TrainerMon *fmon, int level, u8 ivs, int *stats) { int evs[NUM_STATS]; - int i; - for (i = 0; i < NUM_STATS; i++) + for (enum Stat i = 0; i < NUM_STATS; i++) { if (fmon->ev != NULL) evs[i] = fmon->ev[i]; diff --git a/src/battle_hold_effects.c b/src/battle_hold_effects.c index b325956d9d..4f4d65b056 100644 --- a/src/battle_hold_effects.c +++ b/src/battle_hold_effects.c @@ -97,7 +97,7 @@ static enum ItemEffect TryRoomService(u32 battler, ActivationTiming timing) return ITEM_NO_EFFECT; } -enum ItemEffect TryHandleSeed(u32 battler, u32 terrainFlag, u32 statId, u32 itemId, ActivationTiming timing) +enum ItemEffect TryHandleSeed(u32 battler, u32 terrainFlag, enum Stat statId, u32 itemId, ActivationTiming timing) { if (gFieldStatuses & terrainFlag && CompareStat(battler, statId, MAX_STAT_STAGE, CMP_LESS_THAN)) { @@ -516,7 +516,7 @@ static enum ItemEffect TryThroatSray(u32 battlerAtk) return effect; } -static enum ItemEffect DamagedStatBoostBerryEffect(u32 battlerDef, u32 battlerAtk, u32 statId, enum DamageCategory category) +static enum ItemEffect DamagedStatBoostBerryEffect(u32 battlerDef, u32 battlerAtk, enum Stat statId, enum DamageCategory category) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -968,7 +968,7 @@ static enum ItemEffect HealConfuseBerry(u32 battler, u32 itemId, u32 flavorId, A return effect; } -static enum ItemEffect StatRaiseBerry(u32 battler, u32 itemId, u32 statId, ActivationTiming timing) +static enum ItemEffect StatRaiseBerry(u32 battler, u32 itemId, enum Stat statId, ActivationTiming timing) { enum ItemEffect effect = ITEM_NO_EFFECT; enum Ability ability = GetBattlerAbility(battler); @@ -1013,7 +1013,7 @@ static enum ItemEffect CriticalHitRatioUp(u32 battler, u32 itemId, ActivationTim static enum ItemEffect RandomStatRaiseBerry(u32 battler, u32 itemId, ActivationTiming timing) { enum ItemEffect effect = ITEM_NO_EFFECT; - s32 stat; + enum Stat stat; for (stat = STAT_ATK; stat < NUM_STATS; stat++) { diff --git a/src/battle_main.c b/src/battle_main.c index 7a469847e0..edaa0f48c7 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1985,7 +1985,7 @@ u8 CreateNPCTrainerPartyFromTrainer(struct Pokemon *party, const struct Trainer } if (partyData[monIndex].isShiny) { - u32 data = TRUE; + bool32 data = TRUE; SetMonData(&party[i], MON_DATA_IS_SHINY, &data); } if (partyData[monIndex].dynamaxLevel > 0) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 7d538e2ff9..949e0d4df0 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -311,7 +311,7 @@ enum GiveCaughtMonStates #define TAG_LVLUP_BANNER_MON_ICON 55130 static void TrySetDestinyBondToHappen(void); -static u32 ChangeStatBuffs(u32 battler, s8 statValue, u32 statId, union StatChangeFlags flags, u32 stats, const u8 *BS_ptr); +static u32 ChangeStatBuffs(u32 battler, s8 statValue, enum Stat statId, union StatChangeFlags flags, u32 stats, const u8 *BS_ptr); static bool32 IsMonGettingExpSentOut(void); static void InitLevelUpBanner(void); static bool8 SlideInLevelUpBanner(void); @@ -3562,7 +3562,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai break; case MOVE_EFFECT_ORDER_UP: { - u32 stat = 0; + enum Stat stat = 0; bool32 commanderAffected = TRUE; switch (gBattleStruct->battlerState[gEffectBattler].commanderSpecies) { @@ -3735,7 +3735,7 @@ void SetMoveEffect(u32 battler, u32 effectBattler, bool32 primary, bool32 certai case MOVE_EFFECT_LOWER_EVASIVENESS_SIDE: if (!NoAliveMonsForEitherParty()) { - u32 statId = 0; + enum Stat statId = 0; u32 stage = 1; switch (gBattleScripting.moveEffect) { @@ -5581,7 +5581,7 @@ static bool32 HandleMoveEndAbilityBlock(u32 battlerAtk, u32 battlerDef, u32 move if (!IsBattlerAlive(battlerAtk) || NoAliveMonsForEitherParty()) break; - u32 stat = STAT_ATK; + enum Stat stat = STAT_ATK; u32 numMonsFainted = NumFaintedBattlersByAttacker(battlerAtk); if (abilityAtk == ABILITY_BEAST_BOOST) @@ -5671,7 +5671,7 @@ static bool32 HandleMoveEndMoveBlock(u32 moveEffect) if (gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) return FALSE; - u32 effect = FALSE; + bool32 effect = FALSE; enum BattleSide side = GetBattlerSide(gBattlerTarget); switch (moveEffect) { @@ -7444,7 +7444,7 @@ static void Cmd_openpartyscreen(void) { if (((1u << i) & hitmarkerFaintBits)) { - u32 skipPartnerCheck = FALSE; + bool32 skipPartnerCheck = FALSE; if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && GetBattlerSide(i) == B_SIDE_OPPONENT && TRAINER_BATTLE_PARAM.opponentB != TRAINER_NONE) @@ -9331,9 +9331,11 @@ u32 IsAbilityStatusProtected(u32 battler, enum Ability ability) || IsFlowerVeilProtected(battler); } -u32 GetHighestStatId(u32 battler) +enum Stat GetHighestStatId(u32 battler) { - u32 i, highestId = STAT_ATK, highestStat = gBattleMons[battler].attack; + enum Stat i; + enum Stat highestId = STAT_ATK; + u32 highestStat = gBattleMons[battler].attack; for (i = STAT_DEF; i < NUM_STATS; i++) { @@ -10012,7 +10014,7 @@ static u16 ReverseStatChangeMoveEffect(u16 moveEffect) static void TryPlayStatChangeAnimation(u32 battler, enum Ability ability, u32 stats, s32 statValue, u32 statId, bool32 certain) { - u32 currStat = 0; + enum Stat currStat = 0; u32 changeableStatsCount = 1; // current stat is counted automatically u32 statAnimId = statId; bool32 statChangeByTwo = statValue > 1 || statValue < -1; @@ -10098,7 +10100,7 @@ static void TryPlayStatChangeAnimation(u32 battler, enum Ability ability, u32 st } } -static u32 ChangeStatBuffs(u32 battler, s8 statValue, u32 statId, union StatChangeFlags flags, u32 stats, const u8 *BS_ptr) +static u32 ChangeStatBuffs(u32 battler, s8 statValue, enum Stat statId, union StatChangeFlags flags, u32 stats, const u8 *BS_ptr) { u32 index, battlerAbility; enum HoldEffect battlerHoldEffect; @@ -14239,7 +14241,7 @@ static void Cmd_swapstatstages(void) gBattlescriptCurrInstr = cmd->nextInstr; } -static u16 *GetBattlerStat(struct BattlePokemon *battler, u32 stat) +static u16 *GetBattlerStat(struct BattlePokemon *battler, enum Stat stat) { switch (stat) { @@ -15934,7 +15936,7 @@ void BS_TrySpectralThiefSteal(void) bool32 contrary = GetBattlerAbility(gBattlerAttacker) == ABILITY_CONTRARY; gBattleStruct->stolenStats[0] = 0; // Stats to steal. gBattleScripting.animArg1 = 0; - for (u32 stat = STAT_ATK; stat < NUM_BATTLE_STATS; stat++) + for (enum Stat stat = STAT_ATK; stat < NUM_BATTLE_STATS; stat++) { if (gBattleMons[gBattlerTarget].statStages[stat] > DEFAULT_STAT_STAGE && gBattleMons[gBattlerAttacker].statStages[stat] != MAX_STAT_STAGE) { @@ -15979,7 +15981,7 @@ void BS_SpectralThiefPrintStats(void) { NATIVE_ARGS(); - for (u32 stat = STAT_ATK; stat < NUM_BATTLE_STATS; stat++) + for (enum Stat stat = STAT_ATK; stat < NUM_BATTLE_STATS; stat++) { if (gBattleStruct->stolenStats[0] & (1u << stat)) { @@ -16045,7 +16047,7 @@ void BS_SwapStats(void) { NATIVE_ARGS(u8 stat); - u32 stat = cmd->stat; + enum Stat stat = cmd->stat; u32 temp; switch (stat) @@ -16068,6 +16070,8 @@ void BS_SwapStats(void) case STAT_SPDEF: SWAP(gBattleMons[gBattlerAttacker].spDefense, gBattleMons[gBattlerTarget].spDefense, temp); break; + default: + break; } PREPARE_STAT_BUFFER(gBattleTextBuff1, stat); gBattlescriptCurrInstr = cmd->nextInstr; @@ -16279,7 +16283,7 @@ void BS_JumpIfIntimidateAbilityPrevented(void) { NATIVE_ARGS(); - u32 hasAbility = FALSE; + bool32 hasAbility = FALSE; enum Ability ability = GetBattlerAbility(gBattlerTarget); switch (ability) @@ -16681,7 +16685,7 @@ void BS_TryAcupressure(void) { NATIVE_ARGS(const u8 *failInstr); u32 bits = 0; - for (u32 stat = STAT_ATK; stat < NUM_BATTLE_STATS; stat++) + for (enum Stat stat = STAT_ATK; stat < NUM_BATTLE_STATS; stat++) { if (CompareStat(gBattlerTarget, stat, MAX_STAT_STAGE, CMP_LESS_THAN)) bits |= 1u << stat; diff --git a/src/battle_tower.c b/src/battle_tower.c index f925826a6f..183afaf10a 100644 --- a/src/battle_tower.c +++ b/src/battle_tower.c @@ -1632,7 +1632,7 @@ void CreateFacilityMon(const struct TrainerMon *fmon, u16 level, u8 fixedIV, u32 if (fmon->isShiny) { - u32 data = TRUE; + bool32 data = TRUE; SetMonData(dst, MON_DATA_IS_SHINY, &data); } if (fmon->dynamaxLevel > 0) diff --git a/src/battle_util.c b/src/battle_util.c index 9f9bf10dc2..b3c50a9e6c 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -2388,7 +2388,7 @@ static enum MoveCanceller CancellerChoiceLock(struct BattleContext *ctx) static enum MoveCanceller CancellerCallSubmove(struct BattleContext *ctx) { - u32 noEffect = FALSE; + bool32 noEffect = FALSE; u32 calledMove = MOVE_NONE; const u8 *battleScript = NULL; battleScript = BattleScript_SubmoveAttackstring; @@ -3453,7 +3453,7 @@ bool32 CanAbilityAbsorbMove(u32 battlerAtk, u32 battlerDef, enum Ability ability { enum MoveAbsorbed effect = MOVE_ABSORBED_BY_NO_ABILITY; const u8 *battleScript = NULL; - u32 statId = 0; + enum Stat statId = 0; u32 statAmount = 1; switch (abilityDef) @@ -4067,7 +4067,8 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab case ABILITY_DOWNLOAD: if (!gSpecialStatuses[battler].switchInAbilityDone) { - u32 statId, opposingBattler; + enum Stat statId; + u32 opposingBattler; u32 opposingDef = 0, opposingSpDef = 0; opposingBattler = BATTLE_OPPOSITE(battler); @@ -4463,7 +4464,7 @@ u32 AbilityBattleEffects(enum AbilityEffect caseID, u32 battler, enum Ability ab case ABILITY_EMBODY_ASPECT_CORNERSTONE_MASK: if (!gSpecialStatuses[battler].switchInAbilityDone) { - u32 stat; + enum Stat stat; if (gLastUsedAbility == ABILITY_EMBODY_ASPECT_HEARTHFLAME_MASK) stat = STAT_ATK; @@ -6603,7 +6604,7 @@ u32 GetBattlerWeight(u32 battler) u32 CountBattlerStatIncreases(u32 battler, bool32 countEvasionAcc) { - u32 i; + enum Stat i; u32 count = 0; for (i = 0; i < NUM_BATTLE_STATS; i++) @@ -7293,7 +7294,7 @@ static inline u32 CalcMoveBasePowerAfterModifiers(struct DamageContext *ctx) break; case ABILITY_PROTOSYNTHESIS: { - u8 defHighestStat = GetHighestStatId(battlerDef); + enum Stat defHighestStat = GetHighestStatId(battlerDef); if (((ctx->weather & B_WEATHER_SUN && HasWeatherEffect()) || gDisableStructs[battlerDef].boosterEnergyActivated) && ((IsBattleMovePhysical(move) && defHighestStat == STAT_DEF) || (IsBattleMoveSpecial(move) && defHighestStat == STAT_SPDEF)) && !(gBattleMons[battlerDef].volatiles.transformed)) @@ -7566,7 +7567,7 @@ static inline u32 CalcAttackStat(struct DamageContext *ctx) case ABILITY_PROTOSYNTHESIS: if (!(gBattleMons[battlerAtk].volatiles.transformed)) { - u32 atkHighestStat = GetHighestStatId(battlerAtk); + enum Stat atkHighestStat = GetHighestStatId(battlerAtk); if (((ctx->weather & B_WEATHER_SUN) && HasWeatherEffect()) || gDisableStructs[battlerAtk].boosterEnergyActivated) { if ((IsBattleMovePhysical(move) && atkHighestStat == STAT_ATK) || (IsBattleMoveSpecial(move) && atkHighestStat == STAT_SPATK)) @@ -7577,7 +7578,7 @@ static inline u32 CalcAttackStat(struct DamageContext *ctx) case ABILITY_QUARK_DRIVE: if (!(gBattleMons[battlerAtk].volatiles.transformed)) { - u32 atkHighestStat = GetHighestStatId(battlerAtk); + enum Stat atkHighestStat = GetHighestStatId(battlerAtk); if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN || gDisableStructs[battlerAtk].boosterEnergyActivated) { if ((IsBattleMovePhysical(move) && atkHighestStat == STAT_ATK) || (IsBattleMoveSpecial(move) && atkHighestStat == STAT_SPATK)) @@ -9631,7 +9632,7 @@ bool32 TestIfSheerForceAffected(u32 battler, u16 move) } // This function is the body of "jumpifstat", but can be used dynamically in a function -bool32 CompareStat(u32 battler, u8 statId, u8 cmpTo, u8 cmpKind) +bool32 CompareStat(u32 battler, enum Stat statId, u8 cmpTo, u8 cmpKind) { bool32 ret = FALSE; u8 statValue = gBattleMons[battler].statStages[statId]; @@ -10555,7 +10556,7 @@ bool32 CanMoveSkipAccuracyCalc(u32 battlerAtk, u32 battlerDef, enum Ability abil return effect; } -u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkAbility, enum Ability defAbility, u32 atkHoldEffect, u32 defHoldEffect) +u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkAbility, enum Ability defAbility, enum HoldEffect atkHoldEffect, enum HoldEffect defHoldEffect) { u32 calc, moveAcc; s8 buff, accStage, evasionStage; @@ -10652,6 +10653,8 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkA if (HasBattlerActedThisTurn(battlerDef)) calc = (calc * (100 + atkParam)) / 100; break; + default: + break; } // Target's hold effect @@ -10660,6 +10663,8 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, enum Ability atkA case HOLD_EFFECT_EVASION_UP: calc = (calc * (100 - defParam)) / 100; break; + default: + break; } if (gBattleStruct->battlerState[battlerAtk].usedMicleBerry) diff --git a/src/contest_ai.c b/src/contest_ai.c index 77f27fcc91..8d4a347280 100644 --- a/src/contest_ai.c +++ b/src/contest_ai.c @@ -1199,7 +1199,7 @@ static void ContestAICmd_if_condition_not_eq(void) static void ContestAICmd_get_used_combo_starter(void) { - u16 result = FALSE; + bool32 result = FALSE; u8 contestant = GetContestantIdByTurn(gAIScriptPtr[1]); if (IsContestantAllowedToCombo(contestant)) diff --git a/src/contest_util.c b/src/contest_util.c index 3bd5e1ec5f..dd7070e9a3 100644 --- a/src/contest_util.c +++ b/src/contest_util.c @@ -1959,7 +1959,7 @@ void TryEnterContestMon(void) u16 HasMonWonThisContestBefore(void) { - u16 hasRankRibbon = FALSE; + bool32 hasRankRibbon = FALSE; struct Pokemon *mon = &gPlayerParty[gContestMonPartyIndex]; switch (gSpecialVar_ContestCategory) { diff --git a/src/debug.c b/src/debug.c index 2d3f1b2248..a683311b8b 100644 --- a/src/debug.c +++ b/src/debug.c @@ -995,7 +995,7 @@ static const u16 sLocationFlags[] = static u8 Debug_CheckToggleFlags(u8 id) { - u8 result = FALSE; + bool32 result = FALSE; switch (id) { diff --git a/src/item.c b/src/item.c index 53633bbe66..155909e547 100644 --- a/src/item.c +++ b/src/item.c @@ -812,7 +812,7 @@ const u8 *GetItemEffect(u32 itemId) return gItemsInfo[SanitizeItemId(itemId)].effect; } -u32 GetItemHoldEffect(u32 itemId) +enum HoldEffect GetItemHoldEffect(u32 itemId) { return gItemsInfo[SanitizeItemId(itemId)].holdEffect; } diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c index 687b98ca27..115a0d4c7b 100644 --- a/src/metatile_behavior.c +++ b/src/metatile_behavior.c @@ -331,7 +331,7 @@ bool8 MetatileBehavior_IsSouthArrowWarp(u8 metatileBehavior) bool8 UNUSED Unref_MetatileBehavior_IsArrowWarp(u8 metatileBehavior) { - u8 isArrowWarp = FALSE; + bool32 isArrowWarp = FALSE; if (MetatileBehavior_IsEastArrowWarp(metatileBehavior) || MetatileBehavior_IsWestArrowWarp(metatileBehavior) diff --git a/src/pokedex_cry_screen.c b/src/pokedex_cry_screen.c index b567aac391..810a8dae6a 100644 --- a/src/pokedex_cry_screen.c +++ b/src/pokedex_cry_screen.c @@ -228,7 +228,7 @@ static const struct SpritePalette sCryMeterNeedleSpritePalettes[] = bool8 LoadCryWaveformWindow(struct CryScreenWindow *window, u8 windowId) { u8 i; - u8 finished = FALSE; + bool32 finished = FALSE; switch (gDexCryScreenState) { diff --git a/src/pokemon.c b/src/pokemon.c index b2712f6470..51449d7889 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -852,7 +852,7 @@ static const u8 sGetMonDataEVConstants[] = }; // For stat-raising items -static const u8 sStatsToRaise[] = +static const enum Stat sStatsToRaise[] = { STAT_ATK, STAT_ATK, STAT_DEF, STAT_SPEED, STAT_SPATK, STAT_SPDEF, STAT_ACC }; @@ -1042,8 +1042,8 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u32 value; u16 checksum; u8 i; - u8 availableIVs[NUM_STATS]; - u8 selectedIvs[NUM_STATS]; + enum Stat availableIVs[NUM_STATS]; + enum Stat selectedIvs[NUM_STATS]; bool32 isShiny; ZeroBoxMonData(boxMon); @@ -1200,6 +1200,8 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, case STAT_SPDEF: SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); break; + default: + break; } } } @@ -3743,9 +3745,9 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov u8 itemEffectParam = ITEM_EFFECT_ARG_START; u32 temp1, temp2; s8 friendshipChange = 0; - u8 holdEffect; + enum HoldEffect holdEffect; u8 battler = MAX_BATTLERS_COUNT; - u32 friendshipOnly = FALSE; + bool32 friendshipOnly = FALSE; u16 heldItem; u8 effectFlags; s8 evChange; @@ -4329,7 +4331,7 @@ u8 GetItemEffectParamOffset(u32 battler, u16 itemId, u8 effectByte, u8 effectBit return offset; } -static void BufferStatRoseMessage(s32 statIdx) +static void BufferStatRoseMessage(enum Stat statIdx) { gBattlerTarget = gBattlerInMenuId; StringCopy(gBattleTextBuff1, gStatNamesTable[sStatsToRaise[statIdx]]); @@ -4470,7 +4472,7 @@ bool32 DoesMonMeetAdditionalConditions(struct Pokemon *mon, const struct Evoluti for (i = 0; params != NULL && params[i].condition != CONDITIONS_END; i++) { enum EvolutionConditions condition = params[i].condition; - u32 currentCondition = FALSE; + bool32 currentCondition = FALSE; switch(condition) { @@ -4761,7 +4763,7 @@ u32 GetEvolutionTargetSpecies(struct Pokemon *mon, enum EvolutionMode mode, u16 u32 species = GetMonData(mon, MON_DATA_SPECIES, 0); u32 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0); u32 level = GetMonData(mon, MON_DATA_LEVEL, 0); - u32 holdEffect; + enum HoldEffect holdEffect; const struct Evolution *evolutions = GetSpeciesEvolutions(species); if (evolutions == NULL) @@ -5204,7 +5206,7 @@ u8 GetTrainerEncounterMusicId(u16 trainerOpponentId) return gTrainers[difficulty][sanitizedTrainerId].encounterMusic_gender & (F_TRAINER_FEMALE - 1); } -u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) +u16 ModifyStatByNature(u8 nature, u16 stat, enum Stat statIndex) { // Don't modify HP, Accuracy, or Evasion by nature if (statIndex <= STAT_HP || statIndex > NUM_NATURE_STATS || gNaturesInfo[nature].statUp == gNaturesInfo[nature].statDown) @@ -5220,7 +5222,7 @@ u16 ModifyStatByNature(u8 nature, u16 stat, u8 statIndex) void AdjustFriendship(struct Pokemon *mon, u8 event) { u16 species, heldItem; - u8 holdEffect; + enum HoldEffect holdEffect; s8 mod; if (ShouldSkipFriendshipChange()) @@ -5302,8 +5304,9 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) u16 evIncrease = 0; u16 totalEVs = 0; u16 heldItem; - u8 holdEffect; - int i, multiplier; + enum HoldEffect holdEffect; + enum Stat i; + int multiplier; u8 stat; u8 bonus; u32 currentEVCap = GetCurrentEVCap(); @@ -5382,6 +5385,8 @@ void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies) else evIncrease = gSpeciesInfo[defeatedSpecies].evYield_SpDefense * multiplier; break; + default: + break; } if (holdEffect == HOLD_EFFECT_MACHO_BRACE) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index a0a00894ce..5ecfb83f2a 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -3757,7 +3757,7 @@ static void PrintRibbonCount(void) PrintTextOnWindow(AddWindowFromTemplateList(sPageSkillsTemplate, PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT), text, x, 1, 0, 0); } -static void BufferStat(u8 *dst, u8 statIndex, u32 stat, u32 strId, u32 n) +static void BufferStat(u8 *dst, enum Stat statIndex, u32 stat, u32 strId, u32 n) { static const u8 sTextNatureDown[] = _("{COLOR}{08}"); static const u8 sTextNatureUp[] = _("{COLOR}{05}"); diff --git a/src/save.c b/src/save.c index 4e6c41b6f9..f54beb2d8c 100644 --- a/src/save.c +++ b/src/save.c @@ -856,7 +856,7 @@ bool8 WriteSaveBlock2(void) // It returns TRUE when finished. bool8 WriteSaveBlock1Sector(void) { - u8 finished = FALSE; + bool32 finished = FALSE; u16 sectorId = ++gIncrementalSectorId; // Because WriteSaveBlock2 will have been called prior, this will be SECTOR_ID_SAVEBLOCK1_START if (sectorId <= SECTOR_ID_SAVEBLOCK1_END) { diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index d4fba87859..13ffc4948d 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -518,8 +518,8 @@ void ScrCmd_createmon(struct ScriptContext *ctx) // Perfect IV calculation u32 i; - u8 availableIVs[NUM_STATS]; - u8 selectedIvs[NUM_STATS]; + enum Stat availableIVs[NUM_STATS]; + enum Stat selectedIvs[NUM_STATS]; if (gSpeciesInfo[species].perfectIVCount != 0) { // Initialize a list of IV indices. @@ -543,6 +543,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx) case STAT_SPEED: speedIv = MAX_PER_STAT_IVS; break; case STAT_SPATK: spAtkIv = MAX_PER_STAT_IVS; break; case STAT_SPDEF: spDefIv = MAX_PER_STAT_IVS; break; + default: break; } } } diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 5301bd911d..f51912d4f0 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -2079,6 +2079,8 @@ void Item_(u32 sourceLine, u32 item) case HOLD_EFFECT_Z_CRYSTAL: SetGimmick(sourceLine, DATA.currentPosition, DATA.currentPartyIndex, GIMMICK_Z_MOVE); break; + default: + break; } }