From 36fcd9c6b2fe26ecc1451933fd75a2953a234298 Mon Sep 17 00:00:00 2001 From: Bassoonian Date: Sat, 17 Jan 2026 11:26:09 +0100 Subject: [PATCH] Adds ``Item`` enum (#8897) --- constants/constants.inc | 1 - constants/tms_hms.inc | 22 - include/battle.h | 14 +- include/battle_ai_util.h | 8 +- include/battle_controllers.h | 2 +- include/battle_script_commands.h | 2 +- include/battle_util.h | 14 +- include/battle_z_move.h | 4 +- include/berry.h | 2 +- include/constants/items.h | 2005 +++++++++-------- include/data.h | 2 +- include/global.h | 12 +- include/global.tv.h | 8 +- include/item.h | 96 +- include/item_icon.h | 8 +- include/item_menu_icons.h | 2 +- include/item_use.h | 4 +- include/list_menu.h | 2 +- include/mail.h | 4 +- include/menu_helpers.h | 4 +- include/overworld.h | 2 +- include/party_menu.h | 4 +- include/pokemon.h | 18 +- include/script_pokemon_util.h | 6 +- include/test/battle.h | 2 +- src/apricorn_tree.c | 6 +- src/battle_ai_items.c | 2 +- src/battle_ai_main.c | 2 +- src/battle_ai_switch.c | 2 +- src/battle_ai_util.c | 8 +- src/battle_controller_player.c | 2 +- src/battle_controllers.c | 2 +- src/battle_debug.c | 2 +- src/battle_dome.c | 2 +- src/battle_hold_effects.c | 30 +- src/battle_move_resolution.c | 2 +- src/battle_pyramid.c | 2 +- src/battle_pyramid_bag.c | 8 +- src/battle_script_commands.c | 10 +- src/battle_special.c | 4 +- src/battle_util.c | 22 +- src/battle_z_move.c | 6 +- src/berry.c | 8 +- src/berry_blender.c | 10 +- src/data/items.h | 2 +- src/daycare.c | 6 +- src/debug.c | 16 +- src/dexnav.c | 8 +- src/dodrio_berry_picking.c | 2 +- src/field_specials.c | 4 +- src/frontier_util.c | 6 +- src/item.c | 94 +- src/item_ball.c | 2 +- src/item_icon.c | 8 +- src/item_menu.c | 8 +- src/item_menu_icons.c | 2 +- src/item_use.c | 8 +- src/lilycove_lady.c | 4 +- src/mail_data.c | 6 +- src/menu_helpers.c | 4 +- src/move_relearner.c | 2 +- src/mystery_event_script.c | 6 +- src/overworld.c | 10 +- src/party_menu.c | 76 +- src/player_pc.c | 86 +- src/pokedex_plus_hgss.c | 8 +- src/pokemon.c | 16 +- src/pokemon_jump.c | 18 +- src/pokemon_storage_system.c | 14 +- src/pokemon_summary_screen.c | 4 +- src/record_mixing.c | 2 +- src/rom_header_gf.c | 2 +- src/scrcmd.c | 24 +- src/script_pokemon_util.c | 12 +- src/shop.c | 12 +- src/trainer_hill.c | 2 +- src/tv.c | 2 +- src/wonder_news.c | 2 +- test/battle/ability/aerilate.c | 2 +- test/battle/ability/ball_fetch.c | 10 +- test/battle/ability/dry_skin.c | 2 +- test/battle/ability/galvanize.c | 2 +- test/battle/ability/intimidate.c | 2 +- test/battle/ability/leaf_guard.c | 6 +- test/battle/ability/levitate.c | 3 +- test/battle/ability/normalize.c | 2 +- test/battle/ability/pixilate.c | 2 +- test/battle/ability/refrigerate.c | 2 +- test/battle/ability/toxic_chain.c | 2 +- test/battle/ability/water_absorb.c | 2 +- test/battle/ai/ai.c | 2 +- test/battle/ai/ai_multi.c | 3 +- test/battle/ai/ai_switching.c | 6 +- test/battle/capture.c | 2 +- test/battle/exp.c | 4 +- test/battle/form_change/begin_battle.c | 4 +- test/battle/gimmick/dynamax.c | 2 +- test/battle/hold_effect/ability_shield.c | 14 +- test/battle/hold_effect/berserk_gene.c | 14 +- test/battle/hold_effect/big_root.c | 6 +- test/battle/hold_effect/booster_energy.c | 4 +- test/battle/hold_effect/cure_status.c | 21 +- test/battle/hold_effect/gems.c | 2 +- test/battle/hold_effect/metronome.c | 2 +- test/battle/hold_effect/mirror_herb.c | 2 +- test/battle/hold_effect/ogerpon_mask.c | 2 +- test/battle/hold_effect/protective_pads.c | 2 +- test/battle/hold_effect/red_card.c | 4 +- test/battle/hold_effect/resist_berry.c | 8 +- test/battle/hold_effect/restore_hp.c | 4 +- test/battle/hold_effect/terrain_seed.c | 8 +- test/battle/hold_effect/type_power.c | 5 +- test/battle/item_effect/cure_status.c | 2 +- test/battle/item_effect/restore_hp.c | 9 +- test/battle/move_effect/assist.c | 2 +- test/battle/move_effect/beat_up.c | 4 +- test/battle/move_effect/belch.c | 2 +- test/battle/move_effect/change_type_on_item.c | 2 +- test/battle/move_effect/corrosive_gas.c | 4 +- test/battle/move_effect/dragon_darts.c | 2 +- test/battle/move_effect/embargo.c | 2 +- test/battle/move_effect/fling.c | 19 +- test/battle/move_effect/focus_punch.c | 5 +- test/battle/move_effect/future_sight.c | 2 +- test/battle/move_effect/hydro_steam.c | 4 +- test/battle/move_effect/ivy_cudgel.c | 4 +- test/battle/move_effect/knock_off.c | 4 +- test/battle/move_effect/multi_hit.c | 2 +- test/battle/move_effect/spikes.c | 2 +- test/battle/move_effect/strength_sap.c | 2 +- test/battle/move_effect/stuff_cheeks.c | 2 +- test/battle/move_effect/synthesis.c | 2 +- test/battle/move_effect/teatime.c | 12 +- test/battle/move_effect/toxic_spikes.c | 4 +- test/battle/move_effect_secondary/bug_bite.c | 6 +- test/battle/weather/hail.c | 2 +- test/battle/weather/rain.c | 2 +- test/battle/weather/snow.c | 2 +- test/battle/weather/sunlight.c | 2 +- test/test_runner_battle.c | 2 +- test/text.c | 16 +- 141 files changed, 1540 insertions(+), 1599 deletions(-) delete mode 100644 constants/tms_hms.inc diff --git a/constants/constants.inc b/constants/constants.inc index 1f8f1cda2e..e7561f4293 100644 --- a/constants/constants.inc +++ b/constants/constants.inc @@ -1,3 +1,2 @@ .include "constants/gba_constants.inc" .include "constants/global.inc" - .include "constants/tms_hms.inc" diff --git a/constants/tms_hms.inc b/constants/tms_hms.inc deleted file mode 100644 index 4ce6d90328..0000000000 --- a/constants/tms_hms.inc +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef GUARD_CONSTANTS_TMS_HMS_INC -#define GUARD_CONSTANTS_TMS_HMS_INC - -#include "constants/tms_hms.h" - -/* Expands to: -* enum_start ITEM_TM01 -* enum ITEM_TM_FOCUS_PUNCH -* ... -* enum_start ITEM_HM01 -* enum ITEM_HM_CUT -* ... */ -#define EQUIV_TM(id) enum ITEM_TM_ ## id; -#define EQUIV_HM(id) enum ITEM_HM_ ## id; - enum_start ITEM_TM01 -FOREACH_TM(EQUIV_TM) - enum_start ITEM_HM01 -FOREACH_HM(EQUIV_HM) -#undef EQUIV_TM -#undef EQUIV_HM - -#endif @ GUARD_CONSTANTS_TMS_HMS_INC diff --git a/include/battle.h b/include/battle.h index ae14faf490..335d8b24b1 100644 --- a/include/battle.h +++ b/include/battle.h @@ -196,8 +196,8 @@ struct AI_SavedBattleMon struct AiPartyMon { u16 species; - u16 item; - u16 heldEffect; + enum Item item; + enum HoldEffect heldEffect; enum Ability ability; u16 level; enum Move moves[MAX_MON_MOVES]; @@ -226,12 +226,12 @@ struct SimulatedDamage struct AiLogicData { enum Ability abilities[MAX_BATTLERS_COUNT]; - u16 items[MAX_BATTLERS_COUNT]; - u16 holdEffects[MAX_BATTLERS_COUNT]; + enum Item items[MAX_BATTLERS_COUNT]; + enum HoldEffect holdEffects[MAX_BATTLERS_COUNT]; u8 holdEffectParams[MAX_BATTLERS_COUNT]; - u16 lastUsedMove[MAX_BATTLERS_COUNT]; + enum Move lastUsedMove[MAX_BATTLERS_COUNT]; u8 hpPercents[MAX_BATTLERS_COUNT]; - u16 partnerMove; + enum Move partnerMove; u16 speedStats[MAX_BATTLERS_COUNT]; // Speed stats for all battles, calculated only once, same way as damages struct SimulatedDamage simulatedDmg[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex uq4_12_t effectiveness[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex @@ -239,7 +239,7 @@ struct AiLogicData u8 moveLimitations[MAX_BATTLERS_COUNT]; u8 monToSwitchInId[MAX_BATTLERS_COUNT]; // ID of the mon to switch in. u8 mostSuitableMonId[MAX_BATTLERS_COUNT]; // Stores result of GetMostSuitableMonToSwitchInto, which decides which generic mon the AI would switch into if they decide to switch. This can be overruled by specific mons found in ShouldSwitch; the final resulting mon is stored in AI_monToSwitchIntoId. - u16 predictedMove[MAX_BATTLERS_COUNT]; + enum Move predictedMove[MAX_BATTLERS_COUNT]; u8 resistBerryAffected[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // Tracks whether currently calc'd move is affected by a resist berry into given target // Flags diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 8efa818308..e1399ef419 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -142,10 +142,10 @@ bool32 ShouldSetScreen(u32 battlerAtk, u32 battlerDef, enum BattleMoveEffects mo bool32 ShouldCureStatus(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData); bool32 ShouldCureStatusWithItem(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData); enum AIPivot ShouldPivot(u32 battlerAtk, u32 battlerDef, enum Move move); -bool32 IsRecycleEncouragedItem(u32 item); -bool32 ShouldRestoreHpBerry(u32 battlerAtk, u32 item); -bool32 IsStatBoostingBerry(u32 item); -bool32 CanKnockOffItem(u32 fromBattler, u32 battler, u32 item); +bool32 IsRecycleEncouragedItem(enum Item item); +bool32 ShouldRestoreHpBerry(u32 battlerAtk, enum Item item); +bool32 IsStatBoostingBerry(enum Item item); +bool32 CanKnockOffItem(u32 fromBattler, u32 battler, enum Item item); bool32 IsAbilityOfRating(enum Ability ability, s32 rating); bool32 AI_IsAbilityOnSide(u32 battlerId, enum Ability ability); bool32 AI_MoveMakesContact(enum Ability ability, enum HoldEffect holdEffect, enum Move move); diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 6509752fad..3089e7e441 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -319,7 +319,7 @@ void BtlController_EmitBallThrowAnim(u32 battler, u32 bufferId, u8 caseId); void BtlController_EmitMoveAnimation(u32 battler, u32 bufferId, enum Move move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, u8 multihit); void BtlController_EmitPrintString(u32 battler, u32 bufferId, enum StringID stringId); void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, enum StringID stringId); -void BtlController_EmitChooseAction(u32 battler, u32 bufferId, u8 action, u16 itemId); +void BtlController_EmitChooseAction(u32 battler, u32 bufferId, u8 action, enum Item itemId); void BtlController_EmitYesNoBox(u32 battler, u32 bufferId); void BtlController_EmitChooseMove(u32 battler, u32 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); void BtlController_EmitChooseItem(u32 battler, u32 bufferId, u8 *battlePartyOrder); diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index 26c2cd0bed..a17b213671 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -18,7 +18,7 @@ struct StatFractions struct PickupItem { - u16 itemId; + enum Item itemId; u8 percentage[10]; }; diff --git a/include/battle_util.h b/include/battle_util.h index 149509bc91..0b060f4e2c 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -240,7 +240,7 @@ void HandleAction_ThrowBall(void); uq4_12_t CalcTypeEffectivenessMultiplierHelper(enum Move move, enum Type moveType, u32 battlerAtk, u32 battlerDef, enum Ability abilityAtk, enum Ability abilityDef, bool32 recordAbilities); u32 GetCurrentBattleWeather(void); bool32 EndOrContinueWeather(void); -bool32 IsUnnerveBlocked(u32 battler, u32 itemId); +bool32 IsUnnerveBlocked(u32 battler, enum Item itemId); bool32 IsAffectedByFollowMe(u32 battlerAtk, enum BattleSide defSide, enum Move move); void DetermineTarget(enum MoveTarget moveTarget, bool32 overwriteTarget); void HandleAction_UseMove(void); @@ -347,7 +347,7 @@ u32 GetBattleFormChangeTargetSpecies(u32 battler, enum FormChanges method); bool32 TryRevertPartyMonFormChange(u32 partyIndex); bool32 TryBattleFormChange(u32 battler, enum FormChanges method); bool32 DoBattlersShareType(u32 battler1, u32 battler2); -bool32 CanBattlerGetOrLoseItem(u32 fromBattler, u32 battler, u16 itemId); +bool32 CanBattlerGetOrLoseItem(u32 fromBattler, u32 battler, enum Item itemId); u32 GetBattlerVisualSpecies(u32 battler); bool32 TryClearIllusion(u32 battler, enum Ability ability); u32 GetIllusionMonSpecies(u32 battler); @@ -364,15 +364,15 @@ bool32 CanFling(u32 battlerAtk, u32 battlerDef); bool32 IsTelekinesisBannedSpecies(u16 species); bool32 IsHealBlockPreventingMove(u32 battler, enum Move move); bool32 IsBelchPreventingMove(u32 battler, enum Move move); -bool32 HasEnoughHpToEatBerry(u32 battler, enum Ability ability, u32 hpFraction, u32 itemId); +bool32 HasEnoughHpToEatBerry(u32 battler, enum Ability ability, u32 hpFraction, enum Item itemId); bool32 IsPartnerMonFromSameTrainer(u32 battler); enum DamageCategory GetCategoryBasedOnStats(u32 battler); void SetShellSideArmCategory(void); bool32 MoveIsAffectedBySheerForce(enum Move move); bool32 IsSheerForceAffected(enum Move move, enum Ability ability); void TryRestoreHeldItems(void); -bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item); -void TrySaveExchangedItem(u32 battler, u16 stolenItem); +bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, enum Item item); +void TrySaveExchangedItem(u32 battler, enum Item stolenItem); bool32 IsBattlerAffectedByHazards(u32 battler, enum HoldEffect holdEffect, bool32 toxicSpikes); void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast); bool32 CompareStat(u32 battler, enum Stat statId, u32 cmpTo, u32 cmpKind, enum Ability ability); @@ -450,11 +450,11 @@ void UpdateStallMons(void); bool32 TrySwitchInEjectPack(enum EjectPackTiming timing); bool32 EmergencyExitCanBeTriggered(u32 battler); bool32 TryTriggerSymbiosis(u32 battler, u32 ally); -bool32 TrySymbiosis(u32 battler, u32 itemId, bool32 moveEnd); +bool32 TrySymbiosis(u32 battler, enum Item itemId, bool32 moveEnd); void BestowItem(u32 battlerAtk, u32 battlerDef); ARM_FUNC u32 GetBattlerVolatile(u32 battler, enum Volatile _volatile); void SetMonVolatile(u32 battler, enum Volatile _volatile, u32 newValue); -bool32 ItemHealMonVolatile(u32 battler, u16 itemId); +bool32 ItemHealMonVolatile(u32 battler, enum Item itemId); void PushHazardTypeToQueue(enum BattleSide side, enum Hazards hazardType); bool32 IsHazardOnSide(enum BattleSide side, enum Hazards hazardType); bool32 AreAnyHazardsOnSide(enum BattleSide side); diff --git a/include/battle_z_move.h b/include/battle_z_move.h index 8677364c18..ff8b424bb3 100644 --- a/include/battle_z_move.h +++ b/include/battle_z_move.h @@ -8,7 +8,7 @@ struct SignatureZMove { u16 species; - u16 item; + enum Item item; enum Move move; enum Move zmove; }; @@ -20,7 +20,7 @@ void ActivateZMove(u32 battler); bool32 IsViableZMove(u32 battler, enum Move move); bool32 TryChangeZTrigger(u32 battler, u32 moveIndex); enum Move GetTypeBasedZMove(enum Move move); -enum Move GetSignatureZMove(enum Move move, u32 species, u32 item); +enum Move GetSignatureZMove(enum Move move, u32 species, enum Item item); bool32 MoveSelectionDisplayZMove(enum Move zmove, u32 battler); void SetZEffect(void); void AssignUsableZMoves(u32 battler, enum Move *moves); diff --git a/include/berry.h b/include/berry.h index 4aad7daa68..7b45dbf14e 100644 --- a/include/berry.h +++ b/include/berry.h @@ -14,7 +14,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 allowGrowth); void RemoveBerryTree(u8 id); u8 GetBerryTypeByBerryTreeId(u8 id); u8 GetStageByBerryTreeId(u8 id); -u8 ItemIdToBerryType(u16 item); +u8 ItemIdToBerryType(enum Item item); void GetBerryNameByBerryType(u8 berry, u8 *string); void Bag_ChooseBerry(void); void Bag_ChooseMulch(void); diff --git a/include/constants/items.h b/include/constants/items.h index 5def61a24c..85d408ddc9 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -1,640 +1,1064 @@ #ifndef GUARD_CONSTANTS_ITEMS_H #define GUARD_CONSTANTS_ITEMS_H -#define ITEM_NONE 0 +#include "metaprogram.h" +#include "constants/tms_hms.h" -// Poké Balls -#define ITEM_POKE_BALL 1 -#define ITEM_GREAT_BALL 2 -#define ITEM_ULTRA_BALL 3 -#define ITEM_MASTER_BALL 4 -#define ITEM_PREMIER_BALL 5 -#define ITEM_HEAL_BALL 6 -#define ITEM_NET_BALL 7 -#define ITEM_NEST_BALL 8 -#define ITEM_DIVE_BALL 9 -#define ITEM_DUSK_BALL 10 -#define ITEM_TIMER_BALL 11 -#define ITEM_QUICK_BALL 12 -#define ITEM_REPEAT_BALL 13 -#define ITEM_LUXURY_BALL 14 -#define ITEM_LEVEL_BALL 15 -#define ITEM_LURE_BALL 16 -#define ITEM_MOON_BALL 17 -#define ITEM_FRIEND_BALL 18 -#define ITEM_LOVE_BALL 19 -#define ITEM_FAST_BALL 20 -#define ITEM_HEAVY_BALL 21 -#define ITEM_DREAM_BALL 22 -#define ITEM_SAFARI_BALL 23 -#define ITEM_SPORT_BALL 24 -#define ITEM_PARK_BALL 25 -#define ITEM_BEAST_BALL 26 -#define ITEM_CHERISH_BALL 27 +enum __attribute__((packed)) Item +{ + ITEM_NONE = 0, -// Medicine -#define ITEM_POTION 28 -#define ITEM_SUPER_POTION 29 -#define ITEM_HYPER_POTION 30 -#define ITEM_MAX_POTION 31 -#define ITEM_FULL_RESTORE 32 -#define ITEM_REVIVE 33 -#define ITEM_MAX_REVIVE 34 -#define ITEM_FRESH_WATER 35 -#define ITEM_SODA_POP 36 -#define ITEM_LEMONADE 37 -#define ITEM_MOOMOO_MILK 38 -#define ITEM_ENERGY_POWDER 39 -#define ITEM_ENERGYPOWDER ITEM_ENERGY_POWDER // Pre-Gen VI name -#define ITEM_ENERGY_ROOT 40 -#define ITEM_HEAL_POWDER 41 -#define ITEM_REVIVAL_HERB 42 -#define ITEM_ANTIDOTE 43 -#define ITEM_PARALYZE_HEAL 44 -#define ITEM_PARLYZ_HEAL ITEM_PARALYZE_HEAL // Pre-Gen VI name -#define ITEM_BURN_HEAL 45 -#define ITEM_ICE_HEAL 46 -#define ITEM_AWAKENING 47 -#define ITEM_FULL_HEAL 48 -#define ITEM_ETHER 49 -#define ITEM_MAX_ETHER 50 -#define ITEM_ELIXIR 51 -#define ITEM_ELIXER ITEM_ELIXIR // Pre-Gen III name -#define ITEM_MAX_ELIXIR 52 -#define ITEM_MAX_ELIXER ITEM_MAX_ELIXIR // Pre-Gen III name -#define ITEM_BERRY_JUICE 53 -#define ITEM_SACRED_ASH 54 -#define ITEM_SWEET_HEART 55 -#define ITEM_MAX_HONEY 56 + // Poké Balls + ITEM_POKE_BALL = 1, + ITEM_GREAT_BALL = 2, + ITEM_ULTRA_BALL = 3, + ITEM_MASTER_BALL = 4, + ITEM_PREMIER_BALL = 5, + ITEM_HEAL_BALL = 6, + ITEM_NET_BALL = 7, + ITEM_NEST_BALL = 8, + ITEM_DIVE_BALL = 9, + ITEM_DUSK_BALL = 10, + ITEM_TIMER_BALL = 11, + ITEM_QUICK_BALL = 12, + ITEM_REPEAT_BALL = 13, + ITEM_LUXURY_BALL = 14, + ITEM_LEVEL_BALL = 15, + ITEM_LURE_BALL = 16, + ITEM_MOON_BALL = 17, + ITEM_FRIEND_BALL = 18, + ITEM_LOVE_BALL = 19, + ITEM_FAST_BALL = 20, + ITEM_HEAVY_BALL = 21, + ITEM_DREAM_BALL = 22, + ITEM_SAFARI_BALL = 23, + ITEM_SPORT_BALL = 24, + ITEM_PARK_BALL = 25, + ITEM_BEAST_BALL = 26, + ITEM_CHERISH_BALL = 27, -// Regional Specialties -#define ITEM_PEWTER_CRUNCHIES 57 -#define ITEM_RAGE_CANDY_BAR 58 -#define ITEM_RAGECANDYBAR ITEM_RAGE_CANDY_BAR // Pre-Gen VI name -#define ITEM_LAVA_COOKIE 59 -#define ITEM_OLD_GATEAU 60 -#define ITEM_CASTELIACONE 61 -#define ITEM_LUMIOSE_GALETTE 62 -#define ITEM_SHALOUR_SABLE 63 -#define ITEM_BIG_MALASADA 64 + // Medicine + ITEM_POTION = 28, + ITEM_SUPER_POTION = 29, + ITEM_HYPER_POTION = 30, + ITEM_MAX_POTION = 31, + ITEM_FULL_RESTORE = 32, + ITEM_REVIVE = 33, + ITEM_MAX_REVIVE = 34, + ITEM_FRESH_WATER = 35, + ITEM_SODA_POP = 36, + ITEM_LEMONADE = 37, + ITEM_MOOMOO_MILK = 38, + ITEM_ENERGY_POWDER = 39, + ITEM_ENERGYPOWDER = ITEM_ENERGY_POWDER, // Pre-Gen VI name + ITEM_ENERGY_ROOT = 40, + ITEM_HEAL_POWDER = 41, + ITEM_REVIVAL_HERB = 42, + ITEM_ANTIDOTE = 43, + ITEM_PARALYZE_HEAL = 44, + ITEM_PARLYZ_HEAL = ITEM_PARALYZE_HEAL, // Pre-Gen VI name + ITEM_BURN_HEAL = 45, + ITEM_ICE_HEAL = 46, + ITEM_AWAKENING = 47, + ITEM_FULL_HEAL = 48, + ITEM_ETHER = 49, + ITEM_MAX_ETHER = 50, + ITEM_ELIXIR = 51, + ITEM_ELIXER = ITEM_ELIXIR, // Pre-Gen III name + ITEM_MAX_ELIXIR = 52, + ITEM_MAX_ELIXER = ITEM_MAX_ELIXIR, // Pre-Gen III name + ITEM_BERRY_JUICE = 53, + ITEM_SACRED_ASH = 54, + ITEM_SWEET_HEART = 55, + ITEM_MAX_HONEY = 56, -// Vitamins -#define ITEM_HP_UP 65 -#define ITEM_PROTEIN 66 -#define ITEM_IRON 67 -#define ITEM_CALCIUM 68 -#define ITEM_ZINC 69 -#define ITEM_CARBOS 70 -#define ITEM_PP_UP 71 -#define ITEM_PP_MAX 72 + // Regional Specialties + ITEM_PEWTER_CRUNCHIES = 57, + ITEM_RAGE_CANDY_BAR = 58, + ITEM_RAGECANDYBAR = ITEM_RAGE_CANDY_BAR, // Pre-Gen VI name + ITEM_LAVA_COOKIE = 59, + ITEM_OLD_GATEAU = 60, + ITEM_CASTELIACONE = 61, + ITEM_LUMIOSE_GALETTE = 62, + ITEM_SHALOUR_SABLE = 63, + ITEM_BIG_MALASADA = 64, -// EV Feathers -#define ITEM_HEALTH_FEATHER 73 -#define ITEM_HEALTH_WING ITEM_HEALTH_FEATHER // Pre-Gen VIII name -#define ITEM_MUSCLE_FEATHER 74 -#define ITEM_MUSCLE_WING ITEM_MUSCLE_FEATHER // Pre-Gen VIII name -#define ITEM_RESIST_FEATHER 75 -#define ITEM_RESIST_WING ITEM_RESIST_FEATHER // Pre-Gen VIII name -#define ITEM_GENIUS_FEATHER 76 -#define ITEM_GENIUS_WING ITEM_GENIUS_FEATHER // Pre-Gen VIII name -#define ITEM_CLEVER_FEATHER 77 -#define ITEM_CLEVER_WING ITEM_CLEVER_FEATHER // Pre-Gen VIII name -#define ITEM_SWIFT_FEATHER 78 -#define ITEM_SWIFT_WING ITEM_SWIFT_FEATHER // Pre-Gen VIII name + // Vitamins + ITEM_HP_UP = 65, + ITEM_PROTEIN = 66, + ITEM_IRON = 67, + ITEM_CALCIUM = 68, + ITEM_ZINC = 69, + ITEM_CARBOS = 70, + ITEM_PP_UP = 71, + ITEM_PP_MAX = 72, -// Ability Modifiers -#define ITEM_ABILITY_CAPSULE 79 -#define ITEM_ABILITY_PATCH 80 + // EV Feathers + ITEM_HEALTH_FEATHER = 73, + ITEM_HEALTH_WING = ITEM_HEALTH_FEATHER, // Pre-Gen VIII name + ITEM_MUSCLE_FEATHER = 74, + ITEM_MUSCLE_WING = ITEM_MUSCLE_FEATHER, // Pre-Gen VIII name + ITEM_RESIST_FEATHER = 75, + ITEM_RESIST_WING = ITEM_RESIST_FEATHER, // Pre-Gen VIII name + ITEM_GENIUS_FEATHER = 76, + ITEM_GENIUS_WING = ITEM_GENIUS_FEATHER, // Pre-Gen VIII name + ITEM_CLEVER_FEATHER = 77, + ITEM_CLEVER_WING = ITEM_CLEVER_FEATHER, // Pre-Gen VIII name + ITEM_SWIFT_FEATHER = 78, + ITEM_SWIFT_WING = ITEM_SWIFT_FEATHER, // Pre-Gen VIII name -// Mints -#define ITEM_LONELY_MINT 81 -#define ITEM_ADAMANT_MINT 82 -#define ITEM_NAUGHTY_MINT 83 -#define ITEM_BRAVE_MINT 84 -#define ITEM_BOLD_MINT 85 -#define ITEM_IMPISH_MINT 86 -#define ITEM_LAX_MINT 87 -#define ITEM_RELAXED_MINT 88 -#define ITEM_MODEST_MINT 89 -#define ITEM_MILD_MINT 90 -#define ITEM_RASH_MINT 91 -#define ITEM_QUIET_MINT 92 -#define ITEM_CALM_MINT 93 -#define ITEM_GENTLE_MINT 94 -#define ITEM_CAREFUL_MINT 95 -#define ITEM_SASSY_MINT 96 -#define ITEM_TIMID_MINT 97 -#define ITEM_HASTY_MINT 98 -#define ITEM_JOLLY_MINT 99 -#define ITEM_NAIVE_MINT 100 -#define ITEM_SERIOUS_MINT 101 + // Ability Modifiers + ITEM_ABILITY_CAPSULE = 79, + ITEM_ABILITY_PATCH = 80, -// Candy -#define ITEM_RARE_CANDY 102 -#define ITEM_EXP_CANDY_XS 103 -#define ITEM_EXP_CANDY_S 104 -#define ITEM_EXP_CANDY_M 105 -#define ITEM_EXP_CANDY_L 106 -#define ITEM_EXP_CANDY_XL 107 -#define ITEM_DYNAMAX_CANDY 108 + // Mints + ITEM_LONELY_MINT = 81, + ITEM_ADAMANT_MINT = 82, + ITEM_NAUGHTY_MINT = 83, + ITEM_BRAVE_MINT = 84, + ITEM_BOLD_MINT = 85, + ITEM_IMPISH_MINT = 86, + ITEM_LAX_MINT = 87, + ITEM_RELAXED_MINT = 88, + ITEM_MODEST_MINT = 89, + ITEM_MILD_MINT = 90, + ITEM_RASH_MINT = 91, + ITEM_QUIET_MINT = 92, + ITEM_CALM_MINT = 93, + ITEM_GENTLE_MINT = 94, + ITEM_CAREFUL_MINT = 95, + ITEM_SASSY_MINT = 96, + ITEM_TIMID_MINT = 97, + ITEM_HASTY_MINT = 98, + ITEM_JOLLY_MINT = 99, + ITEM_NAIVE_MINT = 100, + ITEM_SERIOUS_MINT = 101, -// Medicinal Flutes -#define ITEM_BLUE_FLUTE 109 -#define ITEM_YELLOW_FLUTE 110 -#define ITEM_RED_FLUTE 111 + // Candy + ITEM_RARE_CANDY = 102, + ITEM_EXP_CANDY_XS = 103, + ITEM_EXP_CANDY_S = 104, + ITEM_EXP_CANDY_M = 105, + ITEM_EXP_CANDY_L = 106, + ITEM_EXP_CANDY_XL = 107, + ITEM_DYNAMAX_CANDY = 108, -// Encounter-modifying Flutes -#define ITEM_BLACK_FLUTE 112 -#define ITEM_WHITE_FLUTE 113 + // Medicinal Flutes + ITEM_BLUE_FLUTE = 109, + ITEM_YELLOW_FLUTE = 110, + ITEM_RED_FLUTE = 111, -// Encounter Modifiers -#define ITEM_REPEL 114 -#define ITEM_SUPER_REPEL 115 -#define ITEM_MAX_REPEL 116 -#define ITEM_LURE 117 -#define ITEM_SUPER_LURE 118 -#define ITEM_MAX_LURE 119 + // Encounter-modifying Flutes + ITEM_BLACK_FLUTE = 112, + ITEM_WHITE_FLUTE = 113, -#define ITEM_ESCAPE_ROPE 120 + // Encounter Modifiers + ITEM_REPEL = 114, + ITEM_SUPER_REPEL = 115, + ITEM_MAX_REPEL = 116, + ITEM_LURE = 117, + ITEM_SUPER_LURE = 118, + ITEM_MAX_LURE = 119, -// X Items -#define ITEM_X_ATTACK 121 -#define ITEM_X_DEFENSE 122 -#define ITEM_X_DEFEND ITEM_X_DEFENSE // Pre-Gen VI name -#define ITEM_X_SP_ATK 123 -#define ITEM_X_SPECIAL ITEM_X_SP_ATK // Pre-Gen VI name -#define ITEM_X_SP_DEF 124 -#define ITEM_X_SPEED 125 -#define ITEM_X_ACCURACY 126 + ITEM_ESCAPE_ROPE = 120, -#define ITEM_DIRE_HIT 127 -#define ITEM_GUARD_SPEC 128 + // X Items + ITEM_X_ATTACK = 121, + ITEM_X_DEFENSE = 122, + ITEM_X_DEFEND = ITEM_X_DEFENSE, // Pre-Gen VI name + ITEM_X_SP_ATK = 123, + ITEM_X_SPECIAL = ITEM_X_SP_ATK, // Pre-Gen VI name + ITEM_X_SP_DEF = 124, + ITEM_X_SPEED = 125, + ITEM_X_ACCURACY = 126, -// Escape Items -#define ITEM_POKE_DOLL 129 -#define ITEM_FLUFFY_TAIL 130 -#define ITEM_POKE_TOY 131 + ITEM_DIRE_HIT = 127, + ITEM_GUARD_SPEC = 128, -#define ITEM_MAX_MUSHROOMS 132 + // Escape Items + ITEM_POKE_DOLL = 129, + ITEM_FLUFFY_TAIL = 130, + ITEM_POKE_TOY = 131, -// Treasures -#define ITEM_BOTTLE_CAP 133 -#define ITEM_GOLD_BOTTLE_CAP 134 -#define ITEM_NUGGET 135 -#define ITEM_BIG_NUGGET 136 -#define ITEM_TINY_MUSHROOM 137 -#define ITEM_TINYMUSHROOM ITEM_TINY_MUSHROOM // Pre-Gen VI name -#define ITEM_BIG_MUSHROOM 138 -#define ITEM_BALM_MUSHROOM 139 -#define ITEM_BALMMUSHROOM ITEM_BALM_MUSHROOM // Pre-Gen VI name -#define ITEM_PEARL 140 -#define ITEM_BIG_PEARL 141 -#define ITEM_PEARL_STRING 142 -#define ITEM_STARDUST 143 -#define ITEM_STAR_PIECE 144 -#define ITEM_COMET_SHARD 145 -#define ITEM_SHOAL_SALT 146 -#define ITEM_SHOAL_SHELL 147 -#define ITEM_RED_SHARD 148 -#define ITEM_BLUE_SHARD 149 -#define ITEM_YELLOW_SHARD 150 -#define ITEM_GREEN_SHARD 151 -#define ITEM_HEART_SCALE 152 -#define ITEM_HONEY 153 -#define ITEM_RARE_BONE 154 -#define ITEM_ODD_KEYSTONE 155 -#define ITEM_PRETTY_FEATHER 156 -#define ITEM_PRETTY_WING ITEM_PRETTY_FEATHER // Pre-Gen VIII name -#define ITEM_RELIC_COPPER 157 -#define ITEM_RELIC_SILVER 158 -#define ITEM_RELIC_GOLD 159 -#define ITEM_RELIC_VASE 160 -#define ITEM_RELIC_BAND 161 -#define ITEM_RELIC_STATUE 162 -#define ITEM_RELIC_CROWN 163 -#define ITEM_STRANGE_SOUVENIR 164 + ITEM_MAX_MUSHROOMS = 132, -// Fossils -#define ITEM_HELIX_FOSSIL 165 -#define ITEM_DOME_FOSSIL 166 -#define ITEM_OLD_AMBER 167 -#define ITEM_ROOT_FOSSIL 168 -#define ITEM_CLAW_FOSSIL 169 -#define ITEM_ARMOR_FOSSIL 170 -#define ITEM_SKULL_FOSSIL 171 -#define ITEM_COVER_FOSSIL 172 -#define ITEM_PLUME_FOSSIL 173 -#define ITEM_JAW_FOSSIL 174 -#define ITEM_SAIL_FOSSIL 175 -#define ITEM_FOSSILIZED_BIRD 176 -#define ITEM_FOSSILIZED_FISH 177 -#define ITEM_FOSSILIZED_DRAKE 178 -#define ITEM_FOSSILIZED_DINO 179 + // Treasures + ITEM_BOTTLE_CAP = 133, + ITEM_GOLD_BOTTLE_CAP = 134, + ITEM_NUGGET = 135, + ITEM_BIG_NUGGET = 136, + ITEM_TINY_MUSHROOM = 137, + ITEM_TINYMUSHROOM = ITEM_TINY_MUSHROOM, // Pre-Gen VI name + ITEM_BIG_MUSHROOM = 138, + ITEM_BALM_MUSHROOM = 139, + ITEM_BALMMUSHROOM = ITEM_BALM_MUSHROOM, // Pre-Gen VI name + ITEM_PEARL = 140, + ITEM_BIG_PEARL = 141, + ITEM_PEARL_STRING = 142, + ITEM_STARDUST = 143, + ITEM_STAR_PIECE = 144, + ITEM_COMET_SHARD = 145, + ITEM_SHOAL_SALT = 146, + ITEM_SHOAL_SHELL = 147, + ITEM_RED_SHARD = 148, + ITEM_BLUE_SHARD = 149, + ITEM_YELLOW_SHARD = 150, + ITEM_GREEN_SHARD = 151, + ITEM_HEART_SCALE = 152, + ITEM_HONEY = 153, + ITEM_RARE_BONE = 154, + ITEM_ODD_KEYSTONE = 155, + ITEM_PRETTY_FEATHER = 156, + ITEM_PRETTY_WING = ITEM_PRETTY_FEATHER, // Pre-Gen VIII name + ITEM_RELIC_COPPER = 157, + ITEM_RELIC_SILVER = 158, + ITEM_RELIC_GOLD = 159, + ITEM_RELIC_VASE = 160, + ITEM_RELIC_BAND = 161, + ITEM_RELIC_STATUE = 162, + ITEM_RELIC_CROWN = 163, + ITEM_STRANGE_SOUVENIR = 164, -// Mulch -#define ITEM_GROWTH_MULCH 180 -#define ITEM_DAMP_MULCH 181 -#define ITEM_STABLE_MULCH 182 -#define ITEM_GOOEY_MULCH 183 -#define ITEM_RICH_MULCH 184 -#define ITEM_SURPRISE_MULCH 185 -#define ITEM_BOOST_MULCH 186 -#define ITEM_AMAZE_MULCH 187 + // Fossils + ITEM_HELIX_FOSSIL = 165, + ITEM_DOME_FOSSIL = 166, + ITEM_OLD_AMBER = 167, + ITEM_ROOT_FOSSIL = 168, + ITEM_CLAW_FOSSIL = 169, + ITEM_ARMOR_FOSSIL = 170, + ITEM_SKULL_FOSSIL = 171, + ITEM_COVER_FOSSIL = 172, + ITEM_PLUME_FOSSIL = 173, + ITEM_JAW_FOSSIL = 174, + ITEM_SAIL_FOSSIL = 175, + ITEM_FOSSILIZED_BIRD = 176, + ITEM_FOSSILIZED_FISH = 177, + ITEM_FOSSILIZED_DRAKE = 178, + ITEM_FOSSILIZED_DINO = 179, -// Apricorns -#define ITEM_RED_APRICORN 188 -#define ITEM_BLUE_APRICORN 189 -#define ITEM_BLU_APRICORN ITEM_BLUE_APRICORN // Pre-Gen VI name -#define ITEM_YELLOW_APRICORN 190 -#define ITEM_YLW_APRICORN ITEM_YELLOW_APRICORN // Pre-Gen VI name -#define ITEM_GREEN_APRICORN 191 -#define ITEM_GRN_APRICORN ITEM_GREEN_APRICORN // Pre-Gen VI name -#define ITEM_PINK_APRICORN 192 -#define ITEM_PNK_APRICORN ITEM_PINK_APRICORN // Pre-Gen VI name -#define ITEM_WHITE_APRICORN 193 -#define ITEM_WHT_APRICORN ITEM_WHITE_APRICORN // Pre-Gen VI name -#define ITEM_BLACK_APRICORN 194 -#define ITEM_BLK_APRICORN ITEM_BLACK_APRICORN // Pre-Gen VI name + // Mulch + ITEM_GROWTH_MULCH = 180, + ITEM_DAMP_MULCH = 181, + ITEM_STABLE_MULCH = 182, + ITEM_GOOEY_MULCH = 183, + ITEM_RICH_MULCH = 184, + ITEM_SURPRISE_MULCH = 185, + ITEM_BOOST_MULCH = 186, + ITEM_AMAZE_MULCH = 187, -#define ITEM_WISHING_PIECE 195 -#define ITEM_GALARICA_TWIG 196 -#define ITEM_ARMORITE_ORE 197 -#define ITEM_DYNITE_ORE 198 + // Apricorns + ITEM_RED_APRICORN = 188, + ITEM_BLUE_APRICORN = 189, + ITEM_BLU_APRICORN = ITEM_BLUE_APRICORN, // Pre-Gen VI name + ITEM_YELLOW_APRICORN = 190, + ITEM_YLW_APRICORN = ITEM_YELLOW_APRICORN, // Pre-Gen VI name + ITEM_GREEN_APRICORN = 191, + ITEM_GRN_APRICORN = ITEM_GREEN_APRICORN, // Pre-Gen VI name + ITEM_PINK_APRICORN = 192, + ITEM_PNK_APRICORN = ITEM_PINK_APRICORN, // Pre-Gen VI name + ITEM_WHITE_APRICORN = 193, + ITEM_WHT_APRICORN = ITEM_WHITE_APRICORN, // Pre-Gen VI name + ITEM_BLACK_APRICORN = 194, + ITEM_BLK_APRICORN = ITEM_BLACK_APRICORN, // Pre-Gen VI name -// Mail -#define ITEM_ORANGE_MAIL 199 -#define ITEM_HARBOR_MAIL 200 -#define ITEM_GLITTER_MAIL 201 -#define ITEM_MECH_MAIL 202 -#define ITEM_WOOD_MAIL 203 -#define ITEM_WAVE_MAIL 204 -#define ITEM_BEAD_MAIL 205 -#define ITEM_SHADOW_MAIL 206 -#define ITEM_TROPIC_MAIL 207 -#define ITEM_DREAM_MAIL 208 -#define ITEM_FAB_MAIL 209 -#define ITEM_RETRO_MAIL 210 + ITEM_WISHING_PIECE = 195, + ITEM_GALARICA_TWIG = 196, + ITEM_ARMORITE_ORE = 197, + ITEM_DYNITE_ORE = 198, -#define FIRST_MAIL_INDEX ITEM_ORANGE_MAIL + // Mail + FIRST_MAIL_INDEX = 199, + ITEM_ORANGE_MAIL = FIRST_MAIL_INDEX, + ITEM_HARBOR_MAIL = 200, + ITEM_GLITTER_MAIL = 201, + ITEM_MECH_MAIL = 202, + ITEM_WOOD_MAIL = 203, + ITEM_WAVE_MAIL = 204, + ITEM_BEAD_MAIL = 205, + ITEM_SHADOW_MAIL = 206, + ITEM_TROPIC_MAIL = 207, + ITEM_DREAM_MAIL = 208, + ITEM_FAB_MAIL = 209, + ITEM_RETRO_MAIL = 210, -// Evolution Items -#define ITEM_FIRE_STONE 211 -#define ITEM_WATER_STONE 212 -#define ITEM_THUNDER_STONE 213 -#define ITEM_THUNDERSTONE ITEM_THUNDER_STONE // Pre-Gen VI name -#define ITEM_LEAF_STONE 214 -#define ITEM_ICE_STONE 215 -#define ITEM_SUN_STONE 216 -#define ITEM_MOON_STONE 217 -#define ITEM_SHINY_STONE 218 -#define ITEM_DUSK_STONE 219 -#define ITEM_DAWN_STONE 220 -#define ITEM_SWEET_APPLE 221 -#define ITEM_TART_APPLE 222 -#define ITEM_CRACKED_POT 223 -#define ITEM_CHIPPED_POT 224 -#define ITEM_GALARICA_CUFF 225 -#define ITEM_GALARICA_WREATH 226 -#define ITEM_DRAGON_SCALE 227 -#define ITEM_UPGRADE 228 -#define ITEM_UP_GRADE ITEM_UPGRADE // Pre-Gen VIII name -#define ITEM_PROTECTOR 229 -#define ITEM_ELECTIRIZER 230 -#define ITEM_MAGMARIZER 231 -#define ITEM_DUBIOUS_DISC 232 -#define ITEM_REAPER_CLOTH 233 -#define ITEM_PRISM_SCALE 234 -#define ITEM_WHIPPED_DREAM 235 -#define ITEM_SACHET 236 -#define ITEM_OVAL_STONE 237 -#define ITEM_STRAWBERRY_SWEET 238 -#define ITEM_LOVE_SWEET 239 -#define ITEM_BERRY_SWEET 240 -#define ITEM_CLOVER_SWEET 241 -#define ITEM_FLOWER_SWEET 242 -#define ITEM_STAR_SWEET 243 -#define ITEM_RIBBON_SWEET 244 + // Evolution Items + ITEM_FIRE_STONE = 211, + ITEM_WATER_STONE = 212, + ITEM_THUNDER_STONE = 213, + ITEM_THUNDERSTONE = ITEM_THUNDER_STONE, // Pre-Gen VI name + ITEM_LEAF_STONE = 214, + ITEM_ICE_STONE = 215, + ITEM_SUN_STONE = 216, + ITEM_MOON_STONE = 217, + ITEM_SHINY_STONE = 218, + ITEM_DUSK_STONE = 219, + ITEM_DAWN_STONE = 220, + ITEM_SWEET_APPLE = 221, + ITEM_TART_APPLE = 222, + ITEM_CRACKED_POT = 223, + ITEM_CHIPPED_POT = 224, + ITEM_GALARICA_CUFF = 225, + ITEM_GALARICA_WREATH = 226, + ITEM_DRAGON_SCALE = 227, + ITEM_UPGRADE = 228, + ITEM_UP_GRADE = ITEM_UPGRADE, // Pre-Gen VIII name + ITEM_PROTECTOR = 229, + ITEM_ELECTIRIZER = 230, + ITEM_MAGMARIZER = 231, + ITEM_DUBIOUS_DISC = 232, + ITEM_REAPER_CLOTH = 233, + ITEM_PRISM_SCALE = 234, + ITEM_WHIPPED_DREAM = 235, + ITEM_SACHET = 236, + ITEM_OVAL_STONE = 237, + ITEM_STRAWBERRY_SWEET = 238, + ITEM_LOVE_SWEET = 239, + ITEM_BERRY_SWEET = 240, + ITEM_CLOVER_SWEET = 241, + ITEM_FLOWER_SWEET = 242, + ITEM_STAR_SWEET = 243, + ITEM_RIBBON_SWEET = 244, -#define ITEM_EVERSTONE 245 + ITEM_EVERSTONE = 245, -// Nectars -#define ITEM_RED_NECTAR 246 -#define ITEM_YELLOW_NECTAR 247 -#define ITEM_PINK_NECTAR 248 -#define ITEM_PURPLE_NECTAR 249 + // Nectars + ITEM_RED_NECTAR = 246, + ITEM_YELLOW_NECTAR = 247, + ITEM_PINK_NECTAR = 248, + ITEM_PURPLE_NECTAR = 249, -// Plates -#define ITEM_FLAME_PLATE 250 -#define ITEM_SPLASH_PLATE 251 -#define ITEM_ZAP_PLATE 252 -#define ITEM_MEADOW_PLATE 253 -#define ITEM_ICICLE_PLATE 254 -#define ITEM_FIST_PLATE 255 -#define ITEM_TOXIC_PLATE 256 -#define ITEM_EARTH_PLATE 257 -#define ITEM_SKY_PLATE 258 -#define ITEM_MIND_PLATE 259 -#define ITEM_INSECT_PLATE 260 -#define ITEM_STONE_PLATE 261 -#define ITEM_SPOOKY_PLATE 262 -#define ITEM_DRACO_PLATE 263 -#define ITEM_DREAD_PLATE 264 -#define ITEM_IRON_PLATE 265 -#define ITEM_PIXIE_PLATE 266 + // Plates + ITEM_FLAME_PLATE = 250, + ITEM_SPLASH_PLATE = 251, + ITEM_ZAP_PLATE = 252, + ITEM_MEADOW_PLATE = 253, + ITEM_ICICLE_PLATE = 254, + ITEM_FIST_PLATE = 255, + ITEM_TOXIC_PLATE = 256, + ITEM_EARTH_PLATE = 257, + ITEM_SKY_PLATE = 258, + ITEM_MIND_PLATE = 259, + ITEM_INSECT_PLATE = 260, + ITEM_STONE_PLATE = 261, + ITEM_SPOOKY_PLATE = 262, + ITEM_DRACO_PLATE = 263, + ITEM_DREAD_PLATE = 264, + ITEM_IRON_PLATE = 265, + ITEM_PIXIE_PLATE = 266, -// Drives -#define ITEM_DOUSE_DRIVE 267 -#define ITEM_SHOCK_DRIVE 268 -#define ITEM_BURN_DRIVE 269 -#define ITEM_CHILL_DRIVE 270 + // Drives + ITEM_DOUSE_DRIVE = 267, + ITEM_SHOCK_DRIVE = 268, + ITEM_BURN_DRIVE = 269, + ITEM_CHILL_DRIVE = 270, -// Memories -#define ITEM_FIRE_MEMORY 271 -#define ITEM_WATER_MEMORY 272 -#define ITEM_ELECTRIC_MEMORY 273 -#define ITEM_GRASS_MEMORY 274 -#define ITEM_ICE_MEMORY 275 -#define ITEM_FIGHTING_MEMORY 276 -#define ITEM_POISON_MEMORY 277 -#define ITEM_GROUND_MEMORY 278 -#define ITEM_FLYING_MEMORY 279 -#define ITEM_PSYCHIC_MEMORY 280 -#define ITEM_BUG_MEMORY 281 -#define ITEM_ROCK_MEMORY 282 -#define ITEM_GHOST_MEMORY 283 -#define ITEM_DRAGON_MEMORY 284 -#define ITEM_DARK_MEMORY 285 -#define ITEM_STEEL_MEMORY 286 -#define ITEM_FAIRY_MEMORY 287 + // Memories + ITEM_FIRE_MEMORY = 271, + ITEM_WATER_MEMORY = 272, + ITEM_ELECTRIC_MEMORY = 273, + ITEM_GRASS_MEMORY = 274, + ITEM_ICE_MEMORY = 275, + ITEM_FIGHTING_MEMORY = 276, + ITEM_POISON_MEMORY = 277, + ITEM_GROUND_MEMORY = 278, + ITEM_FLYING_MEMORY = 279, + ITEM_PSYCHIC_MEMORY = 280, + ITEM_BUG_MEMORY = 281, + ITEM_ROCK_MEMORY = 282, + ITEM_GHOST_MEMORY = 283, + ITEM_DRAGON_MEMORY = 284, + ITEM_DARK_MEMORY = 285, + ITEM_STEEL_MEMORY = 286, + ITEM_FAIRY_MEMORY = 287, -#define ITEM_RUSTED_SWORD 288 -#define ITEM_RUSTED_SHIELD 289 + ITEM_RUSTED_SWORD = 288, + ITEM_RUSTED_SHIELD = 289, -// Colored Orbs -#define ITEM_RED_ORB 290 -#define ITEM_BLUE_ORB 291 + // Colored Orbs + ITEM_RED_ORB = 290, + ITEM_BLUE_ORB = 291, -// Mega Stones -#define ITEM_VENUSAURITE 292 -#define ITEM_CHARIZARDITE_X 293 -#define ITEM_CHARIZARDITE_Y 294 -#define ITEM_BLASTOISINITE 295 -#define ITEM_BEEDRILLITE 296 -#define ITEM_PIDGEOTITE 297 -#define ITEM_ALAKAZITE 298 -#define ITEM_SLOWBRONITE 299 -#define ITEM_GENGARITE 300 -#define ITEM_KANGASKHANITE 301 -#define ITEM_PINSIRITE 302 -#define ITEM_GYARADOSITE 303 -#define ITEM_AERODACTYLITE 304 -#define ITEM_MEWTWONITE_X 305 -#define ITEM_MEWTWONITE_Y 306 -#define ITEM_AMPHAROSITE 307 -#define ITEM_STEELIXITE 308 -#define ITEM_SCIZORITE 309 -#define ITEM_HERACRONITE 310 -#define ITEM_HOUNDOOMINITE 311 -#define ITEM_TYRANITARITE 312 -#define ITEM_SCEPTILITE 313 -#define ITEM_BLAZIKENITE 314 -#define ITEM_SWAMPERTITE 315 -#define ITEM_GARDEVOIRITE 316 -#define ITEM_SABLENITE 317 -#define ITEM_MAWILITE 318 -#define ITEM_AGGRONITE 319 -#define ITEM_MEDICHAMITE 320 -#define ITEM_MANECTITE 321 -#define ITEM_SHARPEDONITE 322 -#define ITEM_CAMERUPTITE 323 -#define ITEM_ALTARIANITE 324 -#define ITEM_BANETTITE 325 -#define ITEM_ABSOLITE 326 -#define ITEM_GLALITITE 327 -#define ITEM_SALAMENCITE 328 -#define ITEM_METAGROSSITE 329 -#define ITEM_LATIASITE 330 -#define ITEM_LATIOSITE 331 -#define ITEM_LOPUNNITE 332 -#define ITEM_GARCHOMPITE 333 -#define ITEM_LUCARIONITE 334 -#define ITEM_ABOMASITE 335 -#define ITEM_GALLADITE 336 -#define ITEM_AUDINITE 337 -#define ITEM_DIANCITE 338 + // Mega Stones + ITEM_VENUSAURITE = 292, + ITEM_CHARIZARDITE_X = 293, + ITEM_CHARIZARDITE_Y = 294, + ITEM_BLASTOISINITE = 295, + ITEM_BEEDRILLITE = 296, + ITEM_PIDGEOTITE = 297, + ITEM_ALAKAZITE = 298, + ITEM_SLOWBRONITE = 299, + ITEM_GENGARITE = 300, + ITEM_KANGASKHANITE = 301, + ITEM_PINSIRITE = 302, + ITEM_GYARADOSITE = 303, + ITEM_AERODACTYLITE = 304, + ITEM_MEWTWONITE_X = 305, + ITEM_MEWTWONITE_Y = 306, + ITEM_AMPHAROSITE = 307, + ITEM_STEELIXITE = 308, + ITEM_SCIZORITE = 309, + ITEM_HERACRONITE = 310, + ITEM_HOUNDOOMINITE = 311, + ITEM_TYRANITARITE = 312, + ITEM_SCEPTILITE = 313, + ITEM_BLAZIKENITE = 314, + ITEM_SWAMPERTITE = 315, + ITEM_GARDEVOIRITE = 316, + ITEM_SABLENITE = 317, + ITEM_MAWILITE = 318, + ITEM_AGGRONITE = 319, + ITEM_MEDICHAMITE = 320, + ITEM_MANECTITE = 321, + ITEM_SHARPEDONITE = 322, + ITEM_CAMERUPTITE = 323, + ITEM_ALTARIANITE = 324, + ITEM_BANETTITE = 325, + ITEM_ABSOLITE = 326, + ITEM_GLALITITE = 327, + ITEM_SALAMENCITE = 328, + ITEM_METAGROSSITE = 329, + ITEM_LATIASITE = 330, + ITEM_LATIOSITE = 331, + ITEM_LOPUNNITE = 332, + ITEM_GARCHOMPITE = 333, + ITEM_LUCARIONITE = 334, + ITEM_ABOMASITE = 335, + ITEM_GALLADITE = 336, + ITEM_AUDINITE = 337, + ITEM_DIANCITE = 338, -// Gems -#define ITEM_NORMAL_GEM 339 -#define ITEM_FIRE_GEM 340 -#define ITEM_WATER_GEM 341 -#define ITEM_ELECTRIC_GEM 342 -#define ITEM_GRASS_GEM 343 -#define ITEM_ICE_GEM 344 -#define ITEM_FIGHTING_GEM 345 -#define ITEM_POISON_GEM 346 -#define ITEM_GROUND_GEM 347 -#define ITEM_FLYING_GEM 348 -#define ITEM_PSYCHIC_GEM 349 -#define ITEM_BUG_GEM 350 -#define ITEM_ROCK_GEM 351 -#define ITEM_GHOST_GEM 352 -#define ITEM_DRAGON_GEM 353 -#define ITEM_DARK_GEM 354 -#define ITEM_STEEL_GEM 355 -#define ITEM_FAIRY_GEM 356 + // Gems + ITEM_NORMAL_GEM = 339, + ITEM_FIRE_GEM = 340, + ITEM_WATER_GEM = 341, + ITEM_ELECTRIC_GEM = 342, + ITEM_GRASS_GEM = 343, + ITEM_ICE_GEM = 344, + ITEM_FIGHTING_GEM = 345, + ITEM_POISON_GEM = 346, + ITEM_GROUND_GEM = 347, + ITEM_FLYING_GEM = 348, + ITEM_PSYCHIC_GEM = 349, + ITEM_BUG_GEM = 350, + ITEM_ROCK_GEM = 351, + ITEM_GHOST_GEM = 352, + ITEM_DRAGON_GEM = 353, + ITEM_DARK_GEM = 354, + ITEM_STEEL_GEM = 355, + ITEM_FAIRY_GEM = 356, -// Z-Crystals -#define ITEM_NORMALIUM_Z 357 -#define ITEM_FIRIUM_Z 358 -#define ITEM_WATERIUM_Z 359 -#define ITEM_ELECTRIUM_Z 360 -#define ITEM_GRASSIUM_Z 361 -#define ITEM_ICIUM_Z 362 -#define ITEM_FIGHTINIUM_Z 363 -#define ITEM_POISONIUM_Z 364 -#define ITEM_GROUNDIUM_Z 365 -#define ITEM_FLYINIUM_Z 366 -#define ITEM_PSYCHIUM_Z 367 -#define ITEM_BUGINIUM_Z 368 -#define ITEM_ROCKIUM_Z 369 -#define ITEM_GHOSTIUM_Z 370 -#define ITEM_DRAGONIUM_Z 371 -#define ITEM_DARKINIUM_Z 372 -#define ITEM_STEELIUM_Z 373 -#define ITEM_FAIRIUM_Z 374 -#define ITEM_PIKANIUM_Z 375 -#define ITEM_EEVIUM_Z 376 -#define ITEM_SNORLIUM_Z 377 -#define ITEM_MEWNIUM_Z 378 -#define ITEM_DECIDIUM_Z 379 -#define ITEM_INCINIUM_Z 380 -#define ITEM_PRIMARIUM_Z 381 -#define ITEM_LYCANIUM_Z 382 -#define ITEM_MIMIKIUM_Z 383 -#define ITEM_KOMMONIUM_Z 384 -#define ITEM_TAPUNIUM_Z 385 -#define ITEM_SOLGANIUM_Z 386 -#define ITEM_LUNALIUM_Z 387 -#define ITEM_MARSHADIUM_Z 388 -#define ITEM_ALORAICHIUM_Z 389 -#define ITEM_PIKASHUNIUM_Z 390 -#define ITEM_ULTRANECROZIUM_Z 391 + // Z-Crystals + ITEM_NORMALIUM_Z = 357, + ITEM_FIRIUM_Z = 358, + ITEM_WATERIUM_Z = 359, + ITEM_ELECTRIUM_Z = 360, + ITEM_GRASSIUM_Z = 361, + ITEM_ICIUM_Z = 362, + ITEM_FIGHTINIUM_Z = 363, + ITEM_POISONIUM_Z = 364, + ITEM_GROUNDIUM_Z = 365, + ITEM_FLYINIUM_Z = 366, + ITEM_PSYCHIUM_Z = 367, + ITEM_BUGINIUM_Z = 368, + ITEM_ROCKIUM_Z = 369, + ITEM_GHOSTIUM_Z = 370, + ITEM_DRAGONIUM_Z = 371, + ITEM_DARKINIUM_Z = 372, + ITEM_STEELIUM_Z = 373, + ITEM_FAIRIUM_Z = 374, + ITEM_PIKANIUM_Z = 375, + ITEM_EEVIUM_Z = 376, + ITEM_SNORLIUM_Z = 377, + ITEM_MEWNIUM_Z = 378, + ITEM_DECIDIUM_Z = 379, + ITEM_INCINIUM_Z = 380, + ITEM_PRIMARIUM_Z = 381, + ITEM_LYCANIUM_Z = 382, + ITEM_MIMIKIUM_Z = 383, + ITEM_KOMMONIUM_Z = 384, + ITEM_TAPUNIUM_Z = 385, + ITEM_SOLGANIUM_Z = 386, + ITEM_LUNALIUM_Z = 387, + ITEM_MARSHADIUM_Z = 388, + ITEM_ALORAICHIUM_Z = 389, + ITEM_PIKASHUNIUM_Z = 390, + ITEM_ULTRANECROZIUM_Z = 391, -// Species-specific Held Items -#define ITEM_LIGHT_BALL 392 -#define ITEM_LEEK 393 -#define ITEM_STICK ITEM_LEEK // Pre-Gen VIII name -#define ITEM_THICK_CLUB 394 -#define ITEM_LUCKY_PUNCH 395 -#define ITEM_METAL_POWDER 396 -#define ITEM_QUICK_POWDER 397 -#define ITEM_DEEP_SEA_SCALE 398 -#define ITEM_DEEPSEASCALE ITEM_DEEP_SEA_SCALE // Pre-Gen VI name -#define ITEM_DEEP_SEA_TOOTH 399 -#define ITEM_DEEPSEATOOTH ITEM_DEEP_SEA_TOOTH // Pre-Gen VI name -#define ITEM_SOUL_DEW 400 -#define ITEM_ADAMANT_ORB 401 -#define ITEM_LUSTROUS_ORB 402 -#define ITEM_GRISEOUS_ORB 403 + // Species-specific Held Items + ITEM_LIGHT_BALL = 392, + ITEM_LEEK = 393, + ITEM_STICK = ITEM_LEEK, // Pre-Gen VIII name + ITEM_THICK_CLUB = 394, + ITEM_LUCKY_PUNCH = 395, + ITEM_METAL_POWDER = 396, + ITEM_QUICK_POWDER = 397, + ITEM_DEEP_SEA_SCALE = 398, + ITEM_DEEPSEASCALE = ITEM_DEEP_SEA_SCALE, // Pre-Gen VI name + ITEM_DEEP_SEA_TOOTH = 399, + ITEM_DEEPSEATOOTH = ITEM_DEEP_SEA_TOOTH, // Pre-Gen VI name + ITEM_SOUL_DEW = 400, + ITEM_ADAMANT_ORB = 401, + ITEM_LUSTROUS_ORB = 402, + ITEM_GRISEOUS_ORB = 403, -// Incenses -#define ITEM_SEA_INCENSE 404 -#define ITEM_LAX_INCENSE 405 -#define ITEM_ODD_INCENSE 406 -#define ITEM_ROCK_INCENSE 407 -#define ITEM_FULL_INCENSE 408 -#define ITEM_WAVE_INCENSE 409 -#define ITEM_ROSE_INCENSE 410 -#define ITEM_LUCK_INCENSE 411 -#define ITEM_PURE_INCENSE 412 + // Incenses + ITEM_SEA_INCENSE = 404, + ITEM_LAX_INCENSE = 405, + ITEM_ODD_INCENSE = 406, + ITEM_ROCK_INCENSE = 407, + ITEM_FULL_INCENSE = 408, + ITEM_WAVE_INCENSE = 409, + ITEM_ROSE_INCENSE = 410, + ITEM_LUCK_INCENSE = 411, + ITEM_PURE_INCENSE = 412, -// Contest Scarves -#define ITEM_RED_SCARF 413 -#define ITEM_BLUE_SCARF 414 -#define ITEM_PINK_SCARF 415 -#define ITEM_GREEN_SCARF 416 -#define ITEM_YELLOW_SCARF 417 + // Contest Scarves + ITEM_RED_SCARF = 413, + ITEM_BLUE_SCARF = 414, + ITEM_PINK_SCARF = 415, + ITEM_GREEN_SCARF = 416, + ITEM_YELLOW_SCARF = 417, -// EV Gain Modifiers -#define ITEM_MACHO_BRACE 418 -#define ITEM_POWER_WEIGHT 419 -#define ITEM_POWER_BRACER 420 -#define ITEM_POWER_BELT 421 -#define ITEM_POWER_LENS 422 -#define ITEM_POWER_BAND 423 -#define ITEM_POWER_ANKLET 424 + // EV Gain Modifiers + ITEM_MACHO_BRACE = 418, + ITEM_POWER_WEIGHT = 419, + ITEM_POWER_BRACER = 420, + ITEM_POWER_BELT = 421, + ITEM_POWER_LENS = 422, + ITEM_POWER_BAND = 423, + ITEM_POWER_ANKLET = 424, -// Type-boosting Held Items -#define ITEM_SILK_SCARF 425 -#define ITEM_CHARCOAL 426 -#define ITEM_MYSTIC_WATER 427 -#define ITEM_MAGNET 428 -#define ITEM_MIRACLE_SEED 429 -#define ITEM_NEVER_MELT_ICE 430 -#define ITEM_NEVERMELTICE ITEM_NEVER_MELT_ICE // Pre-Gen VI name -#define ITEM_BLACK_BELT 431 -#define ITEM_BLACKBELT ITEM_BLACK_BELT // Gen II name -#define ITEM_POISON_BARB 432 -#define ITEM_SOFT_SAND 433 -#define ITEM_SHARP_BEAK 434 -#define ITEM_TWISTED_SPOON 435 -#define ITEM_TWISTEDSPOON ITEM_TWISTED_SPOON // Pre-Gen VI name -#define ITEM_SILVER_POWDER 436 -#define ITEM_SILVERPOWDER ITEM_SILVER_POWDER // Pre-Gen VI name -#define ITEM_HARD_STONE 437 -#define ITEM_SPELL_TAG 438 -#define ITEM_DRAGON_FANG 439 -#define ITEM_BLACK_GLASSES 440 -#define ITEM_BLACKGLASSES ITEM_BLACK_GLASSES // Pre-Gen VI name -#define ITEM_METAL_COAT 441 + // Type-boosting Held Items + ITEM_SILK_SCARF = 425, + ITEM_CHARCOAL = 426, + ITEM_MYSTIC_WATER = 427, + ITEM_MAGNET = 428, + ITEM_MIRACLE_SEED = 429, + ITEM_NEVER_MELT_ICE = 430, + ITEM_NEVERMELTICE = ITEM_NEVER_MELT_ICE, // Pre-Gen VI name + ITEM_BLACK_BELT = 431, + ITEM_BLACKBELT = ITEM_BLACK_BELT, // Gen II name + ITEM_POISON_BARB = 432, + ITEM_SOFT_SAND = 433, + ITEM_SHARP_BEAK = 434, + ITEM_TWISTED_SPOON = 435, + ITEM_TWISTEDSPOON = ITEM_TWISTED_SPOON, // Pre-Gen VI name + ITEM_SILVER_POWDER = 436, + ITEM_SILVERPOWDER = ITEM_SILVER_POWDER, // Pre-Gen VI name + ITEM_HARD_STONE = 437, + ITEM_SPELL_TAG = 438, + ITEM_DRAGON_FANG = 439, + ITEM_BLACK_GLASSES = 440, + ITEM_BLACKGLASSES = ITEM_BLACK_GLASSES, // Pre-Gen VI name + ITEM_METAL_COAT = 441, -// Choice Items -#define ITEM_CHOICE_BAND 442 -#define ITEM_CHOICE_SPECS 443 -#define ITEM_CHOICE_SCARF 444 + // Choice Items + ITEM_CHOICE_BAND = 442, + ITEM_CHOICE_SPECS = 443, + ITEM_CHOICE_SCARF = 444, -// Status Orbs -#define ITEM_FLAME_ORB 445 -#define ITEM_TOXIC_ORB 446 + // Status Orbs + ITEM_FLAME_ORB = 445, + ITEM_TOXIC_ORB = 446, -// Weather Rocks -#define ITEM_DAMP_ROCK 447 -#define ITEM_HEAT_ROCK 448 -#define ITEM_SMOOTH_ROCK 449 -#define ITEM_ICY_ROCK 450 + // Weather Rocks + ITEM_DAMP_ROCK = 447, + ITEM_HEAT_ROCK = 448, + ITEM_SMOOTH_ROCK = 449, + ITEM_ICY_ROCK = 450, -// Terrain Seeds -#define ITEM_ELECTRIC_SEED 451 -#define ITEM_PSYCHIC_SEED 452 -#define ITEM_MISTY_SEED 453 -#define ITEM_GRASSY_SEED 454 + // Terrain Seeds + ITEM_ELECTRIC_SEED = 451, + ITEM_PSYCHIC_SEED = 452, + ITEM_MISTY_SEED = 453, + ITEM_GRASSY_SEED = 454, -// Type-activated Stat Modifiers -#define ITEM_ABSORB_BULB 455 -#define ITEM_CELL_BATTERY 456 -#define ITEM_LUMINOUS_MOSS 457 -#define ITEM_SNOWBALL 458 + // Type-activated Stat Modifiers + ITEM_ABSORB_BULB = 455, + ITEM_CELL_BATTERY = 456, + ITEM_LUMINOUS_MOSS = 457, + ITEM_SNOWBALL = 458, -// Misc. Held Items -#define ITEM_BRIGHT_POWDER 459 -#define ITEM_BRIGHTPOWDER ITEM_BRIGHT_POWDER // Pre-Gen VI name -#define ITEM_WHITE_HERB 460 -#define ITEM_EXP_SHARE 461 -#define ITEM_EXP_ALL ITEM_EXP_SHARE // Gen I name -#define ITEM_QUICK_CLAW 462 -#define ITEM_SOOTHE_BELL 463 -#define ITEM_MENTAL_HERB 464 -#define ITEM_KINGS_ROCK 465 -#define ITEM_AMULET_COIN 466 -#define ITEM_CLEANSE_TAG 467 -#define ITEM_SMOKE_BALL 468 -#define ITEM_FOCUS_BAND 469 -#define ITEM_LUCKY_EGG 470 -#define ITEM_SCOPE_LENS 471 -#define ITEM_LEFTOVERS 472 -#define ITEM_SHELL_BELL 473 -#define ITEM_WIDE_LENS 474 -#define ITEM_MUSCLE_BAND 475 -#define ITEM_WISE_GLASSES 476 -#define ITEM_EXPERT_BELT 477 -#define ITEM_LIGHT_CLAY 478 -#define ITEM_LIFE_ORB 479 -#define ITEM_POWER_HERB 480 -#define ITEM_FOCUS_SASH 481 -#define ITEM_ZOOM_LENS 482 -#define ITEM_METRONOME 483 -#define ITEM_IRON_BALL 484 -#define ITEM_LAGGING_TAIL 485 -#define ITEM_DESTINY_KNOT 486 -#define ITEM_BLACK_SLUDGE 487 -#define ITEM_GRIP_CLAW 488 -#define ITEM_STICKY_BARB 489 -#define ITEM_SHED_SHELL 490 -#define ITEM_BIG_ROOT 491 -#define ITEM_RAZOR_CLAW 492 -#define ITEM_RAZOR_FANG 493 -#define ITEM_EVIOLITE 494 -#define ITEM_FLOAT_STONE 495 -#define ITEM_ROCKY_HELMET 496 -#define ITEM_AIR_BALLOON 497 -#define ITEM_RED_CARD 498 -#define ITEM_RING_TARGET 499 -#define ITEM_BINDING_BAND 500 -#define ITEM_EJECT_BUTTON 501 -#define ITEM_WEAKNESS_POLICY 502 -#define ITEM_ASSAULT_VEST 503 -#define ITEM_SAFETY_GOGGLES 504 -#define ITEM_ADRENALINE_ORB 505 -#define ITEM_TERRAIN_EXTENDER 506 -#define ITEM_PROTECTIVE_PADS 507 -#define ITEM_THROAT_SPRAY 508 -#define ITEM_EJECT_PACK 509 -#define ITEM_HEAVY_DUTY_BOOTS 510 -#define ITEM_BLUNDER_POLICY 511 -#define ITEM_ROOM_SERVICE 512 -#define ITEM_UTILITY_UMBRELLA 513 + // Misc. Held Items + ITEM_BRIGHT_POWDER = 459, + ITEM_BRIGHTPOWDER = ITEM_BRIGHT_POWDER, // Pre-Gen VI name + ITEM_WHITE_HERB = 460, + ITEM_EXP_SHARE = 461, + ITEM_EXP_ALL = ITEM_EXP_SHARE, // Gen I name + ITEM_QUICK_CLAW = 462, + ITEM_SOOTHE_BELL = 463, + ITEM_MENTAL_HERB = 464, + ITEM_KINGS_ROCK = 465, + ITEM_AMULET_COIN = 466, + ITEM_CLEANSE_TAG = 467, + ITEM_SMOKE_BALL = 468, + ITEM_FOCUS_BAND = 469, + ITEM_LUCKY_EGG = 470, + ITEM_SCOPE_LENS = 471, + ITEM_LEFTOVERS = 472, + ITEM_SHELL_BELL = 473, + ITEM_WIDE_LENS = 474, + ITEM_MUSCLE_BAND = 475, + ITEM_WISE_GLASSES = 476, + ITEM_EXPERT_BELT = 477, + ITEM_LIGHT_CLAY = 478, + ITEM_LIFE_ORB = 479, + ITEM_POWER_HERB = 480, + ITEM_FOCUS_SASH = 481, + ITEM_ZOOM_LENS = 482, + ITEM_METRONOME = 483, + ITEM_IRON_BALL = 484, + ITEM_LAGGING_TAIL = 485, + ITEM_DESTINY_KNOT = 486, + ITEM_BLACK_SLUDGE = 487, + ITEM_GRIP_CLAW = 488, + ITEM_STICKY_BARB = 489, + ITEM_SHED_SHELL = 490, + ITEM_BIG_ROOT = 491, + ITEM_RAZOR_CLAW = 492, + ITEM_RAZOR_FANG = 493, + ITEM_EVIOLITE = 494, + ITEM_FLOAT_STONE = 495, + ITEM_ROCKY_HELMET = 496, + ITEM_AIR_BALLOON = 497, + ITEM_RED_CARD = 498, + ITEM_RING_TARGET = 499, + ITEM_BINDING_BAND = 500, + ITEM_EJECT_BUTTON = 501, + ITEM_WEAKNESS_POLICY = 502, + ITEM_ASSAULT_VEST = 503, + ITEM_SAFETY_GOGGLES = 504, + ITEM_ADRENALINE_ORB = 505, + ITEM_TERRAIN_EXTENDER = 506, + ITEM_PROTECTIVE_PADS = 507, + ITEM_THROAT_SPRAY = 508, + ITEM_EJECT_PACK = 509, + ITEM_HEAVY_DUTY_BOOTS = 510, + ITEM_BLUNDER_POLICY = 511, + ITEM_ROOM_SERVICE = 512, + ITEM_UTILITY_UMBRELLA = 513, + + // Berries + FIRST_BERRY_INDEX = 514, + ITEM_CHERI_BERRY = FIRST_BERRY_INDEX, + ITEM_CHESTO_BERRY = 515, + ITEM_PECHA_BERRY = 516, + ITEM_RAWST_BERRY = 517, + ITEM_ASPEAR_BERRY = 518, + ITEM_LEPPA_BERRY = 519, + ITEM_ORAN_BERRY = 520, + ITEM_PERSIM_BERRY = 521, + ITEM_LUM_BERRY = 522, + ITEM_SITRUS_BERRY = 523, + ITEM_FIGY_BERRY = 524, + ITEM_WIKI_BERRY = 525, + ITEM_MAGO_BERRY = 526, + ITEM_AGUAV_BERRY = 527, + ITEM_IAPAPA_BERRY = 528, + ITEM_RAZZ_BERRY = 529, + ITEM_BLUK_BERRY = 530, + ITEM_NANAB_BERRY = 531, + ITEM_WEPEAR_BERRY = 532, + ITEM_PINAP_BERRY = 533, + ITEM_POMEG_BERRY = 534, + ITEM_KELPSY_BERRY = 535, + ITEM_QUALOT_BERRY = 536, + ITEM_HONDEW_BERRY = 537, + ITEM_GREPA_BERRY = 538, + ITEM_TAMATO_BERRY = 539, + ITEM_CORNN_BERRY = 540, + ITEM_MAGOST_BERRY = 541, + ITEM_RABUTA_BERRY = 542, + ITEM_NOMEL_BERRY = 543, + ITEM_SPELON_BERRY = 544, + ITEM_PAMTRE_BERRY = 545, + ITEM_WATMEL_BERRY = 546, + ITEM_DURIN_BERRY = 547, + ITEM_BELUE_BERRY = 548, + ITEM_CHILAN_BERRY = 549, + ITEM_OCCA_BERRY = 550, + ITEM_PASSHO_BERRY = 551, + ITEM_WACAN_BERRY = 552, + ITEM_RINDO_BERRY = 553, + ITEM_YACHE_BERRY = 554, + ITEM_CHOPLE_BERRY = 555, + ITEM_KEBIA_BERRY = 556, + ITEM_SHUCA_BERRY = 557, + ITEM_COBA_BERRY = 558, + ITEM_PAYAPA_BERRY = 559, + ITEM_TANGA_BERRY = 560, + ITEM_CHARTI_BERRY = 561, + ITEM_KASIB_BERRY = 562, + ITEM_HABAN_BERRY = 563, + ITEM_COLBUR_BERRY = 564, + ITEM_BABIRI_BERRY = 565, + ITEM_ROSELI_BERRY = 566, + ITEM_LIECHI_BERRY = 567, + ITEM_GANLON_BERRY = 568, + ITEM_SALAC_BERRY = 569, + ITEM_PETAYA_BERRY = 570, + ITEM_APICOT_BERRY = 571, + ITEM_LANSAT_BERRY = 572, + ITEM_STARF_BERRY = 573, + ITEM_ENIGMA_BERRY = 574, + ITEM_MICLE_BERRY = 575, + ITEM_CUSTAP_BERRY = 576, + ITEM_JABOCA_BERRY = 577, + ITEM_ROWAP_BERRY = 578, + ITEM_KEE_BERRY = 579, + ITEM_MARANGA_BERRY = 580, + ITEM_ENIGMA_BERRY_E_READER = 581, + LAST_BERRY_INDEX = ITEM_ENIGMA_BERRY_E_READER, + + // TMs/HMs + ITEM_TM01 = 582, + ITEM_TM02 = 583, + ITEM_TM03 = 584, + ITEM_TM04 = 585, + ITEM_TM05 = 586, + ITEM_TM06 = 587, + ITEM_TM07 = 588, + ITEM_TM08 = 589, + ITEM_TM09 = 590, + ITEM_TM10 = 591, + ITEM_TM11 = 592, + ITEM_TM12 = 593, + ITEM_TM13 = 594, + ITEM_TM14 = 595, + ITEM_TM15 = 596, + ITEM_TM16 = 597, + ITEM_TM17 = 598, + ITEM_TM18 = 599, + ITEM_TM19 = 600, + ITEM_TM20 = 601, + ITEM_TM21 = 602, + ITEM_TM22 = 603, + ITEM_TM23 = 604, + ITEM_TM24 = 605, + ITEM_TM25 = 606, + ITEM_TM26 = 607, + ITEM_TM27 = 608, + ITEM_TM28 = 609, + ITEM_TM29 = 610, + ITEM_TM30 = 611, + ITEM_TM31 = 612, + ITEM_TM32 = 613, + ITEM_TM33 = 614, + ITEM_TM34 = 615, + ITEM_TM35 = 616, + ITEM_TM36 = 617, + ITEM_TM37 = 618, + ITEM_TM38 = 619, + ITEM_TM39 = 620, + ITEM_TM40 = 621, + ITEM_TM41 = 622, + ITEM_TM42 = 623, + ITEM_TM43 = 624, + ITEM_TM44 = 625, + ITEM_TM45 = 626, + ITEM_TM46 = 627, + ITEM_TM47 = 628, + ITEM_TM48 = 629, + ITEM_TM49 = 630, + ITEM_TM50 = 631, + ITEM_TM51 = 632, + ITEM_TM52 = 633, + ITEM_TM53 = 634, + ITEM_TM54 = 635, + ITEM_TM55 = 636, + ITEM_TM56 = 637, + ITEM_TM57 = 638, + ITEM_TM58 = 639, + ITEM_TM59 = 640, + ITEM_TM60 = 641, + ITEM_TM61 = 642, + ITEM_TM62 = 643, + ITEM_TM63 = 644, + ITEM_TM64 = 645, + ITEM_TM65 = 646, + ITEM_TM66 = 647, + ITEM_TM67 = 648, + ITEM_TM68 = 649, + ITEM_TM69 = 650, + ITEM_TM70 = 651, + ITEM_TM71 = 652, + ITEM_TM72 = 653, + ITEM_TM73 = 654, + ITEM_TM74 = 655, + ITEM_TM75 = 656, + ITEM_TM76 = 657, + ITEM_TM77 = 658, + ITEM_TM78 = 659, + ITEM_TM79 = 660, + ITEM_TM80 = 661, + ITEM_TM81 = 662, + ITEM_TM82 = 663, + ITEM_TM83 = 664, + ITEM_TM84 = 665, + ITEM_TM85 = 666, + ITEM_TM86 = 667, + ITEM_TM87 = 668, + ITEM_TM88 = 669, + ITEM_TM89 = 670, + ITEM_TM90 = 671, + ITEM_TM91 = 672, + ITEM_TM92 = 673, + ITEM_TM93 = 674, + ITEM_TM94 = 675, + ITEM_TM95 = 676, + ITEM_TM96 = 677, + ITEM_TM97 = 678, + ITEM_TM98 = 679, + ITEM_TM99 = 680, + ITEM_TM100 = 681, + + ITEM_HM01 = 682, + ITEM_HM02 = 683, + ITEM_HM03 = 684, + ITEM_HM04 = 685, + ITEM_HM05 = 686, + ITEM_HM06 = 687, + ITEM_HM07 = 688, + ITEM_HM08 = 689, + + + /* Expands to: + * ITEM_TM_FOCUS_PUNCH = ITEM_TM01, + * ... + * ITEM_HM_CUT = ITM_HM01, + * ... */ + #define ENUM_TM(n, id) CAT(ITEM_TM_, id) = CAT(ITEM_TM, n), + #define ENUM_HM(n, id) CAT(ITEM_HM_, id) = CAT(ITEM_HM, n), + #define TO_TMHM_NUMS(a, ...) (__VA_ARGS__) + RECURSIVELY(R_ZIP(ENUM_TM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_TM(APPEND_COMMA)))) + RECURSIVELY(R_ZIP(ENUM_HM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_HM(APPEND_COMMA)))) + #undef ENUM_TM + #undef ENUM_HM + #undef TO_TMHM_NUMS + + // Charms + ITEM_OVAL_CHARM = 690, + ITEM_SHINY_CHARM = 691, + ITEM_CATCHING_CHARM = 692, + ITEM_EXP_CHARM = 693, + + // Form-changing Key Items + ITEM_ROTOM_CATALOG = 694, + ITEM_GRACIDEA = 695, + ITEM_REVEAL_GLASS = 696, + ITEM_DNA_SPLICERS = 697, + ITEM_ZYGARDE_CUBE = 698, + ITEM_PRISON_BOTTLE = 699, + ITEM_N_SOLARIZER = 700, + ITEM_N_LUNARIZER = 701, + ITEM_REINS_OF_UNITY = 702, + + // Battle Mechanic Key Items + ITEM_MEGA_RING = 703, + ITEM_Z_POWER_RING = 704, + ITEM_DYNAMAX_BAND = 705, + + // Misc. Key Items + ITEM_BICYCLE = 706, + ITEM_MACH_BIKE = 707, + ITEM_ACRO_BIKE = 708, + ITEM_OLD_ROD = 709, + ITEM_GOOD_ROD = 710, + ITEM_SUPER_ROD = 711, + ITEM_DOWSING_MACHINE = 712, + ITEM_ITEMFINDER = ITEM_DOWSING_MACHINE, // Pre-Gen IV name + ITEM_DOWSING_MCHN = ITEM_DOWSING_MACHINE, // Gen IV-V name + ITEM_TOWN_MAP = 713, + ITEM_VS_SEEKER = 714, + ITEM_TM_CASE = 715, + ITEM_BERRY_POUCH = 716, + ITEM_POKEMON_BOX_LINK = 717, + ITEM_POKEMON_BOX = ITEM_POKEMON_BOX_LINK, // Pre-Gen VIII name + ITEM_COIN_CASE = 718, + ITEM_POWDER_JAR = 719, + ITEM_WAILMER_PAIL = 720, + ITEM_POKE_RADAR = 721, + ITEM_POKEBLOCK_CASE = 722, + ITEM_SOOT_SACK = 723, + ITEM_POKE_FLUTE = 724, + ITEM_FAME_CHECKER = 725, + ITEM_TEACHY_TV = 726, + + // Story Key Items + ITEM_SS_TICKET = 727, + ITEM_EON_TICKET = 728, + ITEM_MYSTIC_TICKET = 729, + ITEM_AURORA_TICKET = 730, + ITEM_OLD_SEA_MAP = 731, + ITEM_LETTER = 732, + ITEM_DEVON_PARTS = 733, + ITEM_DEVON_GOODS = ITEM_DEVON_PARTS, // Pre-Gen VI name + ITEM_GO_GOGGLES = 734, + ITEM_DEVON_SCOPE = 735, + ITEM_BASEMENT_KEY = 736, + ITEM_SCANNER = 737, + ITEM_STORAGE_KEY = 738, + ITEM_KEY_TO_ROOM_1 = 739, + ITEM_RM_1_KEY = ITEM_KEY_TO_ROOM_1, // Pre-Gen VI name + ITEM_KEY_TO_ROOM_2 = 740, + ITEM_RM_2_KEY = ITEM_KEY_TO_ROOM_2, // Pre-Gen VI name + ITEM_KEY_TO_ROOM_4 = 741, + ITEM_RM_4_KEY = ITEM_KEY_TO_ROOM_4, // Pre-Gen VI name + ITEM_KEY_TO_ROOM_6 = 742, + ITEM_RM_6_KEY = ITEM_KEY_TO_ROOM_6, // Pre-Gen VI name + ITEM_METEORITE = 743, + ITEM_MAGMA_EMBLEM = 744, + ITEM_CONTEST_PASS = 745, + ITEM_PARCEL = 746, + ITEM_OAKS_PARCEL = ITEM_PARCEL, // Pre-Gen IV name + ITEM_SECRET_KEY = 747, + ITEM_BIKE_VOUCHER = 748, + ITEM_GOLD_TEETH = 749, + ITEM_CARD_KEY = 750, + ITEM_LIFT_KEY = 751, + ITEM_SILPH_SCOPE = 752, + ITEM_TRI_PASS = 753, + ITEM_RAINBOW_PASS = 754, + ITEM_TEA = 755, + ITEM_RUBY = 756, + ITEM_SAPPHIRE = 757, + + // GEN IX ITEMS + ITEM_ABILITY_SHIELD = 758, + ITEM_CLEAR_AMULET = 759, + ITEM_PUNCHING_GLOVE = 760, + ITEM_COVERT_CLOAK = 761, + ITEM_LOADED_DICE = 762, + ITEM_AUSPICIOUS_ARMOR = 763, + ITEM_BOOSTER_ENERGY = 764, + ITEM_BIG_BAMBOO_SHOOT = 765, + ITEM_GIMMIGHOUL_COIN = 766, + ITEM_LEADERS_CREST = 767, + ITEM_MALICIOUS_ARMOR = 768, + ITEM_MIRROR_HERB = 769, + ITEM_SCROLL_OF_DARKNESS = 770, + ITEM_SCROLL_OF_WATERS = 771, + ITEM_TERA_ORB = 772, + ITEM_TINY_BAMBOO_SHOOT = 773, + + ITEM_BUG_TERA_SHARD = 774, + ITEM_DARK_TERA_SHARD = 775, + ITEM_DRAGON_TERA_SHARD = 776, + ITEM_ELECTRIC_TERA_SHARD = 777, + ITEM_FAIRY_TERA_SHARD = 778, + ITEM_FIGHTING_TERA_SHARD = 779, + ITEM_FIRE_TERA_SHARD = 780, + ITEM_FLYING_TERA_SHARD = 781, + ITEM_GHOST_TERA_SHARD = 782, + ITEM_GRASS_TERA_SHARD = 783, + ITEM_GROUND_TERA_SHARD = 784, + ITEM_ICE_TERA_SHARD = 785, + ITEM_NORMAL_TERA_SHARD = 786, + ITEM_POISON_TERA_SHARD = 787, + ITEM_PSYCHIC_TERA_SHARD = 788, + ITEM_ROCK_TERA_SHARD = 789, + ITEM_STEEL_TERA_SHARD = 790, + ITEM_WATER_TERA_SHARD = 791, + + ITEM_ADAMANT_CRYSTAL = 792, + ITEM_GRISEOUS_CORE = 793, + ITEM_LUSTROUS_GLOBE = 794, + + ITEM_BLACK_AUGURITE = 795, + ITEM_LINKING_CORD = 796, + ITEM_PEAT_BLOCK = 797, + ITEM_BERSERK_GENE = 798, + + ITEM_FAIRY_FEATHER = 799, + ITEM_SYRUPY_APPLE = 800, + ITEM_UNREMARKABLE_TEACUP = 801, + ITEM_MASTERPIECE_TEACUP = 802, + ITEM_CORNERSTONE_MASK = 803, + ITEM_WELLSPRING_MASK = 804, + ITEM_HEARTHFLAME_MASK = 805, + ITEM_HEALTH_MOCHI = 806, + ITEM_MUSCLE_MOCHI = 807, + ITEM_RESIST_MOCHI = 808, + ITEM_GENIUS_MOCHI = 809, + ITEM_CLEVER_MOCHI = 810, + ITEM_SWIFT_MOCHI = 811, + ITEM_FRESH_START_MOCHI = 812, + ITEM_GLIMMERING_CHARM = 813, + ITEM_METAL_ALLOY = 814, + ITEM_STELLAR_TERA_SHARD = 815, + + ITEM_JUBILIFE_MUFFIN = 816, + ITEM_REMEDY = 817, + ITEM_FINE_REMEDY = 818, + ITEM_SUPERB_REMEDY = 819, + ITEM_AUX_EVASION = 820, + ITEM_AUX_GUARD = 821, + ITEM_AUX_POWER = 822, + ITEM_AUX_POWERGUARD = 823, + ITEM_CHOICE_DUMPLING = 824, + ITEM_SWAP_SNACK = 825, + ITEM_TWICE_SPICED_RADISH = 826, + ITEM_POKESHI_DOLL = 827, + + ITEM_STRANGE_BALL = 828, + + // Legends Z-A Mega Stones + ITEM_CLEFABLITE = 829, + ITEM_VICTREEBELITE = 830, + ITEM_STARMINITE = 831, + ITEM_DRAGONINITE = 832, + ITEM_MEGANIUMITE = 833, + ITEM_FERALIGITE = 834, + ITEM_SKARMORITE = 835, + ITEM_FROSLASSITE = 836, + ITEM_EMBOARITE = 837, + ITEM_EXCADRITE = 838, + ITEM_SCOLIPITE = 839, + ITEM_SCRAFTINITE = 840, + ITEM_EELEKTROSSITE = 841, + ITEM_CHANDELURITE = 842, + ITEM_CHESNAUGHTITE = 843, + ITEM_DELPHOXITE = 844, + ITEM_GRENINJITE = 845, + ITEM_PYROARITE = 846, + ITEM_FLOETTITE = 847, + ITEM_MALAMARITE = 848, + ITEM_BARBARACITE = 849, + ITEM_DRAGALGITE = 850, + ITEM_HAWLUCHANITE = 851, + ITEM_ZYGARDITE = 852, + ITEM_DRAMPANITE = 853, + ITEM_FALINKSITE = 854, + + // Legends Z-A: Mega Dimension DLC Mega Stones + ITEM_HEATRANITE = 855, + ITEM_DARKRANITE = 856, + ITEM_ZERAORITE = 857, + ITEM_RAICHUNITE_X = 858, + ITEM_RAICHUNITE_Y = 859, + ITEM_CHIMECHITE = 860, + ITEM_ABSOLITE_Z = 861, + ITEM_STARAPTITE = 862, + ITEM_GARCHOMPITE_Z = 863, + ITEM_LUCARIONITE_Z = 864, + ITEM_GOLURKITE = 865, + ITEM_MEOWSTICITE = 866, + ITEM_CRABOMINITE = 867, + ITEM_GOLISOPITE = 868, + ITEM_MAGEARNITE = 869, + ITEM_SCOVILLAINITE = 870, + ITEM_BAXCALIBRITE = 871, + ITEM_TATSUGIRINITE = 872, + ITEM_GLIMMORANITE = 873, + + ITEMS_COUNT, + ITEM_FIELD_ARROW = ITEMS_COUNT, +}; + +// A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations +// Its icon is defined at ITEMS_COUNT as the "return to field" arrow +#define ITEM_LIST_END 0xFFFF -// Berries #if B_CONFUSE_BERRIES_HEAL >= GEN_8 #define CONFUSE_BERRY_HEAL_FRACTION 3 #elif B_CONFUSE_BERRIES_HEAL == GEN_7 @@ -645,411 +1069,6 @@ #define CONFUSE_BERRY_HP_FRACTION ((B_CONFUSE_BERRIES_HEAL >= GEN_7) ? 4 : 2) -#define ITEM_CHERI_BERRY 514 -#define ITEM_CHESTO_BERRY 515 -#define ITEM_PECHA_BERRY 516 -#define ITEM_RAWST_BERRY 517 -#define ITEM_ASPEAR_BERRY 518 -#define ITEM_LEPPA_BERRY 519 -#define ITEM_ORAN_BERRY 520 -#define ITEM_PERSIM_BERRY 521 -#define ITEM_LUM_BERRY 522 -#define ITEM_SITRUS_BERRY 523 -#define ITEM_FIGY_BERRY 524 -#define ITEM_WIKI_BERRY 525 -#define ITEM_MAGO_BERRY 526 -#define ITEM_AGUAV_BERRY 527 -#define ITEM_IAPAPA_BERRY 528 -#define ITEM_RAZZ_BERRY 529 -#define ITEM_BLUK_BERRY 530 -#define ITEM_NANAB_BERRY 531 -#define ITEM_WEPEAR_BERRY 532 -#define ITEM_PINAP_BERRY 533 -#define ITEM_POMEG_BERRY 534 -#define ITEM_KELPSY_BERRY 535 -#define ITEM_QUALOT_BERRY 536 -#define ITEM_HONDEW_BERRY 537 -#define ITEM_GREPA_BERRY 538 -#define ITEM_TAMATO_BERRY 539 -#define ITEM_CORNN_BERRY 540 -#define ITEM_MAGOST_BERRY 541 -#define ITEM_RABUTA_BERRY 542 -#define ITEM_NOMEL_BERRY 543 -#define ITEM_SPELON_BERRY 544 -#define ITEM_PAMTRE_BERRY 545 -#define ITEM_WATMEL_BERRY 546 -#define ITEM_DURIN_BERRY 547 -#define ITEM_BELUE_BERRY 548 -#define ITEM_CHILAN_BERRY 549 -#define ITEM_OCCA_BERRY 550 -#define ITEM_PASSHO_BERRY 551 -#define ITEM_WACAN_BERRY 552 -#define ITEM_RINDO_BERRY 553 -#define ITEM_YACHE_BERRY 554 -#define ITEM_CHOPLE_BERRY 555 -#define ITEM_KEBIA_BERRY 556 -#define ITEM_SHUCA_BERRY 557 -#define ITEM_COBA_BERRY 558 -#define ITEM_PAYAPA_BERRY 559 -#define ITEM_TANGA_BERRY 560 -#define ITEM_CHARTI_BERRY 561 -#define ITEM_KASIB_BERRY 562 -#define ITEM_HABAN_BERRY 563 -#define ITEM_COLBUR_BERRY 564 -#define ITEM_BABIRI_BERRY 565 -#define ITEM_ROSELI_BERRY 566 -#define ITEM_LIECHI_BERRY 567 -#define ITEM_GANLON_BERRY 568 -#define ITEM_SALAC_BERRY 569 -#define ITEM_PETAYA_BERRY 570 -#define ITEM_APICOT_BERRY 571 -#define ITEM_LANSAT_BERRY 572 -#define ITEM_STARF_BERRY 573 -#define ITEM_ENIGMA_BERRY 574 -#define ITEM_MICLE_BERRY 575 -#define ITEM_CUSTAP_BERRY 576 -#define ITEM_JABOCA_BERRY 577 -#define ITEM_ROWAP_BERRY 578 -#define ITEM_KEE_BERRY 579 -#define ITEM_MARANGA_BERRY 580 -#define ITEM_ENIGMA_BERRY_E_READER 581 - -#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY -#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY_E_READER - -// TMs/HMs -#define ITEM_TM01 582 -#define ITEM_TM02 583 -#define ITEM_TM03 584 -#define ITEM_TM04 585 -#define ITEM_TM05 586 -#define ITEM_TM06 587 -#define ITEM_TM07 588 -#define ITEM_TM08 589 -#define ITEM_TM09 590 -#define ITEM_TM10 591 -#define ITEM_TM11 592 -#define ITEM_TM12 593 -#define ITEM_TM13 594 -#define ITEM_TM14 595 -#define ITEM_TM15 596 -#define ITEM_TM16 597 -#define ITEM_TM17 598 -#define ITEM_TM18 599 -#define ITEM_TM19 600 -#define ITEM_TM20 601 -#define ITEM_TM21 602 -#define ITEM_TM22 603 -#define ITEM_TM23 604 -#define ITEM_TM24 605 -#define ITEM_TM25 606 -#define ITEM_TM26 607 -#define ITEM_TM27 608 -#define ITEM_TM28 609 -#define ITEM_TM29 610 -#define ITEM_TM30 611 -#define ITEM_TM31 612 -#define ITEM_TM32 613 -#define ITEM_TM33 614 -#define ITEM_TM34 615 -#define ITEM_TM35 616 -#define ITEM_TM36 617 -#define ITEM_TM37 618 -#define ITEM_TM38 619 -#define ITEM_TM39 620 -#define ITEM_TM40 621 -#define ITEM_TM41 622 -#define ITEM_TM42 623 -#define ITEM_TM43 624 -#define ITEM_TM44 625 -#define ITEM_TM45 626 -#define ITEM_TM46 627 -#define ITEM_TM47 628 -#define ITEM_TM48 629 -#define ITEM_TM49 630 -#define ITEM_TM50 631 -#define ITEM_TM51 632 -#define ITEM_TM52 633 -#define ITEM_TM53 634 -#define ITEM_TM54 635 -#define ITEM_TM55 636 -#define ITEM_TM56 637 -#define ITEM_TM57 638 -#define ITEM_TM58 639 -#define ITEM_TM59 640 -#define ITEM_TM60 641 -#define ITEM_TM61 642 -#define ITEM_TM62 643 -#define ITEM_TM63 644 -#define ITEM_TM64 645 -#define ITEM_TM65 646 -#define ITEM_TM66 647 -#define ITEM_TM67 648 -#define ITEM_TM68 649 -#define ITEM_TM69 650 -#define ITEM_TM70 651 -#define ITEM_TM71 652 -#define ITEM_TM72 653 -#define ITEM_TM73 654 -#define ITEM_TM74 655 -#define ITEM_TM75 656 -#define ITEM_TM76 657 -#define ITEM_TM77 658 -#define ITEM_TM78 659 -#define ITEM_TM79 660 -#define ITEM_TM80 661 -#define ITEM_TM81 662 -#define ITEM_TM82 663 -#define ITEM_TM83 664 -#define ITEM_TM84 665 -#define ITEM_TM85 666 -#define ITEM_TM86 667 -#define ITEM_TM87 668 -#define ITEM_TM88 669 -#define ITEM_TM89 670 -#define ITEM_TM90 671 -#define ITEM_TM91 672 -#define ITEM_TM92 673 -#define ITEM_TM93 674 -#define ITEM_TM94 675 -#define ITEM_TM95 676 -#define ITEM_TM96 677 -#define ITEM_TM97 678 -#define ITEM_TM98 679 -#define ITEM_TM99 680 -#define ITEM_TM100 681 - -#define ITEM_HM01 682 -#define ITEM_HM02 683 -#define ITEM_HM03 684 -#define ITEM_HM04 685 -#define ITEM_HM05 686 -#define ITEM_HM06 687 -#define ITEM_HM07 688 -#define ITEM_HM08 689 - -// Charms -#define ITEM_OVAL_CHARM 690 -#define ITEM_SHINY_CHARM 691 -#define ITEM_CATCHING_CHARM 692 -#define ITEM_EXP_CHARM 693 - -// Form-changing Key Items -#define ITEM_ROTOM_CATALOG 694 -#define ITEM_GRACIDEA 695 -#define ITEM_REVEAL_GLASS 696 -#define ITEM_DNA_SPLICERS 697 -#define ITEM_ZYGARDE_CUBE 698 -#define ITEM_PRISON_BOTTLE 699 -#define ITEM_N_SOLARIZER 700 -#define ITEM_N_LUNARIZER 701 -#define ITEM_REINS_OF_UNITY 702 - -// Battle Mechanic Key Items -#define ITEM_MEGA_RING 703 -#define ITEM_Z_POWER_RING 704 -#define ITEM_DYNAMAX_BAND 705 - -// Misc. Key Items -#define ITEM_BICYCLE 706 -#define ITEM_MACH_BIKE 707 -#define ITEM_ACRO_BIKE 708 -#define ITEM_OLD_ROD 709 -#define ITEM_GOOD_ROD 710 -#define ITEM_SUPER_ROD 711 -#define ITEM_DOWSING_MACHINE 712 -#define ITEM_ITEMFINDER ITEM_DOWSING_MACHINE // Pre-Gen IV name -#define ITEM_DOWSING_MCHN ITEM_DOWSING_MACHINE // Gen IV-V name -#define ITEM_TOWN_MAP 713 -#define ITEM_VS_SEEKER 714 -#define ITEM_TM_CASE 715 -#define ITEM_BERRY_POUCH 716 -#define ITEM_POKEMON_BOX_LINK 717 -#define ITEM_POKEMON_BOX ITEM_POKEMON_BOX_LINK // Pre-Gen VIII name -#define ITEM_COIN_CASE 718 -#define ITEM_POWDER_JAR 719 -#define ITEM_WAILMER_PAIL 720 -#define ITEM_POKE_RADAR 721 -#define ITEM_POKEBLOCK_CASE 722 -#define ITEM_SOOT_SACK 723 -#define ITEM_POKE_FLUTE 724 -#define ITEM_FAME_CHECKER 725 -#define ITEM_TEACHY_TV 726 - -// Story Key Items -#define ITEM_SS_TICKET 727 -#define ITEM_EON_TICKET 728 -#define ITEM_MYSTIC_TICKET 729 -#define ITEM_AURORA_TICKET 730 -#define ITEM_OLD_SEA_MAP 731 -#define ITEM_LETTER 732 -#define ITEM_DEVON_PARTS 733 -#define ITEM_DEVON_GOODS ITEM_DEVON_PARTS // Pre-Gen VI name -#define ITEM_GO_GOGGLES 734 -#define ITEM_DEVON_SCOPE 735 -#define ITEM_BASEMENT_KEY 736 -#define ITEM_SCANNER 737 -#define ITEM_STORAGE_KEY 738 -#define ITEM_KEY_TO_ROOM_1 739 -#define ITEM_RM_1_KEY ITEM_KEY_TO_ROOM_1 // Pre-Gen VI name -#define ITEM_KEY_TO_ROOM_2 740 -#define ITEM_RM_2_KEY ITEM_KEY_TO_ROOM_2 // Pre-Gen VI name -#define ITEM_KEY_TO_ROOM_4 741 -#define ITEM_RM_4_KEY ITEM_KEY_TO_ROOM_4 // Pre-Gen VI name -#define ITEM_KEY_TO_ROOM_6 742 -#define ITEM_RM_6_KEY ITEM_KEY_TO_ROOM_6 // Pre-Gen VI name -#define ITEM_METEORITE 743 -#define ITEM_MAGMA_EMBLEM 744 -#define ITEM_CONTEST_PASS 745 -#define ITEM_PARCEL 746 -#define ITEM_OAKS_PARCEL ITEM_PARCEL // Pre-Gen IV name -#define ITEM_SECRET_KEY 747 -#define ITEM_BIKE_VOUCHER 748 -#define ITEM_GOLD_TEETH 749 -#define ITEM_CARD_KEY 750 -#define ITEM_LIFT_KEY 751 -#define ITEM_SILPH_SCOPE 752 -#define ITEM_TRI_PASS 753 -#define ITEM_RAINBOW_PASS 754 -#define ITEM_TEA 755 -#define ITEM_RUBY 756 -#define ITEM_SAPPHIRE 757 - -// GEN IX ITEMS -#define ITEM_ABILITY_SHIELD 758 -#define ITEM_CLEAR_AMULET 759 -#define ITEM_PUNCHING_GLOVE 760 -#define ITEM_COVERT_CLOAK 761 -#define ITEM_LOADED_DICE 762 -#define ITEM_AUSPICIOUS_ARMOR 763 -#define ITEM_BOOSTER_ENERGY 764 -#define ITEM_BIG_BAMBOO_SHOOT 765 -#define ITEM_GIMMIGHOUL_COIN 766 -#define ITEM_LEADERS_CREST 767 -#define ITEM_MALICIOUS_ARMOR 768 -#define ITEM_MIRROR_HERB 769 -#define ITEM_SCROLL_OF_DARKNESS 770 -#define ITEM_SCROLL_OF_WATERS 771 -#define ITEM_TERA_ORB 772 -#define ITEM_TINY_BAMBOO_SHOOT 773 - -#define ITEM_BUG_TERA_SHARD 774 -#define ITEM_DARK_TERA_SHARD 775 -#define ITEM_DRAGON_TERA_SHARD 776 -#define ITEM_ELECTRIC_TERA_SHARD 777 -#define ITEM_FAIRY_TERA_SHARD 778 -#define ITEM_FIGHTING_TERA_SHARD 779 -#define ITEM_FIRE_TERA_SHARD 780 -#define ITEM_FLYING_TERA_SHARD 781 -#define ITEM_GHOST_TERA_SHARD 782 -#define ITEM_GRASS_TERA_SHARD 783 -#define ITEM_GROUND_TERA_SHARD 784 -#define ITEM_ICE_TERA_SHARD 785 -#define ITEM_NORMAL_TERA_SHARD 786 -#define ITEM_POISON_TERA_SHARD 787 -#define ITEM_PSYCHIC_TERA_SHARD 788 -#define ITEM_ROCK_TERA_SHARD 789 -#define ITEM_STEEL_TERA_SHARD 790 -#define ITEM_WATER_TERA_SHARD 791 - -#define ITEM_ADAMANT_CRYSTAL 792 -#define ITEM_GRISEOUS_CORE 793 -#define ITEM_LUSTROUS_GLOBE 794 - -#define ITEM_BLACK_AUGURITE 795 -#define ITEM_LINKING_CORD 796 -#define ITEM_PEAT_BLOCK 797 -#define ITEM_BERSERK_GENE 798 - -#define ITEM_FAIRY_FEATHER 799 -#define ITEM_SYRUPY_APPLE 800 -#define ITEM_UNREMARKABLE_TEACUP 801 -#define ITEM_MASTERPIECE_TEACUP 802 -#define ITEM_CORNERSTONE_MASK 803 -#define ITEM_WELLSPRING_MASK 804 -#define ITEM_HEARTHFLAME_MASK 805 -#define ITEM_HEALTH_MOCHI 806 -#define ITEM_MUSCLE_MOCHI 807 -#define ITEM_RESIST_MOCHI 808 -#define ITEM_GENIUS_MOCHI 809 -#define ITEM_CLEVER_MOCHI 810 -#define ITEM_SWIFT_MOCHI 811 -#define ITEM_FRESH_START_MOCHI 812 -#define ITEM_GLIMMERING_CHARM 813 -#define ITEM_METAL_ALLOY 814 -#define ITEM_STELLAR_TERA_SHARD 815 - -#define ITEM_JUBILIFE_MUFFIN 816 -#define ITEM_REMEDY 817 -#define ITEM_FINE_REMEDY 818 -#define ITEM_SUPERB_REMEDY 819 -#define ITEM_AUX_EVASION 820 -#define ITEM_AUX_GUARD 821 -#define ITEM_AUX_POWER 822 -#define ITEM_AUX_POWERGUARD 823 -#define ITEM_CHOICE_DUMPLING 824 -#define ITEM_SWAP_SNACK 825 -#define ITEM_TWICE_SPICED_RADISH 826 -#define ITEM_POKESHI_DOLL 827 - -#define ITEM_STRANGE_BALL 828 - -// Legends Z-A Mega Stones -#define ITEM_CLEFABLITE 829 -#define ITEM_VICTREEBELITE 830 -#define ITEM_STARMINITE 831 -#define ITEM_DRAGONINITE 832 -#define ITEM_MEGANIUMITE 833 -#define ITEM_FERALIGITE 834 -#define ITEM_SKARMORITE 835 -#define ITEM_FROSLASSITE 836 -#define ITEM_EMBOARITE 837 -#define ITEM_EXCADRITE 838 -#define ITEM_SCOLIPITE 839 -#define ITEM_SCRAFTINITE 840 -#define ITEM_EELEKTROSSITE 841 -#define ITEM_CHANDELURITE 842 -#define ITEM_CHESNAUGHTITE 843 -#define ITEM_DELPHOXITE 844 -#define ITEM_GRENINJITE 845 -#define ITEM_PYROARITE 846 -#define ITEM_FLOETTITE 847 -#define ITEM_MALAMARITE 848 -#define ITEM_BARBARACITE 849 -#define ITEM_DRAGALGITE 850 -#define ITEM_HAWLUCHANITE 851 -#define ITEM_ZYGARDITE 852 -#define ITEM_DRAMPANITE 853 -#define ITEM_FALINKSITE 854 - -// Legends Z-A: Mega Dimension DLC Mega Stones -#define ITEM_HEATRANITE 855 -#define ITEM_DARKRANITE 856 -#define ITEM_ZERAORITE 857 -#define ITEM_RAICHUNITE_X 858 -#define ITEM_RAICHUNITE_Y 859 -#define ITEM_CHIMECHITE 860 -#define ITEM_ABSOLITE_Z 861 -#define ITEM_STARAPTITE 862 -#define ITEM_GARCHOMPITE_Z 863 -#define ITEM_LUCARIONITE_Z 864 -#define ITEM_GOLURKITE 865 -#define ITEM_MEOWSTICITE 866 -#define ITEM_CRABOMINITE 867 -#define ITEM_GOLISOPITE 868 -#define ITEM_MAGEARNITE 869 -#define ITEM_SCOVILLAINITE 870 -#define ITEM_BAXCALIBRITE 871 -#define ITEM_TATSUGIRINITE 872 -#define ITEM_GLIMMORANITE 873 - -#define ITEMS_COUNT 874 -#define ITEM_FIELD_ARROW ITEMS_COUNT - -// A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations -// Its icon is defined at ITEMS_COUNT as the "return to field" arrow -#define ITEM_LIST_END 0xFFFF - // Range of berries given out by various NPCS #define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY #define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY diff --git a/include/data.h b/include/data.h index d81bdf473e..5c24e082b8 100644 --- a/include/data.h +++ b/include/data.h @@ -116,7 +116,7 @@ struct Trainer { u64 aiFlags; const struct TrainerMon *party; - u16 items[MAX_TRAINER_ITEMS]; + enum Item items[MAX_TRAINER_ITEMS]; struct StartingStatuses startingStatus; // this trainer starts a battle with a given status. see include/constants/battle.h for values u8 trainerClass; u8 encounterMusic:7; diff --git a/include/global.h b/include/global.h index a0252e3a85..0111eecae6 100644 --- a/include/global.h +++ b/include/global.h @@ -312,7 +312,7 @@ struct BerryPickingResults struct PyramidBag { - u16 itemId[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT]; + enum Item itemId[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT]; #if MAX_PYRAMID_BAG_ITEM_CAPACITY > 255 u16 quantity[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT]; #else @@ -331,7 +331,7 @@ struct ApprenticeMon { u16 species; enum Move moves[MAX_MON_MOVES]; - u16 item; + enum Item item; }; // This is for past players Apprentices or Apprentices received via Record Mix. @@ -670,7 +670,7 @@ struct WarpData struct ItemSlot { - u16 itemId; + enum Item itemId; u16 quantity; }; @@ -822,7 +822,7 @@ struct RecordMixingGiftData { u8 unk0; u8 quantity; - u16 itemId; + enum Item itemId; u8 filler4[8]; }; @@ -851,7 +851,7 @@ struct Mail /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH]; /*0x1E*/ u16 species; - /*0x20*/ u16 itemId; + /*0x20*/ enum Item itemId; }; struct DaycareMail @@ -902,7 +902,7 @@ struct LilycoveLadyFavor /*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x00C*/ u8 favorId; /*0x00D*/ //u8 padding1; - /*0x00E*/ u16 itemId; + /*0x00E*/ enum Item itemId; /*0x010*/ u16 bestItem; /*0x012*/ u8 language; /*0x013*/ //u8 padding2; diff --git a/include/global.tv.h b/include/global.tv.h index d398c96271..560fcbd2f4 100644 --- a/include/global.tv.h +++ b/include/global.tv.h @@ -224,7 +224,7 @@ typedef union // size = 0x24 /*0x02*/ u8 priceReduced; /*0x03*/ u8 language; /*0x04*/ u8 filler_04[2]; - /*0x06*/ u16 itemIds[SMARTSHOPPER_NUM_ITEMS]; + /*0x06*/ enum Item itemIds[SMARTSHOPPER_NUM_ITEMS]; /*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS]; /*0x12*/ mapsec_u8_t shopLocation; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; @@ -308,7 +308,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 item; + /*0x02*/ enum Item item; /*0x04*/ mapsec_u8_t location; /*0x05*/ u8 language; /*0x06*/ u16 mapLayoutId; @@ -367,7 +367,7 @@ typedef union // size = 0x24 struct { /*0x00*/ u8 kind; /*0x01*/ bool8 active; - /*0x02*/ u16 item; + /*0x02*/ enum Item item; /*0x04*/ u8 whichPrize; /*0x05*/ u8 language; /*0x06*/ u8 filler_06[13]; @@ -451,7 +451,7 @@ typedef union // size = 0x24 /*0x02*/ u16 stepsInBase; /*0x04*/ u8 baseOwnersName[PLAYER_NAME_LENGTH + 1]; /*0x0C*/ u32 flags; - /*0x10*/ u16 item; + /*0x10*/ enum Item item; /*0x12*/ u8 savedState; /*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1]; /*0x1B*/ u8 language; diff --git a/include/item.h b/include/item.h index 6812a7aeb1..332e990a77 100644 --- a/include/item.h +++ b/include/item.h @@ -9,27 +9,6 @@ #include "constants/item_effects.h" #include "constants/hold_effects.h" -/* Expands to: - * enum - * { - * ITEM_TM_FOCUS_PUNCH = ITEM_TM01, - * ... - * ITEM_HM_CUT = ITM_HM01, - * ... - * }; */ -#define ENUM_TM(n, id) CAT(ITEM_TM_, id) = CAT(ITEM_TM, n), -#define ENUM_HM(n, id) CAT(ITEM_HM_, id) = CAT(ITEM_HM, n), -#define TO_TMHM_NUMS(a, ...) (__VA_ARGS__) -enum TMHMItemId -{ - RECURSIVELY(R_ZIP(ENUM_TM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_TM(APPEND_COMMA)))) - RECURSIVELY(R_ZIP(ENUM_HM, TO_TMHM_NUMS NUMBERS_256, (FOREACH_HM(APPEND_COMMA)))) -}; - -#undef ENUM_TM -#undef ENUM_HM -#undef TO_TMHM_NUMS - /* Each of these TM_HM enums corresponds an index in the list of TMs + HMs item ids in * gTMHMItemMoveIds. The index for an item can be retrieved with GetItemTMHMIndex below. */ @@ -41,7 +20,6 @@ enum TMHMIndex NUM_TECHNICAL_MACHINES = (0 FOREACH_TM(PLUS_ONE)), NUM_HIDDEN_MACHINES = (0 FOREACH_HM(PLUS_ONE)), }; - #undef UNPACK_TM_HM_ENUM enum PACKED ItemSortType @@ -86,7 +64,7 @@ enum PACKED ItemSortType typedef void (*ItemUseFunc)(u8); -struct Item +struct ItemInfo { u32 price; u16 secondaryId; @@ -117,12 +95,12 @@ struct ALIGNED(2) BagPocket struct TmHmIndexKey { - enum TMHMItemId itemId:16; + enum Item itemId; enum Move moveId; }; extern const u8 gQuestionMarksItemName[]; -extern const struct Item gItemsInfo[]; +extern const struct ItemInfo gItemsInfo[]; extern struct BagPocket gBagPockets[]; extern const struct TmHmIndexKey gTMHMItemMoveIds[]; @@ -133,7 +111,7 @@ extern const struct TmHmIndexKey gTMHMItemMoveIds[]; #define UNPACK_TM_MOVE_TO_ITEM_ID(_move) case CAT(MOVE_, _move): return CAT(ITEM_TM_, _move); #define UNPACK_HM_MOVE_TO_ITEM_ID(_move) case CAT(MOVE_, _move): return CAT(ITEM_HM_, _move); -static inline enum TMHMIndex GetItemTMHMIndex(u16 item) +static inline enum TMHMIndex GetItemTMHMIndex(enum Item item) { switch (item) { @@ -150,7 +128,7 @@ static inline enum TMHMIndex GetItemTMHMIndex(u16 item) } } -static inline enum Move GetItemTMHMMoveId(u16 item) +static inline enum Move GetItemTMHMMoveId(enum Item item) { switch (item) { @@ -167,7 +145,7 @@ static inline enum Move GetItemTMHMMoveId(u16 item) } } -static inline enum TMHMItemId GetTMHMItemIdFromMoveId(enum Move move) +static inline enum Item GetTMHMItemIdFromMoveId(enum Move move) { switch (move) { @@ -191,7 +169,7 @@ static inline enum TMHMItemId GetTMHMItemIdFromMoveId(enum Move move) #undef UNPACK_TM_MOVE_TO_ITEM_ID #undef UNPACK_HM_MOVE_TO_ITEM_ID -static inline enum TMHMItemId GetTMHMItemId(enum TMHMIndex index) +static inline enum Item GetTMHMItemId(enum TMHMIndex index) { return gTMHMItemMoveIds[index].itemId; } @@ -204,7 +182,7 @@ static inline u16 GetTMHMMoveId(enum TMHMIndex index) void BagPocket_SetSlotData(struct BagPocket *pocket, u32 pocketPos, struct ItemSlot newSlot); struct ItemSlot BagPocket_GetSlotData(struct BagPocket *pocket, u32 pocketPos); -static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, u16 itemId, u16 quantity) +static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32 pocketPos, enum Item itemId, u16 quantity) { BagPocket_SetSlotData(pocket, pocketPos, (struct ItemSlot) {itemId, quantity}); } @@ -226,20 +204,20 @@ static inline struct ItemSlot GetBagItemIdAndQuantity(enum Pocket pocketId, u32 void ApplyNewEncryptionKeyToBagItems(u32 newKey); void SetBagItemsPointers(void); -u8 *CopyItemName(u16 itemId, u8 *dst); -u8 *CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity); +u8 *CopyItemName(enum Item itemId, u8 *dst); +u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *dst, u32 quantity); bool32 IsBagPocketNonEmpty(enum Pocket pocketId); -bool32 CheckBagHasItem(u16 itemId, u16 count); +bool32 CheckBagHasItem(enum Item itemId, u16 count); bool32 HasAtLeastOneBerry(void); bool32 HasAtLeastOnePokeBall(void); -bool32 CheckBagHasSpace(u16 itemId, u16 count); -u32 GetFreeSpaceForItemInBag(u16 itemId); -bool32 AddBagItem(u16 itemId, u16 count); -bool32 RemoveBagItem(u16 itemId, u16 count); +bool32 CheckBagHasSpace(enum Item itemId, u16 count); +u32 GetFreeSpaceForItemInBag(enum Item itemId); +bool32 AddBagItem(enum Item itemId, u16 count); +bool32 RemoveBagItem(enum Item itemId, u16 count); void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count); u8 CountUsedPCItemSlots(void); -bool32 CheckPCHasItem(u16 itemId, u16 count); -bool32 AddPCItem(u16 itemId, u16 count); +bool32 CheckPCHasItem(enum Item itemId, u16 count); +bool32 AddPCItem(enum Item itemId, u16 count); void RemovePCItem(u8 index, u16 count); void CompactPCItems(void); void SwapRegisteredBike(void); @@ -247,26 +225,26 @@ void CompactItemsInBagPocket(enum Pocket pocketId); void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to); void MoveItemSlotInPC(struct ItemSlot *itemSlots, u32 from, u32 to); void ClearBag(void); -u16 CountTotalItemQuantityInBag(u16 itemId); -bool32 AddPyramidBagItem(u16 itemId, u16 count); -bool32 RemovePyramidBagItem(u16 itemId, u16 count); -const u8 *GetItemName(u16 itemId); -u32 GetItemPrice(u16 itemId); -const u8 *GetItemEffect(u32 itemId); -enum HoldEffect GetItemHoldEffect(u32 itemId); -u32 GetItemHoldEffectParam(u32 itemId); -const u8 *GetItemDescription(u16 itemId); -u8 GetItemImportance(u16 itemId); -u8 GetItemConsumability(u16 itemId); -enum Pocket GetItemPocket(u16 itemId); -u8 GetItemType(u16 itemId); -ItemUseFunc GetItemFieldFunc(u16 itemId); -u8 GetItemBattleUsage(u16 itemId); -u32 GetItemSecondaryId(u32 itemId); -u32 GetItemFlingPower(u32 itemId); -u32 GetItemStatus1Mask(u16 itemId); -bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile volatile); -u32 GetItemSellPrice(u32 itemId); +u16 CountTotalItemQuantityInBag(enum Item itemId); +bool32 AddPyramidBagItem(enum Item itemId, u16 count); +bool32 RemovePyramidBagItem(enum Item itemId, u16 count); +const u8 *GetItemName(enum Item itemId); +u32 GetItemPrice(enum Item itemId); +const u8 *GetItemEffect(enum Item itemId); +enum HoldEffect GetItemHoldEffect(enum Item itemId); +u32 GetItemHoldEffectParam(enum Item itemId); +const u8 *GetItemDescription(enum Item itemId); +u8 GetItemImportance(enum Item itemId); +u8 GetItemConsumability(enum Item itemId); +enum Pocket GetItemPocket(enum Item itemId); +u8 GetItemType(enum Item itemId); +ItemUseFunc GetItemFieldFunc(enum Item itemId); +u8 GetItemBattleUsage(enum Item itemId); +u32 GetItemSecondaryId(enum Item itemId); +u32 GetItemFlingPower(enum Item itemId); +u32 GetItemStatus1Mask(enum Item itemId); +bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile volatile); +u32 GetItemSellPrice(enum Item itemId); bool32 IsHoldEffectChoice(enum HoldEffect holdEffect); #endif // GUARD_ITEM_H diff --git a/include/item_icon.h b/include/item_icon.h index 64753c32e2..463039fcfd 100644 --- a/include/item_icon.h +++ b/include/item_icon.h @@ -9,9 +9,9 @@ extern const struct SpriteTemplate gItemIconSpriteTemplate; bool8 AllocItemIconTemporaryBuffers(void); void FreeItemIconTemporaryBuffers(void); void CopyItemIconPicTo4x4Buffer(const void *src, void *dest); -u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId); -u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId); -const void *GetItemIconPic(u16 itemId); -const u16 *GetItemIconPalette(u16 itemId); +u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item itemId); +u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, enum Item itemId); +const void *GetItemIconPic(enum Item itemId); +const u16 *GetItemIconPalette(enum Item itemId); #endif //GUARD_ITEM_ICON_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index f9ee725850..3cc44a5611 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -12,7 +12,7 @@ void AddBagVisualSprite(u8 bagPocketId); void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets); void ShakeBagSprite(void); void AddSwitchPocketRotatingBallSprite(s16 rotationDirection); -void AddBagItemIconSprite(u16 itemId, u8 id); +void AddBagItemIconSprite(enum Item itemId, u8 id); void RemoveBagItemIconSprite(u8 id); void CreateItemMenuSwapLine(void); void SetItemMenuSwapLineInvisibility(bool8 invisible); diff --git a/include/item_use.h b/include/item_use.h index ccb0f4f3df..41915dd733 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -43,7 +43,7 @@ void ItemUseInBattle_PartyMenu(u8 taskId); void ItemUseInBattle_PartyMenuChooseMove(u8 taskId); void Task_UseDigEscapeRopeOnField(u8 taskId); bool8 CanUseDigOrEscapeRopeOnCurMap(void); -u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); +u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId); void FieldUseFunc_VsSeeker(u8 taskId); void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8 taskId); void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField); @@ -61,6 +61,6 @@ enum { }; bool32 CanThrowBall(void); -bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon); +bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon); #endif // GUARD_ITEM_USE_H diff --git a/include/list_menu.h b/include/list_menu.h index 8d472320d6..4fbb491e4e 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -61,7 +61,7 @@ struct ListMenuTemplate { const struct ListMenuItem *items; void (*moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list); - void (*itemPrintFunc)(u8 windowId, u32 itemId, u8 y); + void (*itemPrintFunc)(u8 windowId, u32 instanceId, u8 y); u32 totalItems:12; u32 maxShowed:12; u32 textNarrowWidth:8; diff --git a/include/mail.h b/include/mail.h index de29b21d42..58a2d30767 100644 --- a/include/mail.h +++ b/include/mail.h @@ -23,13 +23,13 @@ void ReadMail(struct Mail *mail, MainCallback exitCallback, bool8 hasText); void ClearAllMail(void); void ClearMail(struct Mail *mail); bool8 MonHasMail(struct Pokemon *mon); -u8 GiveMailToMonByItemId(struct Pokemon *mon, u16 itemId); +u8 GiveMailToMonByItemId(struct Pokemon *mon, enum Item itemId); u16 SpeciesToMailSpecies(u16 species, u32 personality); u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail); void TakeMailFromMon(struct Pokemon *mon); void ClearMailItemId(u8 mailId); u8 TakeMailFromMonAndSave(struct Pokemon *mon); -bool8 ItemIsMail(u16 itemId); +bool8 ItemIsMail(enum Item itemId); #endif // GUARD_MAIL_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index f9a418a938..5ec4f60ecd 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -25,8 +25,8 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity, u16 max); u8 GetLRKeysPressed(void); u8 GetLRKeysPressedAndHeld(void); -bool8 IsHoldingItemAllowed(u16 itemId); -bool8 IsWritingMailAllowed(u16 itemId); +bool8 IsHoldingItemAllowed(enum Item itemId); +bool8 IsWritingMailAllowed(enum Item itemId); bool8 MenuHelpers_IsLinkActive(void); bool8 MenuHelpers_ShouldWaitForLinkRecv(void); void SetItemListPerPageCount(struct ItemSlot *slots, u8 slotsCount, u8 *pageItems, u8 *totalItems, u8 maxPerPage); diff --git a/include/overworld.h b/include/overworld.h index e0df9c3b89..4d913f02f8 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -181,6 +181,6 @@ enum ItemObtainFlags FLAG_GET_ITEM_OBTAINED, FLAG_SET_ITEM_OBTAINED, }; -bool8 GetSetItemObtained(u16 item, enum ItemObtainFlags caseId); +bool8 GetSetItemObtained(enum Item item, enum ItemObtainFlags caseId); #endif // GUARD_OVERWORLD_H diff --git a/include/party_menu.h b/include/party_menu.h index 620b6fc0da..1ce32f22b5 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -64,7 +64,7 @@ void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task); void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task); void ItemUseCB_PPRecovery(u8 taskId, TaskFunc task); void ItemUseCB_PPUp(u8 taskId, TaskFunc task); -enum Move ItemIdToBattleMoveId(u16 item); +enum Move ItemIdToBattleMoveId(enum Item item); bool8 MonKnowsMove(struct Pokemon *mon, enum Move move); bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move); void ItemUseCB_TMHM(u8 taskId, TaskFunc task); @@ -77,7 +77,7 @@ void ItemUseCB_FormChange_ConsumedOnUse(u8 taskId, TaskFunc task); void ItemUseCB_RotomCatalog(u8 taskId, TaskFunc task); void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task); void ItemUseCB_Fusion(u8 taskId, TaskFunc task); -u8 GetItemEffectType(u16 item); +u8 GetItemEffectType(enum Item item); void CB2_PartyMenuFromStartMenu(void); void CB2_ChooseMonToGiveItem(void); void ChooseMonToGiveMailFromMailbox(void); diff --git a/include/pokemon.h b/include/pokemon.h index 92ff5aac05..2e05057be7 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -342,7 +342,7 @@ struct BattlePokemon /*0x06*/ u16 speed; /*0x08*/ u16 spAttack; /*0x0A*/ u16 spDefense; - /*0x0C*/ u16 moves[MAX_MON_MOVES]; + /*0x0C*/ enum Move moves[MAX_MON_MOVES]; /*0x14*/ u32 hpIV:5; /*0x14*/ u32 attackIV:5; /*0x15*/ u32 defenseIV:5; @@ -358,7 +358,7 @@ struct BattlePokemon /*0x2B*/ u8 level; /*0x2C*/ u8 friendship; /*0x2D*/ u16 maxHP; - /*0x2F*/ u16 item; + /*0x2F*/ enum Item item; /*0x31*/ u8 nickname[POKEMON_NAME_LENGTH + 1]; /*0x3C*/ u8 ppBonuses; /*0x3D*/ u8 otName[PLAYER_NAME_LENGTH + 1]; @@ -406,8 +406,8 @@ struct SpeciesInfo /*0xC4*/ u16 evYield_SpAttack:2; u16 evYield_SpDefense:2; u16 padding2:4; - u16 itemCommon; - u16 itemRare; + enum Item itemCommon; + enum Item itemRare; u8 genderRatio; u8 eggCycles; u8 friendship; @@ -638,7 +638,7 @@ enum FusionExtraMoveHandling struct Fusion { u16 fusionStorageIndex; - u16 itemId; + enum Item itemId; u16 targetSpecies1; u16 targetSpecies2; u16 fusingIntoMon; @@ -807,11 +807,11 @@ void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst); void CopyPartyMonToBattleData(u32 battler, u32 partyIndex); -bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); -bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 usedByAI); +bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex); +bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex, u8 usedByAI); bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battler); -u8 GetItemEffectParamOffset(u32 battler, u16 itemId, u8 effectByte, u8 effectBit); -u8 *UseStatIncreaseItem(u16 itemId); +u8 GetItemEffectParamOffset(u32 battler, enum Item itemId, u8 effectByte, u8 effectBit); +u8 *UseStatIncreaseItem(enum Item itemId); u8 GetNature(struct Pokemon *mon); u8 GetNatureFromPersonality(u32 personality); u32 GetGMaxTargetSpecies(u32 species); diff --git a/include/script_pokemon_util.h b/include/script_pokemon_util.h index 97a7bb94a3..45735ac2a3 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, u16 item); +u32 ScriptGiveMon(u16 species, u8 level, enum Item item); u8 ScriptGiveEgg(u16 species); -void CreateScriptedWildMon(u16 species, u8 level, u16 item); -void CreateScriptedDoubleWildMon(u16 species, u8 level, u16 item, u16 species2, u8 level2, u16 item2); +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); void ScriptSetMonMoveSlot(u8 monIndex, enum Move move, u8 slot); void ReducePlayerPartyToSelectedMons(void); void HealPlayerParty(void); diff --git a/include/test/battle.h b/include/test/battle.h index 97be07f002..d925185b1d 100644 --- a/include/test/battle.h +++ b/include/test/battle.h @@ -1194,7 +1194,7 @@ struct MoveContext struct ItemContext { - u16 itemId; + enum Item itemId; u16 explicitItemId:1; u16 partyIndex; u16 explicitPartyIndex:1; diff --git a/src/apricorn_tree.c b/src/apricorn_tree.c index b7784a6a85..598c4c39b9 100644 --- a/src/apricorn_tree.c +++ b/src/apricorn_tree.c @@ -28,14 +28,14 @@ void ObjectEventInteractionPickApricornTree(void) { u32 id = GetObjectEventApricornTreeId(gSelectedObjectEvent); enum ApricornType apricorn = GetApricornTypeByApricornTreeId(id); - gSpecialVar_0x8006 = CheckBagHasSpace(apricorn, GetApricornCountByApricornTreeId(id)); + gSpecialVar_0x8006 = CheckBagHasSpace((enum Item)apricorn, GetApricornCountByApricornTreeId(id)); if (gSpecialVar_0x8006) { - AddBagItem(apricorn, GetApricornCountByApricornTreeId(id)); + AddBagItem((enum Item)apricorn, GetApricornCountByApricornTreeId(id)); SetApricornTreePicked(id); } - gSpecialVar_Result = GetItemPocket(apricorn); + gSpecialVar_Result = GetItemPocket((enum Item)apricorn); } enum ApricornType GetApricornTypeByApricornTreeId(u32 id) diff --git a/src/battle_ai_items.c b/src/battle_ai_items.c index 6f253e73d2..29af4258a6 100644 --- a/src/battle_ai_items.c +++ b/src/battle_ai_items.c @@ -58,7 +58,7 @@ bool32 ShouldUseItem(u32 battler) for (u32 itemIndex = 0; itemIndex < MAX_TRAINER_ITEMS; itemIndex++) { - u16 item; + enum Item item; const u8 *itemEffects; u8 battlerSide; diff --git a/src/battle_ai_main.c b/src/battle_ai_main.c index 03cf50fa45..25b00d7223 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -5160,7 +5160,7 @@ static s32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, enum Move move ADJUST_SCORE(WEAK_EFFECT); if (aiData->abilities[battlerAtk] == ABILITY_RIPEN) { - u32 item = GetBattlerPartyState(battlerAtk)->usedHeldItem; + enum Item item = GetBattlerPartyState(battlerAtk)->usedHeldItem; u32 toHeal = (GetItemHoldEffectParam(item) == 10) ? 10 : gBattleMons[battlerAtk].maxHP / GetItemHoldEffectParam(item); if (IsStatBoostingBerry(item) && aiData->hpPercents[battlerAtk] > 60) diff --git a/src/battle_ai_switch.c b/src/battle_ai_switch.c index a95ed89b38..1202ee0934 100644 --- a/src/battle_ai_switch.c +++ b/src/battle_ai_switch.c @@ -1612,7 +1612,7 @@ static u32 GetSwitchinRecurringDamage(u32 battler) static u32 GetSwitchinStatusDamage(u32 battler) { u8 tSpikesLayers = gSideTimers[GetBattlerSide(battler)].toxicSpikesAmount; - u16 heldItemEffect = gAiLogicData->holdEffects[battler]; + enum HoldEffect heldItemEffect = gAiLogicData->holdEffects[battler]; u32 status = gBattleMons[battler].status1; enum Ability ability = gAiLogicData->abilities[battler]; u32 maxHP = gBattleMons[battler].maxHP; diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 5061019342..30e89c6807 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -3481,7 +3481,7 @@ enum AIPivot ShouldPivot(u32 battlerAtk, u32 battlerDef, enum Move move) #define BATTLE_TYPE_CANT_KNOCK_OFF (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK \ | BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE \ | (B_TRAINERS_KNOCK_OFF_ITEMS == TRUE ? BATTLE_TYPE_TRAINER : 0)) -bool32 CanKnockOffItem(u32 fromBattler, u32 battler, u32 item) +bool32 CanKnockOffItem(u32 fromBattler, u32 battler, enum Item item) { if (item == ITEM_NONE) return FALSE; @@ -4634,7 +4634,7 @@ static const u16 sRecycleEncouragedItems[] = }; // Its assumed that the berry is strategically given, so no need to check benefits of the berry -bool32 IsStatBoostingBerry(u32 item) +bool32 IsStatBoostingBerry(enum Item item) { switch (item) { @@ -4652,7 +4652,7 @@ bool32 IsStatBoostingBerry(u32 item) } } -bool32 ShouldRestoreHpBerry(u32 battlerAtk, u32 item) +bool32 ShouldRestoreHpBerry(u32 battlerAtk, enum Item item) { switch (item) { @@ -4672,7 +4672,7 @@ bool32 ShouldRestoreHpBerry(u32 battlerAtk, u32 item) } } -bool32 IsRecycleEncouragedItem(u32 item) +bool32 IsRecycleEncouragedItem(enum Item item) { for (u32 recycleIndex = 0; recycleIndex < ARRAY_COUNT(sRecycleEncouragedItems); recycleIndex++) { diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 7ec14660e5..6184bc297f 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -231,7 +231,7 @@ static u32 GetNextBall(u32 ballId) static void HandleInputChooseAction(u32 battler) { - u16 itemId = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8); + enum Item itemId = gBattleResources->bufferA[battler][2] | (gBattleResources->bufferA[battler][3] << 8); DoBounceEffect(battler, BOUNCE_HEALTHBOX, 7, 1); DoBounceEffect(battler, BOUNCE_MON, 7, 1); diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 68b35f6836..69971792b9 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1050,7 +1050,7 @@ void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, enum Stri } // itemId only relevant for B_ACTION_USE_ITEM -void BtlController_EmitChooseAction(u32 battler, u32 bufferId, u8 action, u16 itemId) +void BtlController_EmitChooseAction(u32 battler, u32 bufferId, u8 action, enum Item itemId) { gBattleResources->transferBuffer[0] = CONTROLLER_CHOOSEACTION; gBattleResources->transferBuffer[1] = action; diff --git a/src/battle_debug.c b/src/battle_debug.c index 7b2732dd56..851c862b38 100644 --- a/src/battle_debug.c +++ b/src/battle_debug.c @@ -921,7 +921,7 @@ static void PutAiInfoText(struct BattleDebugMenu *data) { enum Ability ability = gAiLogicData->abilities[i]; enum HoldEffect holdEffect = gAiLogicData->holdEffects[i]; - u16 item = gAiLogicData->items[i]; + enum Item item = gAiLogicData->items[i]; u8 x = (i == B_POSITION_PLAYER_LEFT) ? 83 + (i) * 75 : 83 + (i-1) * 75; AddTextPrinterParameterized(data->aiMovesWindowId, FONT_SMALL, gAbilitiesInfo[ability].name, x, 0, 0, NULL); AddTextPrinterParameterized(data->aiMovesWindowId, FONT_SMALL, GetItemName(item), x, 15, 0, NULL); diff --git a/src/battle_dome.c b/src/battle_dome.c index 69f89dcf3d..055b183683 100644 --- a/src/battle_dome.c +++ b/src/battle_dome.c @@ -5685,7 +5685,7 @@ static void RestoreDomePlayerPartyHeldItems(void) for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++) { int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1; - u16 item = GetMonData(GetSavedPlayerPartyMon(playerMonId), MON_DATA_HELD_ITEM); + enum Item item = GetMonData(GetSavedPlayerPartyMon(playerMonId), MON_DATA_HELD_ITEM); SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item); } } diff --git a/src/battle_hold_effects.c b/src/battle_hold_effects.c index 1e5e1252ad..08feec4d56 100644 --- a/src/battle_hold_effects.c +++ b/src/battle_hold_effects.c @@ -101,7 +101,7 @@ enum ItemEffect TryHandleSeed(u32 battler, u32 terrainFlag, enum Stat statId) return ITEM_NO_EFFECT; } -static enum ItemEffect TryTerrainSeeds(u32 battler, u32 item) +static enum ItemEffect TryTerrainSeeds(u32 battler, enum Item item) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -184,7 +184,7 @@ static enum ItemEffect TryConsumeMirrorHerb(u32 battler) return effect; } -static enum ItemEffect TryKingsRock(u32 battlerAtk, u32 battlerDef, u32 item) +static enum ItemEffect TryKingsRock(u32 battlerAtk, u32 battlerDef, enum Item item) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -232,7 +232,7 @@ static enum ItemEffect TryAirBalloon(u32 battler, ActivationTiming timing) return effect; } -static enum ItemEffect TryRockyHelmet(u32 battlerDef, u32 battlerAtk, u32 item) +static enum ItemEffect TryRockyHelmet(u32 battlerDef, u32 battlerAtk, enum Item item) { enum ItemEffect effect = ITEM_NO_EFFECT; enum Ability ability = GetBattlerAbility(battlerAtk); @@ -330,7 +330,7 @@ static enum ItemEffect TryAbsorbBulb(u32 battlerDef) return effect; } -static enum ItemEffect TryJabocaBerry(u32 battlerDef, u32 battlerAtk, u32 item) +static enum ItemEffect TryJabocaBerry(u32 battlerDef, u32 battlerAtk, enum Item item) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -352,7 +352,7 @@ static enum ItemEffect TryJabocaBerry(u32 battlerDef, u32 battlerAtk, u32 item) return effect; } -static enum ItemEffect TryRowapBerry(u32 battlerDef, u32 battlerAtk, u32 item) +static enum ItemEffect TryRowapBerry(u32 battlerDef, u32 battlerAtk, enum Item item) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -557,7 +557,7 @@ static enum ItemEffect TryLifeOrb(u32 battlerAtk) return effect; } -static enum ItemEffect TryStickyBarbOnTargetHit(u32 battlerDef, u32 battlerAtk, u32 item) +static enum ItemEffect TryStickyBarbOnTargetHit(u32 battlerDef, u32 battlerAtk, enum Item item) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -578,7 +578,7 @@ static enum ItemEffect TryStickyBarbOnTargetHit(u32 battlerDef, u32 battlerAtk, return effect; } -static enum ItemEffect TryStickyBarbOnEndTurn(u32 battler, u32 item) +static enum ItemEffect TryStickyBarbOnEndTurn(u32 battler, enum Item item) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -811,7 +811,7 @@ enum HealAmount PERCENT_HEAL_AMOUNT, }; -static u32 ItemHealHp(u32 battler, u32 itemId, enum HealAmount percentHeal) +static u32 ItemHealHp(u32 battler, enum Item itemId, enum HealAmount percentHeal) { enum ItemEffect effect = ITEM_NO_EFFECT; enum Ability ability = GetBattlerAbility(battler); @@ -837,7 +837,7 @@ static u32 ItemHealHp(u32 battler, u32 itemId, enum HealAmount percentHeal) return effect; } -static u32 ItemRestorePp(u32 battler, u32 itemId) +static u32 ItemRestorePp(u32 battler, enum Item itemId) { enum ItemEffect effect = ITEM_NO_EFFECT; struct Pokemon *mon = GetBattlerMon(battler); @@ -877,7 +877,7 @@ static u32 ItemRestorePp(u32 battler, u32 itemId) return effect; } -static enum ItemEffect HealConfuseBerry(u32 battler, u32 itemId, u32 flavorId) +static enum ItemEffect HealConfuseBerry(u32 battler, enum Item itemId, u32 flavorId) { enum ItemEffect effect = ITEM_NO_EFFECT; u32 hpFraction = B_CONFUSE_BERRIES_HEAL >= GEN_7 ? 4 : 2; @@ -900,7 +900,7 @@ static enum ItemEffect HealConfuseBerry(u32 battler, u32 itemId, u32 flavorId) return effect; } -static enum ItemEffect StatRaiseBerry(u32 battler, u32 itemId, enum Stat statId) +static enum ItemEffect StatRaiseBerry(u32 battler, enum Item itemId, enum Stat statId) { enum ItemEffect effect = ITEM_NO_EFFECT; enum Ability ability = GetBattlerAbility(battler); @@ -919,7 +919,7 @@ static enum ItemEffect StatRaiseBerry(u32 battler, u32 itemId, enum Stat statId) return effect; } -static enum ItemEffect CriticalHitRatioUp(u32 battler, u32 itemId) +static enum ItemEffect CriticalHitRatioUp(u32 battler, enum Item itemId) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -935,7 +935,7 @@ static enum ItemEffect CriticalHitRatioUp(u32 battler, u32 itemId) return effect; } -static enum ItemEffect RandomStatRaiseBerry(u32 battler, u32 itemId) +static enum ItemEffect RandomStatRaiseBerry(u32 battler, enum Item itemId) { enum ItemEffect effect = ITEM_NO_EFFECT; enum Stat stat; @@ -973,7 +973,7 @@ static enum ItemEffect RandomStatRaiseBerry(u32 battler, u32 itemId) return effect; } -static enum ItemEffect TrySetMicleBerry(u32 battler, u32 itemId) +static enum ItemEffect TrySetMicleBerry(u32 battler, enum Item itemId) { enum ItemEffect effect = ITEM_NO_EFFECT; @@ -989,7 +989,7 @@ static enum ItemEffect TrySetMicleBerry(u32 battler, u32 itemId) enum ItemEffect ItemBattleEffects(u32 itemBattler, u32 battler, enum HoldEffect holdEffect, ActivationTiming timing) { enum ItemEffect effect = ITEM_NO_EFFECT; - u32 item; + enum Item item; if (timing == IsOnBerryActivation || timing == IsOnFlingActivation) item = gLastUsedItem; diff --git a/src/battle_move_resolution.c b/src/battle_move_resolution.c index ae3d5a9c2f..9c7a46989f 100644 --- a/src/battle_move_resolution.c +++ b/src/battle_move_resolution.c @@ -1549,7 +1549,7 @@ static enum MoveEndResult MoveEnd_ThirdMoveBlock(void) case EFFECT_NATURAL_GIFT: if (!gBattleStruct->unableToUseMove && GetItemPocket(gBattleMons[gBattlerAttacker].item) == POCKET_BERRIES) { - u32 item = gBattleMons[gBattlerAttacker].item; + enum Item item = gBattleMons[gBattlerAttacker].item; gBattleMons[gBattlerAttacker].item = ITEM_NONE; gBattleStruct->battlerState[gBattlerAttacker].canPickupItem = TRUE; GetBattlerPartyState(gBattlerAttacker)->usedHeldItem = item; diff --git a/src/battle_pyramid.c b/src/battle_pyramid.c index 7de2d5633f..61c6f35330 100644 --- a/src/battle_pyramid.c +++ b/src/battle_pyramid.c @@ -1180,7 +1180,7 @@ static void UpdatePyramidLightRadius(void) static void ClearPyramidPartyHeldItems(void) { int i, j; - u16 item = 0; + enum Item item = ITEM_NONE; for (i = 0; i < PARTY_SIZE; i++) { diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c index f391e6e91d..49a8b0f75c 100644 --- a/src/battle_pyramid_bag.c +++ b/src/battle_pyramid_bag.c @@ -82,8 +82,8 @@ static void ShowNumToToss(void); static void CloseBattlePyramidBagTextWindow(void); static bool8 LoadPyramidBagGfx(void); static bool8 LoadPyramidBagMenu(void); -static void ShowItemIcon(u16, u8); -static void CopyBagItemName(u8 *, u16); +static void ShowItemIcon(enum Item itemId, bool8 isAlt); +static void CopyBagItemName(u8 *dst, enum Item itemId); static void FreeItemIconSpriteByAltId(u8); static void PrintItemDescription(s32); static void PrintSelectorArrowAtPos(u8, u8); @@ -615,7 +615,7 @@ static void SetBagItemsListTemplate(void) gMultiuseListMenuTemplate.maxShowed = gPyramidBagMenu->listMenuMaxShown; } -static void CopyBagItemName(u8 *dst, u16 itemId) +static void CopyBagItemName(u8 *dst, enum Item itemId) { if (GetItemPocket(itemId) == POCKET_BERRIES) { @@ -1587,7 +1587,7 @@ static void SpriteCB_BagWaitForShake(struct Sprite *sprite) } } -static void ShowItemIcon(u16 itemId, bool8 isAlt) +static void ShowItemIcon(enum Item itemId, bool8 isAlt) { u8 itemSpriteId; u8 *spriteId = &gPyramidBagMenu->spriteIds[isAlt + PBAG_SPRITE_ITEM_ICON]; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6f3dca5a44..ad211f4933 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -2327,7 +2327,7 @@ void StealTargetItem(u8 battlerStealer, u8 itemBattler) MarkBattlerForControllerExec(battlerStealer); } - RecordItemEffectBattle(itemBattler, ITEM_NONE); + RecordItemEffectBattle(itemBattler, HOLD_EFFECT_NONE); CheckSetUnburden(itemBattler); BtlController_EmitSetMonData(itemBattler, B_COMM_TO_CONTROLLER, REQUEST_HELDITEM_BATTLE, 0, sizeof(gBattleMons[itemBattler].item), &gBattleMons[itemBattler].item); // remove target item @@ -4071,7 +4071,7 @@ static bool32 BattleTypeAllowsExp(void) static u32 GetMonHoldEffect(struct Pokemon *mon) { enum HoldEffect holdEffect; - u32 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); if (item == ITEM_ENIGMA_BERRY_E_READER) #if FREE_ENIGMA_BERRY == FALSE @@ -6470,7 +6470,7 @@ static void Cmd_setgravity(void) } } -static bool32 TryCheekPouch(u32 battler, u32 itemId, const u8 *nextInstr) +static bool32 TryCheekPouch(u32 battler, enum Item itemId, const u8 *nextInstr) { if (GetItemPocket(itemId) == POCKET_BERRIES && GetBattlerAbility(battler) == ABILITY_CHEEK_POUCH @@ -6492,7 +6492,7 @@ static void Cmd_removeitem(void) CMD_ARGS(u8 battler); u32 battler; - u16 itemId = 0; + enum Item itemId = 0; if (gBattleScripting.overrideBerryRequirements) { @@ -11999,7 +11999,7 @@ void BS_CheckParentalBondCounter(void) void BS_JumpIfCantLoseItem(void) { NATIVE_ARGS(const u8 *jumpInstr); - u32 item = gBattleMons[gBattlerTarget].item; + enum Item item = gBattleMons[gBattlerTarget].item; if (item == ITEM_NONE || !CanBattlerGetOrLoseItem(gBattlerTarget, gBattlerAttacker, item)) gBattlescriptCurrInstr = cmd->jumpInstr; diff --git a/src/battle_special.c b/src/battle_special.c index 176366eba8..30dcb34886 100644 --- a/src/battle_special.c +++ b/src/battle_special.c @@ -37,7 +37,7 @@ static void HandleSpecialTrainerBattleEnd(void) case SPECIAL_BATTLE_SECRET_BASE: for (i = 0; i < PARTY_SIZE; i++) { - u16 itemBefore = GetMonData(&gSaveBlock1Ptr->playerParty[i], MON_DATA_HELD_ITEM); + enum Item itemBefore = GetMonData(&gSaveBlock1Ptr->playerParty[i], MON_DATA_HELD_ITEM); SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &itemBefore); } break; @@ -76,7 +76,7 @@ void DoSpecialTrainerBattle(void) case SPECIAL_BATTLE_SECRET_BASE: for (i = 0; i < PARTY_SIZE; i++) { - u16 itemBefore = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); + enum Item itemBefore = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM); SetMonData(&gSaveBlock1Ptr->playerParty[i], MON_DATA_HELD_ITEM, &itemBefore); } CreateTask(Task_StartBattleAfterTransition, 1); diff --git a/src/battle_util.c b/src/battle_util.c index f7dea05ba7..9a00dc764c 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -55,7 +55,7 @@ static bool32 TryRemoveScreens(u32 battler); static bool32 IsUnnerveAbilityOnOpposingSide(u32 battler); -static u32 GetFlingPowerFromItemId(u32 itemId); +static u32 GetFlingPowerFromItemId(enum Item itemId); static void SetRandomMultiHitCounter(); static bool32 IsNonVolatileStatusBlocked(u32 battlerDef, enum Ability abilityDef, bool32 abilityAffected, const u8 *battleScript, enum ResultOption option); static bool32 CanSleepDueToSleepClause(u32 battlerAtk, u32 battlerDef, enum ResultOption option); @@ -341,7 +341,7 @@ static bool32 ShouldTeraShellDistortTypeMatchups(enum Move move, u32 battlerDef, return FALSE; } -bool32 IsUnnerveBlocked(u32 battler, u32 itemId) +bool32 IsUnnerveBlocked(u32 battler, enum Item itemId) { if (GetItemPocket(itemId) != POCKET_BERRIES) return FALSE; @@ -7235,7 +7235,7 @@ bool32 CanBeConfused(u32 battler) } // second argument is 1/X of current hp compared to max hp -bool32 HasEnoughHpToEatBerry(u32 battler, enum Ability ability, u32 hpFraction, u32 itemId) +bool32 HasEnoughHpToEatBerry(u32 battler, enum Ability ability, u32 hpFraction, enum Item itemId) { if (!IsBattlerAlive(battler)) return FALSE; @@ -10540,7 +10540,7 @@ bool32 DoBattlersShareType(u32 battler1, u32 battler2) return FALSE; } -bool32 CanBattlerGetOrLoseItem(u32 fromBattler, u32 battler, u16 itemId) +bool32 CanBattlerGetOrLoseItem(u32 fromBattler, u32 battler, enum Item itemId) { u16 species = gBattleMons[fromBattler].species; enum HoldEffect holdEffect = GetItemHoldEffect(itemId); // Raw hold effect @@ -10878,7 +10878,7 @@ enum DamageCategory GetCategoryBasedOnStats(u32 battler) return DAMAGE_CATEGORY_PHYSICAL; } -static u32 GetFlingPowerFromItemId(u32 itemId) +static u32 GetFlingPowerFromItemId(enum Item itemId) { if (gItemsInfo[itemId].pocket == POCKET_TM_HM) { @@ -10893,7 +10893,7 @@ static u32 GetFlingPowerFromItemId(u32 itemId) bool32 CanFling(u32 battlerAtk, u32 battlerDef) { - u16 item = gBattleMons[battlerAtk].item; + enum Item item = gBattleMons[battlerAtk].item; if (item == ITEM_NONE || (GetConfig(CONFIG_KLUTZ_FLING_INTERACTION) >= GEN_5 && GetBattlerAbility(battlerAtk) == ABILITY_KLUTZ) @@ -10972,7 +10972,7 @@ void TryRestoreHeldItems(void) } } -bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item) +bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, enum Item item) { enum BattleSide stealerSide = GetBattlerSide(battlerStealing); @@ -11007,14 +11007,14 @@ bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item) if (GetItemHoldEffect(item) == HOLD_EFFECT_AIR_BALLOON) return FALSE; - if (!CanBattlerGetOrLoseItem(battlerItem, battlerStealing, item) // Battler with item cannot have it stolen + if (!CanBattlerGetOrLoseItem(battlerItem, battlerStealing, item) // Battler with item cannot have it stolen || !CanBattlerGetOrLoseItem(battlerStealing, battlerItem, item)) // Stealer cannot take the item return FALSE; return TRUE; } -void TrySaveExchangedItem(u32 battler, u16 stolenItem) +void TrySaveExchangedItem(u32 battler, enum Item stolenItem) { // Because BtlController_EmitSetMonData does SetMonData, we need to save the stolen item only if it matches the battler's original // So, if the player steals an item during battle and has it stolen from it, it will not end the battle with it (naturally) @@ -11804,7 +11804,7 @@ bool32 TryTriggerSymbiosis(u32 battler, u32 ally) } // Called by Cmd_removeitem. itemId represents the item that was removed, not being given. -bool32 TrySymbiosis(u32 battler, u32 itemId, bool32 moveEnd) +bool32 TrySymbiosis(u32 battler, enum Item itemId, bool32 moveEnd) { if (!gBattleStruct->itemLost[B_SIDE_PLAYER][gBattlerPartyIndexes[battler]].stolen && gBattleStruct->changedItems[battler] == ITEM_NONE @@ -11883,7 +11883,7 @@ void SetMonVolatile(u32 battler, enum Volatile _volatile, u32 newValue) } } -bool32 ItemHealMonVolatile(u32 battler, u16 itemId) +bool32 ItemHealMonVolatile(u32 battler, enum Item itemId) { bool32 statusChanged = FALSE; const u8 *effect = GetItemEffect(itemId); diff --git a/src/battle_z_move.c b/src/battle_z_move.c index 97d3a3dd31..1ae542f4ba 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -142,7 +142,7 @@ bool32 CanUseZMove(u32 battler) enum Move GetUsableZMove(u32 battler, enum Move move) { - u32 item = gBattleMons[battler].item; + enum Item item = gBattleMons[battler].item; enum HoldEffect holdEffect = GetBattlerHoldEffectIgnoreNegation(battler); if (holdEffect == HOLD_EFFECT_Z_CRYSTAL) @@ -165,7 +165,7 @@ void ActivateZMove(u32 battler) bool32 IsViableZMove(u32 battler, enum Move move) { - u32 item; + enum Item item; enum HoldEffect holdEffect = GetBattlerHoldEffectIgnoreNegation(battler); int moveSlotIndex; @@ -226,7 +226,7 @@ bool32 TryChangeZTrigger(u32 battler, u32 moveIndex) return viableZMove; } -enum Move GetSignatureZMove(enum Move move, u32 species, u32 item) +enum Move GetSignatureZMove(enum Move move, u32 species, enum Item item) { u32 i; diff --git a/src/berry.c b/src/berry.c index cc06ba43f1..28a689c442 100644 --- a/src/berry.c +++ b/src/berry.c @@ -15,7 +15,7 @@ #include "constants/event_object_movement.h" #include "constants/items.h" -static u16 BerryTypeToItemId(u16 berry); +static enum Item BerryTypeToItemId(u16 berry); static u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree); static u8 GetNumStagesWateredByBerryTreeId(u8 id); static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water); @@ -2000,7 +2000,7 @@ u8 GetMulchByBerryTreeId(u8 id) return gSaveBlock1Ptr->berryTrees[id].mulch; } -u8 ItemIdToBerryType(u16 item) +u8 ItemIdToBerryType(enum Item item) { u16 berry = item - FIRST_BERRY_INDEX; @@ -2010,9 +2010,9 @@ u8 ItemIdToBerryType(u16 item) return ITEM_TO_BERRY(item); } -static u16 BerryTypeToItemId(u16 berry) +static enum Item BerryTypeToItemId(u16 berry) { - u16 item = berry - 1; + enum Item item = berry - 1; if (item > LAST_BERRY_INDEX - FIRST_BERRY_INDEX) return FIRST_BERRY_INDEX; diff --git a/src/berry_blender.c b/src/berry_blender.c index f87e06bfaf..f0982e240c 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -115,7 +115,7 @@ enum { struct BlenderBerry { - u16 itemId; + enum Item itemId; u8 name[BERRY_NAME_LENGTH + 1]; u8 flavors[FLAVOR_COUNT + 1]; // 5 flavors, + 1 for feel }; @@ -218,7 +218,7 @@ static bool8 UpdateBlenderLandScreenShake(void); static void SetPlayerIdMaps(void); static void PrintPlayerNames(void); static void InitBlenderBgs(void); -static void SetPlayerBerryData(u8, u16); +static void SetPlayerBerryData(u8 playerId, enum Item itemId); static void Blender_AddTextPrinter(u8, const u8 *, u8, u8, s32, s32); static void ResetLinkCmds(void); static void CreateParticleSprites(void); @@ -1183,7 +1183,7 @@ static void SetBerrySpriteData(struct Sprite *sprite, s32 x, s32 y, s32 bounceSp sprite->callback = SpriteCB_Berry; } -static void CreateBerrySprite(u32 itemId, u32 playerId) +static void CreateBerrySprite(enum Item itemId, u32 playerId) { u32 berryId = ITEM_TO_BERRY(itemId) - 1; u32 spriteId = CreateSpinningBerrySprite(berryId, 0, 80, playerId & 1); @@ -1196,7 +1196,7 @@ static void CreateBerrySprite(u32 itemId, u32 playerId) berryId); } -static void ConvertItemToBlenderBerry(struct BlenderBerry *berry, u16 itemId) +static void ConvertItemToBlenderBerry(struct BlenderBerry *berry, enum Item itemId) { const struct Berry *berryInfo = GetBerryInfo(ITEM_TO_BERRY(itemId)); @@ -3195,7 +3195,7 @@ static void SpriteCB_ScoreSymbolBest(struct Sprite *sprite) DestroySprite(sprite); } -static void SetPlayerBerryData(u8 playerId, u16 itemId) +static void SetPlayerBerryData(u8 playerId, enum Item itemId) { sBerryBlender->chosenItemId[playerId] = itemId; ConvertItemToBlenderBerry(&sBerryBlender->blendedBerries[playerId], itemId); diff --git a/src/data/items.h b/src/data/items.h index 1a25f39f1b..3734287437 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -159,7 +159,7 @@ static const u8 sGenericMulchDesc[] = _("A fertilizer that\n" "is unsuitable for\n" "local soil."); -const struct Item gItemsInfo[] = +const struct ItemInfo gItemsInfo[] = { [ITEM_NONE] = { diff --git a/src/daycare.c b/src/daycare.c index 14e5639216..054f7b0284 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -86,7 +86,7 @@ static const struct ListMenuTemplate sDaycareListMenuLevelTemplate = static const struct { u16 currSpecies; - u16 item; + enum Item item; u16 babySpecies; } sIncenseBabyTable[] = { @@ -988,8 +988,8 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare static const struct { u16 offspring; - u16 item; - u16 move; + enum Item item; + enum Move move; } sBreedingSpecialMoveItemTable[] = { // Offspring, Item, Move diff --git a/src/debug.c b/src/debug.c index 13c67c05ee..a2d72bfd07 100644 --- a/src/debug.c +++ b/src/debug.c @@ -2597,7 +2597,7 @@ static void DebugAction_FlagsVars_CatchingOnOff(u8 taskId) #define tItemId data[5] #define tSpriteId data[6] -static void Debug_Display_ItemInfo(u32 itemId, u32 digit, u8 windowId) +static void Debug_Display_ItemInfo(enum Item itemId, u32 digit, u8 windowId) { StringCopy(gStringVar2, gText_DigitIndicator[digit]); u8* end = CopyItemName(itemId, gStringVar1); @@ -2696,7 +2696,7 @@ static void DebugAction_Give_Item_SelectId(u8 taskId) static void DebugAction_Give_Item_SelectQuantity(u8 taskId) { - u32 itemId = gTasks[taskId].tItemId; + enum Item itemId = gTasks[taskId].tItemId; if (JOY_NEW(DPAD_ANY)) { @@ -3557,7 +3557,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu //Decoration #define tSpriteId data[6] -static void Debug_Display_DecorationInfo(u32 itemId, u32 digit, u8 windowId) +static void Debug_Display_DecorationInfo(enum Item itemId, u32 digit, u8 windowId) { StringCopy(gStringVar2, gText_DigitIndicator[digit]); u8* end = StringCopy(gStringVar1, gDecorations[itemId].name); @@ -3770,7 +3770,7 @@ static void DebugAction_PCBag_Fill_PCBoxes_Slow(u8 taskId) static void DebugAction_PCBag_Fill_PCItemStorage(u8 taskId) { - u16 itemId; + enum Item itemId; for (itemId = 1; itemId < ITEMS_COUNT; itemId++) { @@ -3781,7 +3781,7 @@ static void DebugAction_PCBag_Fill_PCItemStorage(u8 taskId) static void DebugAction_PCBag_Fill_PocketItems(u8 taskId) { - u16 itemId; + enum Item itemId; for (itemId = 1; itemId < ITEMS_COUNT; itemId++) { @@ -3794,7 +3794,7 @@ static void DebugAction_PCBag_Fill_PocketPokeBalls(u8 taskId) { for (enum PokeBall ballId = BALL_STRANGE; ballId < POKEBALL_COUNT; ballId++) { - if (CheckBagHasSpace(ballId, MAX_BAG_ITEM_CAPACITY)) + if (CheckBagHasSpace(gBallItemIds[ballId], MAX_BAG_ITEM_CAPACITY)) AddBagItem(gBallItemIds[ballId], MAX_BAG_ITEM_CAPACITY); } } @@ -3813,7 +3813,7 @@ static void DebugAction_PCBag_Fill_PocketTMHM(u8 taskId) static void DebugAction_PCBag_Fill_PocketBerries(u8 taskId) { - u16 itemId; + enum Item itemId; for (itemId = FIRST_BERRY_INDEX; itemId < LAST_BERRY_INDEX; itemId++) { @@ -3824,7 +3824,7 @@ static void DebugAction_PCBag_Fill_PocketBerries(u8 taskId) static void DebugAction_PCBag_Fill_PocketKeyItems(u8 taskId) { - u16 itemId; + enum Item itemId; for (itemId = 1; itemId < ITEMS_COUNT; itemId++) { diff --git a/src/dexnav.c b/src/dexnav.c index f77eb07cbc..e823bed1ef 100644 --- a/src/dexnav.c +++ b/src/dexnav.c @@ -150,7 +150,7 @@ static u8 DexNavGetAbilityNum(u16 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, u16 item, u16 *moves); +static void CreateDexNavWildMon(u16 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); @@ -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, u16 item, u16 *moves) +static void CreateDexNavWildMon(u16 species, u8 potential, u8 level, u8 abilityNum, enum Item item, enum Move *moves) { struct Pokemon *mon = &gEnemyParty[0]; u8 iv[3] = {NUM_STATS}; @@ -1295,8 +1295,8 @@ static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel) { u16 randVal = Random() % 100; u8 searchLevelInfluence = searchLevel >> 1; - u16 item1 = gSpeciesInfo[species].itemCommon; - u16 item2 = gSpeciesInfo[species].itemRare; + enum Item item1 = gSpeciesInfo[species].itemCommon; + enum Item item2 = gSpeciesInfo[species].itemRare; // if both are the same, 100% to hold if (item1 == item2) diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 43ee468c48..99a685ecd5 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -2872,7 +2872,7 @@ enum { static u8 TryGivePrize(void) { u8 multiplayerId = sGame->multiplayerId; - u16 itemId = GetPrizeItemId(); + enum Item itemId = GetPrizeItemId(); if (GetScore(multiplayerId) != GetHighestScore()) return NO_PRIZE; diff --git a/src/field_specials.c b/src/field_specials.c index 275cbd53d9..ecf8d0b075 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -146,7 +146,7 @@ static void CloseScrollableMultichoice(u8); static void ScrollableMultichoice_RemoveScrollArrows(u8); static void Task_ScrollableMultichoice_WaitReturnToList(u8); static void Task_ScrollableMultichoice_ReturnToList(u8); -static void ShowFrontierExchangeCornerItemIcon(u16); +static void ShowFrontierExchangeCornerItemIcon(enum Item); static void Task_DeoxysRockInteraction(u8); static void ChangeDeoxysRockLevel(u8); static void WaitForDeoxysRockMovement(u8); @@ -3081,7 +3081,7 @@ static void FillFrontierExchangeCornerWindowAndItemIcon(enum ScrollMulti menu, u } } -static void ShowFrontierExchangeCornerItemIcon(u16 item) +static void ShowFrontierExchangeCornerItemIcon(enum Item item) { FreeSpriteTilesByTag(TAG_ITEM_ICON); FreeSpritePaletteByTag(TAG_ITEM_ICON); diff --git a/src/frontier_util.c b/src/frontier_util.c index 81540ce1bf..70d532b315 100644 --- a/src/frontier_util.c +++ b/src/frontier_util.c @@ -2078,7 +2078,7 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL static void CheckPartyIneligibility(void) { u16 speciesArray[PARTY_SIZE]; - u16 itemArray[PARTY_SIZE]; + enum Item itemArray[PARTY_SIZE]; s32 monId = 0; s32 toChoose = 0; u8 count = 0; @@ -2113,7 +2113,7 @@ static void CheckPartyIneligibility(void) do { u16 species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES_OR_EGG); - u16 heldItem = GetMonData(&gPlayerParty[monId], MON_DATA_HELD_ITEM); + 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); if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_PYRAMID) @@ -2259,7 +2259,7 @@ static void RestoreHeldItems(void) { if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0) { - u16 item = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1), MON_DATA_HELD_ITEM); + enum Item item = GetMonData(GetSavedPlayerPartyMon(gSaveBlock2Ptr->frontier.selectedPartyMons[i] - 1), MON_DATA_HELD_ITEM); SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item); } } diff --git a/src/item.c b/src/item.c index 5781e6dccf..63d5f8f4ed 100644 --- a/src/item.c +++ b/src/item.c @@ -28,10 +28,10 @@ .itemSlots = gSaveBlock1Ptr->pcItems, \ } -static bool32 CheckPyramidBagHasItem(u16 itemId, u16 count); -static bool32 CheckPyramidBagHasSpace(u16 itemId, u16 count); -static const u8 *GetItemPluralName(u16); -static bool32 DoesItemHavePluralName(u16); +static bool32 CheckPyramidBagHasItem(enum Item itemId, u16 count); +static bool32 CheckPyramidBagHasSpace(enum Item itemId, u16 count); +static const u8 *GetItemPluralName(enum Item); +static bool32 DoesItemHavePluralName(enum Item); static void NONNULL BagPocket_CompactItems(struct BagPocket *pocket); EWRAM_DATA struct BagPocket gBagPockets[POCKETS_COUNT] = {0}; @@ -131,7 +131,7 @@ void NONNULL BagPocket_SetSlotData(struct BagPocket *pocket, u32 pocketPos, stru void ApplyNewEncryptionKeyToBagItems(u32 newKey) { enum Pocket pocketId; - u32 item; + enum Item item; for (pocketId = 0; pocketId < POCKETS_COUNT; pocketId++) { for (item = 0; item < gBagPockets[pocketId].capacity; item++) @@ -162,14 +162,14 @@ void SetBagItemsPointers(void) gBagPockets[POCKET_BERRIES].id = POCKET_BERRIES; } -u8 *CopyItemName(u16 itemId, u8 *dst) +u8 *CopyItemName(enum Item itemId, u8 *dst) { return StringCopy(dst, GetItemName(itemId)); } const u8 sText_s[] =_("s"); -u8 *CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity) +u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *dst, u32 quantity) { if (quantity == 1) { @@ -198,7 +198,7 @@ bool32 IsBagPocketNonEmpty(enum Pocket pocketId) return FALSE; } -static bool32 NONNULL BagPocket_CheckHasItem(struct BagPocket *pocket, u16 itemId, u16 count) +static bool32 NONNULL BagPocket_CheckHasItem(struct BagPocket *pocket, enum Item itemId, u16 count) { struct ItemSlot tempItem; @@ -213,7 +213,7 @@ static bool32 NONNULL BagPocket_CheckHasItem(struct BagPocket *pocket, u16 itemI return count == 0; } -bool32 CheckBagHasItem(u16 itemId, u16 count) +bool32 CheckBagHasItem(enum Item itemId, u16 count) { if (GetItemPocket(itemId) >= POCKETS_COUNT) return FALSE; @@ -243,7 +243,7 @@ bool32 HasAtLeastOnePokeBall(void) return FALSE; } -bool32 CheckBagHasSpace(u16 itemId, u16 count) +bool32 CheckBagHasSpace(enum Item itemId, u16 count) { if (GetItemPocket(itemId) >= POCKETS_COUNT) return FALSE; @@ -254,7 +254,7 @@ bool32 CheckBagHasSpace(u16 itemId, u16 count) return GetFreeSpaceForItemInBag(itemId) >= count; } -static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, u16 itemId) +static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, enum Item itemId) { u32 spaceForItem = 0; struct ItemSlot tempItem; @@ -270,7 +270,7 @@ static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, u16 i return spaceForItem; } -u32 GetFreeSpaceForItemInBag(u16 itemId) +u32 GetFreeSpaceForItemInBag(enum Item itemId) { if (GetItemPocket(itemId) >= POCKETS_COUNT) return 0; @@ -278,7 +278,7 @@ u32 GetFreeSpaceForItemInBag(u16 itemId) return BagPocket_GetFreeSpaceForItem(&gBagPockets[GetItemPocket(itemId)], itemId); } -static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, u16 itemId, u32 pocketPos, u32 *nextPocketPos, u16 *count, u16 *tempPocketSlotQuantities) +static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, enum Item itemId, u32 pocketPos, u32 *nextPocketPos, u16 *count, u16 *tempPocketSlotQuantities) { struct ItemSlot tempItem = BagPocket_GetSlotData(pocket, pocketPos); if (tempItem.itemId == ITEM_NONE || tempItem.itemId == itemId) @@ -301,7 +301,7 @@ static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, u return FALSE; } -static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, u16 itemId, u16 count) +static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, enum Item itemId, u16 count) { u32 itemLookupIndex, itemAddIndex = 0; @@ -343,7 +343,7 @@ static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, u16 itemId, u1 return count == 0; } -bool32 AddBagItem(u16 itemId, u16 count) +bool32 AddBagItem(enum Item itemId, u16 count) { if (GetItemPocket(itemId) >= POCKETS_COUNT) return FALSE; @@ -355,7 +355,7 @@ bool32 AddBagItem(u16 itemId, u16 count) return BagPocket_AddItem(&gBagPockets[GetItemPocket(itemId)], itemId, count); } -static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, u16 itemId, u16 count) +static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, enum Item itemId, u16 count) { u32 itemLookupIndex, itemRemoveIndex = 0, totalQuantity = 0; struct ItemSlot tempItem; @@ -399,7 +399,7 @@ static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, u16 itemId, return totalQuantity >= count; } -bool32 RemoveBagItem(u16 itemId, u16 count) +bool32 RemoveBagItem(enum Item itemId, u16 count) { if (GetItemPocket(itemId) >= POCKETS_COUNT || itemId == ITEM_NONE) return FALSE; @@ -436,7 +436,7 @@ u8 CountUsedPCItemSlots(void) return BagPocket_CountUsedItemSlots(&dummyPocket); } -static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket, u16 itemId, u16 count) +static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket, enum Item itemId, u16 count) { struct ItemSlot tempItem; @@ -449,13 +449,13 @@ static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket return FALSE; } -bool32 CheckPCHasItem(u16 itemId, u16 count) +bool32 CheckPCHasItem(enum Item itemId, u16 count) { struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET; return BagPocket_CheckPocketForItemCount(&dummyPocket, itemId, count); } -bool32 AddPCItem(u16 itemId, u16 count) +bool32 AddPCItem(enum Item itemId, u16 count) { struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET; return BagPocket_AddItem(&dummyPocket, itemId, count); @@ -556,7 +556,7 @@ void ClearBag(void) CpuFastFill(0, &gSaveBlock1Ptr->bag, sizeof(struct Bag)); } -static inline u16 NONNULL BagPocket_CountTotalItemQuantity(struct BagPocket *pocket, u16 itemId) +static inline u16 NONNULL BagPocket_CountTotalItemQuantity(struct BagPocket *pocket, enum Item itemId) { u32 ownedCount = 0; struct ItemSlot tempItem; @@ -571,12 +571,12 @@ static inline u16 NONNULL BagPocket_CountTotalItemQuantity(struct BagPocket *poc return ownedCount; } -u16 CountTotalItemQuantityInBag(u16 itemId) +u16 CountTotalItemQuantityInBag(enum Item itemId) { return BagPocket_CountTotalItemQuantity(&gBagPockets[GetItemPocket(itemId)], itemId); } -static bool32 CheckPyramidBagHasItem(u16 itemId, u16 count) +static bool32 CheckPyramidBagHasItem(enum Item itemId, u16 count) { u8 i; u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; @@ -602,7 +602,7 @@ static bool32 CheckPyramidBagHasItem(u16 itemId, u16 count) return FALSE; } -static bool32 CheckPyramidBagHasSpace(u16 itemId, u16 count) +static bool32 CheckPyramidBagHasSpace(enum Item itemId, u16 count) { u8 i; u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode]; @@ -628,7 +628,7 @@ static bool32 CheckPyramidBagHasSpace(u16 itemId, u16 count) return FALSE; } -bool32 AddPyramidBagItem(u16 itemId, u16 count) +bool32 AddPyramidBagItem(enum Item itemId, u16 count) { u16 i; @@ -706,7 +706,7 @@ bool32 AddPyramidBagItem(u16 itemId, u16 count) } } -bool32 RemovePyramidBagItem(u16 itemId, u16 count) +bool32 RemovePyramidBagItem(enum Item itemId, u16 count) { u16 i; @@ -777,7 +777,7 @@ bool32 RemovePyramidBagItem(u16 itemId, u16 count) } } -static u16 SanitizeItemId(u16 itemId) +static u16 SanitizeItemId(enum Item itemId) { assertf(itemId < ITEMS_COUNT, "invalid item: %d", itemId) { @@ -787,29 +787,29 @@ static u16 SanitizeItemId(u16 itemId) return itemId; } -const u8 *GetItemName(u16 itemId) +const u8 *GetItemName(enum Item itemId) { const u8 *name = gItemsInfo[SanitizeItemId(itemId)].name; return name == NULL ? gQuestionMarksItemName : name; } -u32 GetItemPrice(u16 itemId) +u32 GetItemPrice(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].price; } -static bool32 DoesItemHavePluralName(u16 itemId) +static bool32 DoesItemHavePluralName(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].pluralName != NULL; } -static const u8 *GetItemPluralName(u16 itemId) +static const u8 *GetItemPluralName(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].pluralName; } -const u8 *GetItemEffect(u32 itemId) +const u8 *GetItemEffect(enum Item itemId) { if (itemId == ITEM_ENIGMA_BERRY_E_READER) #if FREE_ENIGMA_BERRY == FALSE @@ -821,50 +821,50 @@ const u8 *GetItemEffect(u32 itemId) return gItemsInfo[SanitizeItemId(itemId)].effect; } -enum HoldEffect GetItemHoldEffect(u32 itemId) +enum HoldEffect GetItemHoldEffect(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].holdEffect; } -u32 GetItemHoldEffectParam(u32 itemId) +u32 GetItemHoldEffectParam(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].holdEffectParam; } -const u8 *GetItemDescription(u16 itemId) +const u8 *GetItemDescription(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].description; } -u8 GetItemImportance(u16 itemId) +u8 GetItemImportance(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].importance; } -u8 GetItemConsumability(u16 itemId) +u8 GetItemConsumability(enum Item itemId) { return !gItemsInfo[SanitizeItemId(itemId)].notConsumed; } -enum Pocket GetItemPocket(u16 itemId) +enum Pocket GetItemPocket(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].pocket; } -u8 GetItemType(u16 itemId) +u8 GetItemType(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].type; } -ItemUseFunc GetItemFieldFunc(u16 itemId) +ItemUseFunc GetItemFieldFunc(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].fieldUseFunc; } // Returns an item's battle effect script ID. -u8 GetItemBattleUsage(u16 itemId) +u8 GetItemBattleUsage(enum Item itemId) { - u16 item = SanitizeItemId(itemId); + enum Item item = SanitizeItemId(itemId); // Handle E-Reader berries. if (item == ITEM_ENIGMA_BERRY_E_READER) { @@ -893,18 +893,18 @@ u8 GetItemBattleUsage(u16 itemId) return gItemsInfo[item].battleUsage; } -u32 GetItemSecondaryId(u32 itemId) +u32 GetItemSecondaryId(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].secondaryId; } -u32 GetItemFlingPower(u32 itemId) +u32 GetItemFlingPower(enum Item itemId) { return gItemsInfo[SanitizeItemId(itemId)].flingPower; } -u32 GetItemStatus1Mask(u16 itemId) +u32 GetItemStatus1Mask(enum Item itemId) { const u8 *effect = GetItemEffect(itemId); switch (effect[3]) @@ -925,7 +925,7 @@ u32 GetItemStatus1Mask(u16 itemId) return 0; } -bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile _volatile) +bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile _volatile) { const u8 *effect = GetItemEffect(itemId); switch (_volatile) @@ -939,7 +939,7 @@ bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile _volatile) } } -u32 GetItemSellPrice(u32 itemId) +u32 GetItemSellPrice(enum Item itemId) { return GetItemPrice(itemId) / ITEM_SELL_FACTOR; } diff --git a/src/item_ball.c b/src/item_ball.c index c5fe99730f..87707f917f 100644 --- a/src/item_ball.c +++ b/src/item_ball.c @@ -19,7 +19,7 @@ static u32 GetItemBallAmountFromTemplate(u32 itemBallId) static u32 GetItemBallIdFromTemplate(u32 itemBallId) { - u32 itemId = gMapHeader.events->objectEvents[itemBallId].trainerRange_berryTreeId; + enum Item itemId = gMapHeader.events->objectEvents[itemBallId].trainerRange_berryTreeId; return (itemId >= ITEMS_COUNT) ? (ITEM_NONE + 1) : itemId; } diff --git a/src/item_icon.c b/src/item_icon.c index e9034c250c..9c026d90cb 100644 --- a/src/item_icon.c +++ b/src/item_icon.c @@ -83,7 +83,7 @@ void CopyItemIconPicTo4x4Buffer(const void *src, void *dest) CpuCopy16(src + i * 96, dest + i * 128, 0x60); } -u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId) +u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item itemId) { if (!AllocItemIconTemporaryBuffers()) { @@ -120,7 +120,7 @@ u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId) } } -u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) +u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u16 tilesTag, u16 paletteTag, enum Item itemId) { if (!AllocItemIconTemporaryBuffers()) { @@ -157,7 +157,7 @@ u8 AddCustomItemIconSprite(const struct SpriteTemplate *customSpriteTemplate, u1 } } -const void *GetItemIconPic(u16 itemId) +const void *GetItemIconPic(enum Item itemId) { if (itemId == ITEM_LIST_END) return gItemIcon_ReturnToFieldArrow; // Use last icon, the "return to field" arrow @@ -173,7 +173,7 @@ const void *GetItemIconPic(u16 itemId) return gItemsInfo[itemId].iconPic; } -const u16 *GetItemIconPalette(u16 itemId) +const u16 *GetItemIconPalette(enum Item itemId) { if (itemId == ITEM_LIST_END) return gItemIconPalette_ReturnToFieldArrow; diff --git a/src/item_menu.c b/src/item_menu.c index 827586ee57..c73e7edf7e 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -141,7 +141,7 @@ static void PrepareTMHMMoveWindow(void); static bool8 IsWallysBag(void); static void Task_WallyTutorialBagMenu(u8); static void Task_BagMenu_HandleInput(u8); -static void GetItemNameFromPocket(u8 *, u16); +static void GetItemNameFromPocket(u8 *dest, enum Item itemId); static void PrintItemDescription(int); static void BagMenu_PrintCursorAtPos(u8, u8); static void BagMenu_Print(u8, u8, const u8 *, u8, u8, u8, u8, u8, u8); @@ -159,7 +159,7 @@ static void Task_SwitchBagPocket(u8); static void Task_HandleSwappingItemsInput(u8); static void DoItemSwap(u8); static void CancelItemSwap(u8); -static void PrintTMHMMoveData(u16); +static void PrintTMHMMoveData(enum Item itemId); static void PrintContextMenuItems(u8); static void PrintContextMenuItemGrid(u8, u8, u8); static void Task_ItemContext_SingleRow(u8); @@ -930,7 +930,7 @@ static void LoadBagItemListBuffers(u8 pocketId) gMultiuseListMenuTemplate.maxShowed = gBagMenu->numShownItems[pocketId]; } -static void GetItemNameFromPocket(u8 *dest, u16 itemId) +static void GetItemNameFromPocket(u8 *dest, enum Item itemId) { u8 *end; switch (gBagPosition.pocket) @@ -2665,7 +2665,7 @@ static void PrepareTMHMMoveWindow(void) CopyWindowToVram(WIN_TMHM_INFO_ICONS, COPYWIN_GFX); } -static void PrintTMHMMoveData(u16 itemId) +static void PrintTMHMMoveData(enum Item itemId) { u8 i; enum Move move; diff --git a/src/item_menu_icons.c b/src/item_menu_icons.c index 4dc1bc1b71..a82f8bae18 100644 --- a/src/item_menu_icons.c +++ b/src/item_menu_icons.c @@ -544,7 +544,7 @@ static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite) RemoveBagSprite(ITEMMENUSPRITE_BALL); } -void AddBagItemIconSprite(u16 itemId, u8 id) +void AddBagItemIconSprite(enum Item itemId, u8 id) { u8 *spriteId = &gBagMenu->spriteIds[id + ITEMMENUSPRITE_ITEM]; if (*spriteId == SPRITE_NONE) diff --git a/src/item_use.c b/src/item_use.c index 6372821b6b..1d188f6bc8 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -219,7 +219,7 @@ static void Task_CloseCantUseKeyItemMessage(u8 taskId) UnlockPlayerFieldControls(); } -u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) +u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId) { if (GetItemFieldFunc(itemId) == ItemUseOutOfBattle_TMHM) return 1; @@ -1227,7 +1227,7 @@ void ItemUseInBattle_PartyMenuChooseMove(u8 taskId) ItemUseInBattle_ShowPartyMenu(taskId); } -static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId) +static bool32 IteamHealsMonVolatile(u32 battler, enum Item itemId) { const u8 *effect = GetItemEffect(itemId); if (effect[3] & ITEM3_STATUS_ALL) @@ -1240,7 +1240,7 @@ static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId) return FALSE; } -static bool32 SelectedMonHasVolatile(u16 itemId) +static bool32 SelectedMonHasVolatile(enum Item itemId) { if (gPartyMenu.slotId == 0) return IteamHealsMonVolatile(0, itemId); @@ -1250,7 +1250,7 @@ static bool32 SelectedMonHasVolatile(u16 itemId) } // Returns whether an item can be used in battle and sets the fail text. -bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon) +bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon) { u16 battleUsage = GetItemBattleUsage(itemId); bool8 cannotUse = FALSE; diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 845237ed82..ae8e32ded2 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -190,7 +190,7 @@ bool8 HasAnotherPlayerGivenFavorLadyItem(void) return FALSE; } -static void BufferItemName(u8 *dest, u16 itemId) +static void BufferItemName(u8 *dest, enum Item itemId) { StringCopy(dest, GetItemName(itemId)); } @@ -226,7 +226,7 @@ void Script_FavorLadyOpenBagMenu(void) FavorLadyOpenBagMenu(); } -static bool8 DoesFavorLadyLikeItem(u16 itemId) +static bool8 DoesFavorLadyLikeItem(enum Item itemId) { u8 numItems; u8 i; diff --git a/src/mail_data.c b/src/mail_data.c index ed152faf2c..d364c72820 100644 --- a/src/mail_data.c +++ b/src/mail_data.c @@ -42,7 +42,7 @@ bool8 MonHasMail(struct Pokemon *mon) return FALSE; } -u8 GiveMailToMonByItemId(struct Pokemon *mon, u16 itemId) +u8 GiveMailToMonByItemId(struct Pokemon *mon, enum Item itemId) { u8 heldItem[2]; u8 id, i; @@ -111,7 +111,7 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer) u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail) { u8 heldItem[2]; - u16 itemId = mail->itemId; + enum Item itemId = mail->itemId; u8 mailId = GiveMailToMonByItemId(mon, itemId); if (mailId == MAIL_NONE) @@ -182,7 +182,7 @@ u8 TakeMailFromMonAndSave(struct Pokemon *mon) return MAIL_NONE; } -bool8 ItemIsMail(u16 itemId) +bool8 ItemIsMail(enum Item itemId) { switch (itemId) { diff --git a/src/menu_helpers.c b/src/menu_helpers.c index 49b9928763..33b6741cd3 100644 --- a/src/menu_helpers.c +++ b/src/menu_helpers.c @@ -272,7 +272,7 @@ u8 GetLRKeysPressedAndHeld(void) return 0; } -bool8 IsHoldingItemAllowed(u16 itemId) +bool8 IsHoldingItemAllowed(enum Item itemId) { // e-Reader Enigma Berry can't be held in link areas if (itemId == ITEM_ENIGMA_BERRY_E_READER @@ -284,7 +284,7 @@ bool8 IsHoldingItemAllowed(u16 itemId) return TRUE; } -bool8 IsWritingMailAllowed(u16 itemId) +bool8 IsWritingMailAllowed(enum Item itemId) { if ((IsOverworldLinkActive() == TRUE || InUnionRoom() == TRUE) && ItemIsMail(itemId) == TRUE) return FALSE; diff --git a/src/move_relearner.c b/src/move_relearner.c index fdcbfb69a7..5a15ba53a2 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -505,7 +505,7 @@ static void PrintMessageWithPlaceholders(const u8 *src) // If reusable TMs is off, remove the TM from the bag static void RemoveRelearnerTMFromBag(enum Move move) { - u16 item = GetTMHMItemIdFromMoveId(move); + enum Item item = GetTMHMItemIdFromMoveId(move); if (!I_REUSABLE_TMS && !P_ENABLE_ALL_TM_MOVES && gMoveRelearnerState == MOVE_RELEARNER_TM_MOVES && GetItemTMHMIndex(item) <= NUM_TECHNICAL_MACHINES) diff --git a/src/mystery_event_script.c b/src/mystery_event_script.c index 13f5169a0c..067414a5f8 100644 --- a/src/mystery_event_script.c +++ b/src/mystery_event_script.c @@ -132,7 +132,7 @@ static void ClearRecordMixingGift(void) CpuFill16(0, &gSaveBlock1Ptr->recordMixingGift, sizeof(gSaveBlock1Ptr->recordMixingGift)); } -static void SetRecordMixingGift(u8 unk, u8 quantity, u16 itemId) +static void SetRecordMixingGift(u8 unk, u8 quantity, enum Item itemId) { if (!unk || !quantity || !itemId) { @@ -158,7 +158,7 @@ u16 GetRecordMixingGift(void) } else { - u16 itemId = data->itemId; + enum Item itemId = data->itemId; data->quantity--; if (data->quantity == 0) ClearRecordMixingGift(); @@ -305,7 +305,7 @@ bool8 MEScrCmd_setrecordmixinggift(struct ScriptContext *ctx) { u8 unk = ScriptReadByte(ctx); u8 quantity = ScriptReadByte(ctx); - u16 itemId = ScriptReadHalfword(ctx); + enum Item itemId = ScriptReadHalfword(ctx); SetRecordMixingGift(unk, quantity, itemId); return FALSE; } diff --git a/src/overworld.c b/src/overworld.c index 671d8354f4..d21acea644 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -3495,7 +3495,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite) #define ITEM_ICON_Y 24 #define ITEM_TAG 0x2722 //same as money label -bool8 GetSetItemObtained(u16 item, enum ItemObtainFlags caseId) +bool8 GetSetItemObtained(enum Item item, enum ItemObtainFlags caseId) { #if OW_SHOW_ITEM_DESCRIPTIONS == OW_ITEM_DESCRIPTIONS_FIRST_TIME u8 index = item / 8; @@ -3517,10 +3517,10 @@ EWRAM_DATA static u8 sHeaderBoxWindowId = 0; EWRAM_DATA u8 sItemIconSpriteId = 0; EWRAM_DATA u8 sItemIconSpriteId2 = 0; -static void ShowItemIconSprite(u16 item, bool8 firstTime, bool8 flash); +static void ShowItemIconSprite(enum Item item, bool8 firstTime, bool8 flash); static void DestroyItemIconSprite(void); -static u8 ReformatItemDescription(u16 item, u8 *dest) +static u8 ReformatItemDescription(enum Item item, u8 *dest) { u8 count = 0; u8 numLines = 1; @@ -3575,7 +3575,7 @@ void ScriptShowItemDescription(struct ScriptContext *ctx) Script_RequestEffects(SCREFF_V1 | SCREFF_HARDWARE); struct WindowTemplate template; - u16 item = gSpecialVar_0x8006; + enum Item item = gSpecialVar_0x8006; u8 textY; u8 *dst; bool8 handleFlash = FALSE; @@ -3630,7 +3630,7 @@ void ScriptHideItemDescription(struct ScriptContext *ctx) } } -static void ShowItemIconSprite(u16 item, bool8 firstTime, bool8 flash) +static void ShowItemIconSprite(enum Item item, bool8 firstTime, bool8 flash) { s16 x = 0, y = 0; u8 iconSpriteId; diff --git a/src/party_menu.c b/src/party_menu.c index 910e4d60b0..fc777623b3 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -288,7 +288,7 @@ static void DisplayPartyPokemonHP(u16 hp, u16 maxHp, struct PartyMenuBox *menuBo 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, u16, struct PartyMenuBox *); +static void CreatePartyMonHeldItemSpriteParameterized(u16, enum Item, struct PartyMenuBox *); static void CreatePartyMonPokeballSpriteParameterized(u16, struct PartyMenuBox *); static void CreatePartyMonStatusSpriteParameterized(u16, u8, struct PartyMenuBox *); // These next 4 functions are essentially redundant with the above 4 @@ -388,7 +388,7 @@ static u16 GetFieldMoveMonSpecies(void); static void UpdatePartyMonHPBar(u8, struct Pokemon *); static void SpriteCB_UpdatePartyMonIcon(struct Sprite *); static void SpriteCB_BouncePartyMonIcon(struct Sprite *); -static void ShowOrHideHeldItemSprite(u16, struct PartyMenuBox *); +static void ShowOrHideHeldItemSprite(enum Item, struct PartyMenuBox *); static void CreateHeldItemSpriteForTrade(u8, bool8); static void SpriteCB_HeldItem(struct Sprite *); static void SetPartyMonAilmentGfx(struct Pokemon *, struct PartyMenuBox *); @@ -439,7 +439,7 @@ static void CB2_WriteMailToGiveMonFromBag(void); static void GiveItemToSelectedMon(u8); static void Task_UpdateHeldItemSpriteAndClosePartyMenu(u8); static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void); -static bool8 ReturnGiveItemToBagOrPC(u16); +static bool8 ReturnGiveItemToBagOrPC(enum Item); static void Task_DisplayGaveMailFromBagMessage(u8); static void Task_HandleSwitchItemsFromBagYesNoInput(u8); static void Task_ValidateChosenHalfParty(u8); @@ -1144,7 +1144,7 @@ static void DisplayPartyPokemonDataForBattlePyramidHeldItem(u8 slot) static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot) { struct Pokemon *currentPokemon = &gPlayerParty[slot]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; if (gPartyMenu.action == PARTY_ACTION_MOVE_TUTOR) { @@ -1999,7 +1999,7 @@ static void Task_ReturnToChooseMonAfterText(u8 taskId) } } -static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen, u8 unused) +static void DisplayGaveHeldItemMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen, u8 unused) { GetMonNickname(mon, gStringVar1); CopyItemName(item, gStringVar2); @@ -2008,7 +2008,7 @@ static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep ScheduleBgCopyTilemapToVram(2); } -static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keepOpen) +static void DisplayTookHeldItemMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen) { GetMonNickname(mon, gStringVar1); CopyItemName(item, gStringVar2); @@ -2017,7 +2017,7 @@ static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep ScheduleBgCopyTilemapToVram(2); } -static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item, bool8 keepOpen) +static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, enum Item item, bool8 keepOpen) { GetMonNickname(mon, gStringVar1); CopyItemName(item, gStringVar2); @@ -2026,7 +2026,7 @@ static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item ScheduleBgCopyTilemapToVram(2); } -static void DisplaySwitchedHeldItemMessage(u16 item, u16 item2, bool8 keepOpen) +static void DisplaySwitchedHeldItemMessage(enum Item item, enum Item item2, bool8 keepOpen) { CopyItemName(item, gStringVar1); CopyItemName(item2, gStringVar2); @@ -2035,7 +2035,7 @@ static void DisplaySwitchedHeldItemMessage(u16 item, u16 item2, bool8 keepOpen) ScheduleBgCopyTilemapToVram(2); } -static void GiveItemToMon(struct Pokemon *mon, u16 item) +static void GiveItemToMon(struct Pokemon *mon, enum Item item) { u8 itemBytes[2]; @@ -2052,7 +2052,7 @@ static void GiveItemToMon(struct Pokemon *mon, u16 item) static u8 TryTakeMonItem(struct Pokemon *mon) { - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); if (item == ITEM_NONE) return 0; @@ -2999,7 +2999,7 @@ static u8 GetPartyMenuActionsType(struct Pokemon *mon) static bool8 CreateSelectionWindow(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item; + enum Item item; GetMonNickname(mon, gStringVar1); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]); @@ -3446,7 +3446,7 @@ static void CB2_GiveHoldItem(void) static void Task_GiveHoldItem(u8 taskId) { - u16 item; + enum Item item; if (!gPaletteFade.active) { @@ -3537,7 +3537,7 @@ static void CB2_WriteMailToGiveMon(void) static void CB2_ReturnToPartyMenuFromWritingMail(void) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); // Canceled writing mail if (gSpecialVar_Result == FALSE) @@ -3589,7 +3589,7 @@ static void Task_UpdateHeldItemSprite(u8 taskId) static void CursorCb_TakeItem(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); PlaySE(SE_SELECT); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); @@ -3616,7 +3616,7 @@ static void CursorCb_TakeItem(u8 taskId) static void CursorCb_Toss(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); PlaySE(SE_SELECT); PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]); @@ -3673,7 +3673,7 @@ static void Task_TossHeldItem(u8 taskId) if (IsPartyMenuTextPrinterActive() != TRUE) { - u16 item = ITEM_NONE; + enum Item item = ITEM_NONE; SetMonData(mon, MON_DATA_HELD_ITEM, &item); UpdatePartyMonHeldItemSprite(mon, &sPartyMenuBoxes[gPartyMenu.slotId]); @@ -3767,7 +3767,7 @@ static void Task_LoseMailMessageYesNo(u8 taskId) static void Task_HandleLoseMailMessageYesNoInput(u8 taskId) { - u16 item; + enum Item item; switch (Menu_ProcessInputNoWrapClearOnChoose()) { @@ -4414,7 +4414,7 @@ static void CreatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo } } -static void CreatePartyMonHeldItemSpriteParameterized(u16 species, u16 item, struct PartyMenuBox *menuBox) +static void CreatePartyMonHeldItemSpriteParameterized(u16 species, enum Item item, struct PartyMenuBox *menuBox) { if (species != SPECIES_NONE) { @@ -4429,7 +4429,7 @@ static void UpdatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo ShowOrHideHeldItemSprite(GetMonData(mon, MON_DATA_HELD_ITEM), menuBox); } -static void ShowOrHideHeldItemSprite(u16 item, struct PartyMenuBox *menuBox) +static void ShowOrHideHeldItemSprite(enum Item item, struct PartyMenuBox *menuBox) { if (item == ITEM_NONE) { @@ -4454,7 +4454,7 @@ void LoadHeldItemIcons(void) void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty) { u16 i; - u16 item; + enum Item item; switch (whichParty) { @@ -4684,7 +4684,7 @@ static void Task_SetSacredAshCB(u8 taskId) } } -static bool8 IsHPRecoveryItem(u16 item) +static bool32 IsHPRecoveryItem(enum Item item) { const u8 *effect = GetItemEffect(item); @@ -4697,7 +4697,7 @@ static bool8 IsHPRecoveryItem(u16 item) return FALSE; } -static void GetMedicineItemEffectMessage(u16 item, u32 statusCured) +static void GetMedicineItemEffectMessage(enum Item item, u32 statusCured) { switch (GetItemEffectType(item)) { @@ -4765,14 +4765,14 @@ static void GetMedicineItemEffectMessage(u16 item, u32 statusCured) } } -static bool8 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, u16 item) +static bool32 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, enum Item item) { if (GetItemEffectType(item) == ITEM_EFFECT_HP_EV && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA) return FALSE; return TRUE; } -static bool32 IsItemFlute(u16 item) +static bool32 IsItemFlute(enum Item item) { if (item == ITEM_BLUE_FLUTE || item == ITEM_RED_FLUTE || item == ITEM_YELLOW_FLUTE) return TRUE; @@ -4815,7 +4815,7 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc task) { u16 hp = 0; struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; bool8 canHeal, cannotUse; u32 oldStatus = GetMonData(mon, MON_DATA_STATUS); @@ -5194,7 +5194,7 @@ static void Task_ClosePartyMenuAfterText(u8 taskId) void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; bool8 cannotUseEffect = ExecuteTableBasedItemEffect(mon, item, gPartyMenu.slotId, 0); if (cannotUseEffect) @@ -5221,7 +5221,7 @@ void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task) void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; u8 effectType = GetItemEffectType(item); u16 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP); u16 ev = ItemEffectToMonEv(mon, effectType); @@ -5409,7 +5409,7 @@ static void TryUseItemOnMove(u8 taskId) { enum Move move = MOVE_NONE; s16 *moveSlot = &gPartyMenu.data1; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; if (ExecuteTableBasedItemEffect(mon, item, ptr->slotId, *moveSlot)) { @@ -5442,7 +5442,7 @@ void ItemUseCB_PPUp(u8 taskId, TaskFunc task) gTasks[taskId].func = Task_HandleWhichMoveInput; } -enum Move ItemIdToBattleMoveId(u16 item) +enum Move ItemIdToBattleMoveId(enum Item item) { return (GetItemPocket(item) == POCKET_TM_HM) ? GetItemTMHMMoveId(item) : MOVE_NONE; } @@ -5489,7 +5489,7 @@ static void DisplayLearnMoveMessageAndClose(u8 taskId, const u8 *str) void ItemUseCB_TMHM(u8 taskId, TaskFunc task) { struct Pokemon *mon; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; enum Move move = ItemIdToBattleMoveId(item); gPartyMenu.data1 = move; @@ -5526,7 +5526,7 @@ static void Task_LearnedMove(u8 taskId) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; s16 *move = &gPartyMenu.data1; - u16 item = gSpecialVar_ItemId; + enum Item item = gSpecialVar_ItemId; if (move[1] == 0) { @@ -6923,7 +6923,7 @@ void TryItemHoldFormChange(struct Pokemon *mon, s8 slotId) #undef tAnimWait #undef tNextFunc -u8 GetItemEffectType(u16 item) +u8 GetItemEffectType(enum Item item) { u32 statusCure; const u8 *itemEffect = GetItemEffect(item); @@ -7067,7 +7067,7 @@ static void GiveItemOrMailToSelectedMon(u8 taskId) static void GiveItemToSelectedMon(u8 taskId) { - u16 item; + enum Item item; if (!gPaletteFade.active) { @@ -7106,7 +7106,7 @@ static void CB2_WriteMailToGiveMonFromBag(void) static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void) { struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId]; - u16 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); // Canceled writing mail if (gSpecialVar_Result == FALSE) @@ -7147,7 +7147,7 @@ static void Task_SwitchItemsFromBagYesNo(u8 taskId) static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId) { - u16 item; + enum Item item; switch (Menu_ProcessInputNoWrapClearOnChoose()) { @@ -7191,7 +7191,7 @@ static void DisplayItemMustBeRemovedFirstMessage(u8 taskId) // Returns FALSE if there was no space to return the item // but there always should be, and the return is ignored in all uses -static bool8 ReturnGiveItemToBagOrPC(u16 item) +static bool8 ReturnGiveItemToBagOrPC(enum Item item) { if (gPartyMenu.action == PARTY_ACTION_GIVE_ITEM) return AddBagItem(item, 1); @@ -7300,7 +7300,7 @@ static u8 CheckBattleEntriesAndGetMessage(void) for (i = 0; i < maxBattlers - 1; i++) { u16 species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES); - u16 item = GetMonData(&party[order[i] - 1], MON_DATA_HELD_ITEM); + enum Item item = GetMonData(&party[order[i] - 1], MON_DATA_HELD_ITEM); for (j = i + 1; j < maxBattlers; j++) { if (species == GetMonData(&party[order[j] - 1], MON_DATA_SPECIES)) @@ -8240,7 +8240,7 @@ static void CursorCb_LearnMovesSubMenu(u8 taskId) void CursorCb_MoveItemCallback(u8 taskId) { - u16 item1, item2; + enum Item item1, item2; u8 buffer[100]; if (gPaletteFade.active || MenuHelpers_ShouldWaitForLinkRecv()) diff --git a/src/player_pc.c b/src/player_pc.c index 6adb6e17ba..346f342005 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -66,19 +66,6 @@ enum { // When showing the main list, the first window to this window are drawn #define ITEMPC_WIN_LIST_END ITEMPC_WIN_TITLE -// Message IDs for Item Storage -enum { - MSG_SWITCH_WHICH_ITEM = 0xFFF7, - MSG_OKAY_TO_THROW_AWAY, - MSG_TOO_IMPORTANT, - MSG_NO_MORE_ROOM, - MSG_THREW_AWAY_ITEM, - MSG_HOW_MANY_TO_TOSS, - MSG_WITHDREW_ITEM, - MSG_HOW_MANY_TO_WITHDRAW, - MSG_GO_BACK_TO_PREV -}; - #define TAG_ITEM_ICON 5110 #define TAG_SCROLL_ARROW 5112 @@ -161,8 +148,7 @@ static void ItemStorage_HandleRemoveItem(u8); static void ItemStorage_HandleErrorMessageInput(u8); static void ItemStorage_ReturnToListInput(u8); -static const u8 *ItemStorage_GetMessage(u16); -static void CopyItemName_PlayerPC(u8 *, u16); +static void CopyItemName_PlayerPC(u8 *, enum Item); static void ItemStorage_Init(void); static void ItemStorage_DrawSwapArrow(u8, u8, u8); @@ -170,7 +156,7 @@ static void ItemStorage_RemoveWindow(u8); static void ItemStorage_UpdateSwapLinePos(u8); static void ItemStorage_ProcessItemSwapInput(u8); static void ItemStorage_EraseItemIcon(void); -static void ItemStorage_DrawItemIcon(u16); +static void ItemStorage_DrawItemIcon(enum Item); static void ItemStorage_PrintDescription(s32); static void ItemStorage_EraseMainMenu(u8); static void ItemStorage_MoveCursor(s32, bool8, struct ListMenu *); @@ -1018,7 +1004,7 @@ void ItemStorage_RefreshListMenu(void) gMultiuseListMenuTemplate.maxShowed = gPlayerPCItemPageInfo.pageItems; } -void CopyItemName_PlayerPC(u8 *string, u16 itemId) +void CopyItemName_PlayerPC(u8 *string, enum Item itemId) { CopyItemName(itemId, string); } @@ -1064,7 +1050,7 @@ static void ItemStorage_PrintDescription(s32 id) if (id != LIST_CANCEL) description = (u8 *)GetItemDescription(gSaveBlock1Ptr->pcItems[id].itemId); else - description = ItemStorage_GetMessage(MSG_GO_BACK_TO_PREV); + description = gText_GoBackPrevMenu; FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); AddTextPrinterParameterized(windowId, FONT_NORMAL, description, 0, 1, 0, NULL); @@ -1103,7 +1089,7 @@ static void ItemStorage_DrawSwapArrow(u8 y, u8 b, u8 speed) AddTextPrinterParameterized4(windowId, FONT_NORMAL, 0, y, 0, 0, sSwapArrowTextColors, speed, gText_SelectorArrow2); } -static void ItemStorage_DrawItemIcon(u16 itemId) +static void ItemStorage_DrawItemIcon(enum Item itemId) { u8 spriteId; u8 *spriteIdLoc = &sItemStorageMenu->spriteId; @@ -1172,46 +1158,6 @@ static void ItemStorage_CreateListMenu(u8 taskId) gTasks[taskId].func = ItemStorage_ProcessInput; } -static const u8 *ItemStorage_GetMessage(u16 itemId) -{ - const u8 *string; - - switch(itemId) - { - case MSG_GO_BACK_TO_PREV: - string = gText_GoBackPrevMenu; - break; - case MSG_HOW_MANY_TO_WITHDRAW: - string = sText_WithdrawHowManyItems; - break; - case MSG_WITHDREW_ITEM: - string = sText_WithdrawXItems; - break; - case MSG_HOW_MANY_TO_TOSS: - string = gText_TossHowManyVar1s; - break; - case MSG_THREW_AWAY_ITEM: - string = gText_ThrewAwayVar2Var1s; - break; - case MSG_NO_MORE_ROOM: - string = sText_NoRoomInBag; - break; - case MSG_TOO_IMPORTANT: - string = sText_TooImportantToToss; - break; - case MSG_OKAY_TO_THROW_AWAY: - string = gText_ConfirmTossItems; - break; - case MSG_SWITCH_WHICH_ITEM: - string = gText_MoveVar1Where; - break; - default: - string = GetItemDescription(itemId); - break; - } - return string; -} - static void ItemStorage_PrintMessage(const u8 *string) { u8 windowId = sItemStorageMenu->windowIds[ITEMPC_WIN_MESSAGE]; @@ -1289,7 +1235,7 @@ static void ItemStorage_StartItemSwap(u8 taskId) ItemStorage_SetSwapArrow(tListTaskId, 0, 0); ItemStorage_UpdateSwapLinePos(sItemStorageMenu->toSwapPos); CopyItemName(gSaveBlock1Ptr->pcItems[sItemStorageMenu->toSwapPos].itemId, gStringVar1); - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_SWITCH_WHICH_ITEM)); + ItemStorage_PrintMessage(gText_MoveVar1Where); gTasks[taskId].func = ItemStorage_ProcessItemSwapInput; } @@ -1380,7 +1326,7 @@ static void ItemStorage_DoItemAction(u8 taskId) // Withdrawing multiple items, show "how many" message end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, 2); WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6); - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_HOW_MANY_TO_WITHDRAW)); + ItemStorage_PrintMessage(sText_WithdrawHowManyItems); } else { @@ -1394,7 +1340,7 @@ static void ItemStorage_DoItemAction(u8 taskId) // Tossing multiple items, show "how many" message end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, 2); WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6); - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_HOW_MANY_TO_TOSS)); + ItemStorage_PrintMessage(gText_TossHowManyVar1s); } // Set up "how many" prompt @@ -1428,7 +1374,7 @@ static void ItemStorage_HandleQuantityRolling(u8 taskId) // Canceled action PlaySE(SE_SELECT); ItemStorage_RemoveWindow(ITEMPC_WIN_QUANTITY); - ItemStorage_PrintMessage(ItemStorage_GetMessage(gSaveBlock1Ptr->pcItems[pos].itemId)); + ItemStorage_PrintMessage(GetItemDescription(gSaveBlock1Ptr->pcItems[pos].itemId)); ItemStorage_ReturnToListInput(taskId); } } @@ -1445,14 +1391,14 @@ static void ItemStorage_DoItemWithdraw(u8 taskId) u8 *end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, tQuantity); WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6); ConvertIntToDecimalStringN(gStringVar2, tQuantity, STR_CONV_MODE_LEFT_ALIGN, 3); - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_WITHDREW_ITEM)); + ItemStorage_PrintMessage(sText_WithdrawXItems); gTasks[taskId].func = ItemStorage_HandleRemoveItem; } else { // No room to withdraw items tQuantity = 0; - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_NO_MORE_ROOM)); + ItemStorage_PrintMessage(sText_NoRoomInBag); gTasks[taskId].func = ItemStorage_HandleErrorMessageInput; } } @@ -1468,27 +1414,27 @@ static void ItemStorage_DoItemToss(u8 taskId) u8 *end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, tQuantity); WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6); ConvertIntToDecimalStringN(gStringVar2, tQuantity, STR_CONV_MODE_LEFT_ALIGN, 3); - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_OKAY_TO_THROW_AWAY)); + ItemStorage_PrintMessage(gText_ConfirmTossItems); CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_ItemStorage[ITEMPC_WIN_YESNO], 1, 0, 1, 0x214, 0xE, &ItemTossYesNoFuncs); } else { // Can't toss important items tQuantity = 0; - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_TOO_IMPORTANT)); + ItemStorage_PrintMessage(sText_TooImportantToToss); gTasks[taskId].func = ItemStorage_HandleErrorMessageInput; } } static void ItemStorage_TossItemYes(u8 taskId) { - ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_THREW_AWAY_ITEM)); + ItemStorage_PrintMessage(gText_ThrewAwayVar2Var1s); gTasks[taskId].func = ItemStorage_HandleRemoveItem; } static void ItemStorage_TossItemNo(u8 taskId) { - ItemStorage_PrintMessage(ItemStorage_GetMessage(gSaveBlock1Ptr->pcItems[gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos].itemId)); + ItemStorage_PrintMessage(GetItemDescription(gSaveBlock1Ptr->pcItems[gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos].itemId)); ItemStorage_ReturnToListInput(taskId); } @@ -1512,7 +1458,7 @@ static void ItemStorage_HandleErrorMessageInput(u8 taskId) { if (JOY_NEW(A_BUTTON | B_BUTTON)) { - ItemStorage_PrintMessage(ItemStorage_GetMessage(gSaveBlock1Ptr->pcItems[gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos].itemId)); + ItemStorage_PrintMessage(GetItemDescription(gSaveBlock1Ptr->pcItems[gPlayerPCItemPageInfo.itemsAbove + gPlayerPCItemPageInfo.cursorPos].itemId)); ItemStorage_ReturnToListInput(taskId); } } diff --git a/src/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index 09710b92a1..b07fd70bae 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -596,7 +596,7 @@ static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum); u32 GetSpeciesNameFontId(u32 nameWidth); u32 GetSpeciesNameWidthInChars(const u8 *speciesName); bool32 IsSpeciesAlcremie(u32 targetSpecies); -bool32 IsItemSweet(u32 item); +bool32 IsItemSweet(enum Item item); //Stat bars by DizzyEgg #define TAG_STAT_BAR 4097 @@ -5104,7 +5104,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId) u8 moves_x = 5; u8 moves_y = 3; - u32 item = ITEM_MASTER_BALL; + enum Item item = ITEM_MASTER_BALL; u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum); u32 selected = sPokedexView->moveSelected; enum Move move = GetSelectedMove(species, selected); @@ -5130,7 +5130,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId) } else if (move) { - u32 TMHMItemId = ITEM_NONE; + enum Item TMHMItemId = ITEM_NONE; for (u32 i = 0; i < NUM_ALL_MACHINES; i++) { if (move == GetTMHMMoveId(i + 1)) @@ -6399,7 +6399,7 @@ bool32 IsSpeciesAlcremie(u32 targetSpecies) return GET_BASE_SPECIES_ID(targetSpecies) == SPECIES_ALCREMIE; } -bool32 IsItemSweet(u32 item) +bool32 IsItemSweet(enum Item item) { return item >= ITEM_STRAWBERRY_SWEET && item <= ITEM_RIBBON_SWEET; } diff --git a/src/pokemon.c b/src/pokemon.c index 24e58e53ea..3b848cc426 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -76,7 +76,7 @@ struct SpeciesItem { u16 species; - u16 item; + enum Item item; }; static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); @@ -3599,7 +3599,7 @@ void CopyPartyMonToBattleData(u32 battler, u32 partyIndex) ClearTemporarySpeciesSpriteData(battler, FALSE, FALSE); } -bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex) +bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex) { return PokemonUseItemEffects(mon, item, partyIndex, moveIndex, FALSE); } @@ -3630,7 +3630,7 @@ const u32 sExpCandyExperienceTable[] = { }; // Returns TRUE if the item has no effect on the Pokémon, FALSE otherwise -bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, bool8 usedByAI) +bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex, bool8 usedByAI) { u32 dataUnsigned; s32 dataSigned, evCap; @@ -3644,7 +3644,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov enum HoldEffect holdEffect; u8 battler = MAX_BATTLERS_COUNT; bool32 friendshipOnly = FALSE; - u16 heldItem; + enum Item heldItem; u8 effectFlags; s8 evChange; u16 evCount; @@ -4114,7 +4114,7 @@ bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battler) } } -u8 GetItemEffectParamOffset(u32 battler, u16 itemId, u8 effectByte, u8 effectBit) +u8 GetItemEffectParamOffset(u32 battler, enum Item itemId, u8 effectByte, u8 effectBit) { const u8 *temp; const u8 *itemEffect; @@ -4244,7 +4244,7 @@ static void BufferStatRoseMessage(enum Stat statIdx) BattleStringExpandPlaceholdersToDisplayedString(gText_DefendersStatRose); } -u8 *UseStatIncreaseItem(u16 itemId) +u8 *UseStatIncreaseItem(enum Item itemId) { const u8 *itemEffect; @@ -5483,7 +5483,7 @@ u32 GetRelearnerTMMovesBox(struct BoxPokemon *boxMon, u16 *moves) for (u32 i = 0; i < NUM_ALL_MACHINES; i++) { - enum TMHMItemId item = GetTMHMItemId(i + 1); + enum Item item = GetTMHMItemId(i + 1); enum Move move = GetTMHMMoveId(i + 1); if (move == MOVE_NONE) @@ -5622,7 +5622,7 @@ bool32 HasRelearnerTMMovesBox(struct BoxPokemon *boxMon) for (u32 i = 0; i < NUM_ALL_MACHINES; i++) { - enum TMHMItemId item = GetTMHMItemId(i + 1); + enum Item item = GetTMHMItemId(i + 1); enum Move move = GetTMHMMoveId(i + 1); if (move == MOVE_NONE) diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 48f58ca38c..a146f2d333 100755 --- a/src/pokemon_jump.c +++ b/src/pokemon_jump.c @@ -339,7 +339,7 @@ static u16 GetPrizeData(void); static void UnpackPrizeData(u16, u16 *, u16 *); static u16 GetPrizeItemId(void); static u16 GetPrizeQuantity(void); -static u16 GetQuantityLimitedByBag(u16, u16); +static u16 GetQuantityLimitedByBag(enum Item, u16); static void SpriteCB_Star(struct Sprite *); static void SpriteCB_MonHitShake(struct Sprite *); static void SpriteCB_MonHitFlash(struct Sprite *); @@ -352,9 +352,9 @@ static void SetUpPokeJumpGfxFuncById(int); static bool32 IsPokeJumpGfxFuncFinished(void); static void SetUpResetVineGfx(void); static bool32 ResetVineGfx(void); -static void PrintPrizeMessage(u16, u16); -static void PrintPrizeFilledBagMessage(u16); -static void PrintNoRoomForPrizeMessage(u16); +static void PrintPrizeMessage(enum Item, u16); +static void PrintPrizeFilledBagMessage(enum Item); +static void PrintNoRoomForPrizeMessage(enum Item); static bool32 DoPrizeMessageAndFanfare(void); static void ClearMessageWindow(void); static void SetMonSpriteY(u32, s16); @@ -2153,7 +2153,7 @@ static bool32 HasEnoughScoreForPrize(void) static u16 GetPrizeData(void) { - u16 itemId = GetPrizeItemId(); + enum Item itemId = GetPrizeItemId(); u16 quantity = GetPrizeQuantity(); return (quantity << 12) | (itemId & 0xFFF); } @@ -2186,7 +2186,7 @@ static u16 GetPrizeQuantity(void) return quantity; } -static u16 GetQuantityLimitedByBag(u16 item, u16 quantity) +static u16 GetQuantityLimitedByBag(enum Item item, u16 quantity) { while (quantity && !CheckBagHasSpace(item, quantity)) quantity--; @@ -3331,7 +3331,7 @@ static bool32 ResetVineGfx(void) return TRUE; } -static void PrintPrizeMessage(u16 itemId, u16 quantity) +static void PrintPrizeMessage(enum Item itemId, u16 quantity) { CopyItemNameHandlePlural(itemId, sPokemonJumpGfx->itemName, quantity); ConvertIntToDecimalStringN(sPokemonJumpGfx->itemQuantityStr, quantity, STR_CONV_MODE_LEFT_ALIGN, 1); @@ -3346,7 +3346,7 @@ static void PrintPrizeMessage(u16 itemId, u16 quantity) sPokemonJumpGfx->msgWindowState = 0; } -static void PrintPrizeFilledBagMessage(u16 itemId) +static void PrintPrizeFilledBagMessage(enum Item itemId) { CopyItemName(itemId, sPokemonJumpGfx->itemName); DynamicPlaceholderTextUtil_Reset(); @@ -3359,7 +3359,7 @@ static void PrintPrizeFilledBagMessage(u16 itemId) sPokemonJumpGfx->msgWindowState = 0; } -static void PrintNoRoomForPrizeMessage(u16 itemId) +static void PrintNoRoomForPrizeMessage(enum Item itemId) { CopyItemName(itemId, sPokemonJumpGfx->itemName); DynamicPlaceholderTextUtil_Reset(); diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index eda35f0c2a..1c66afceb9 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -703,7 +703,7 @@ static void CreateItemIconSprites(void); static void TryLoadItemIconAtPos(u8, u8); static void TryHideItemIconAtPos(u8, u8); static void TakeItemFromMon(u8, u8); -static void InitItemIconInCursor(u16); +static void InitItemIconInCursor(enum Item); static void SwapItemsWithMon(u8, u8); static void GiveItemToMon(u8, u8); static void MoveItemFromMonToBag(u8, u8); @@ -3781,7 +3781,7 @@ static void Task_ChangeScreen(u8 taskId) static void GiveChosenBagItem(void) { - u16 itemId = gSpecialVar_ItemId; + enum Item itemId = gSpecialVar_ItemId; if (itemId != ITEM_NONE) { @@ -6521,7 +6521,7 @@ static bool8 TryHideReleaseMon(void) static void ReleaseMon(void) { u8 boxId; - u16 item = ITEM_NONE; + enum Item item = ITEM_NONE; DestroyReleaseMonIcon(); if (sIsMonBeingMoved) @@ -8916,7 +8916,7 @@ static void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos) static void TakeItemFromMon(u8 cursorArea, u8 cursorPos) { u8 id; - u16 itemId; + enum Item itemId; if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; @@ -8945,7 +8945,7 @@ static void TakeItemFromMon(u8 cursorArea, u8 cursorPos) sStorage->movingItemId = sStorage->displayMonItemId; } -static void InitItemIconInCursor(u16 itemId) +static void InitItemIconInCursor(enum Item itemId) { const u32 *tiles = GetItemIconPic(itemId); const u16 *pal = GetItemIconPalette(itemId); @@ -8961,7 +8961,7 @@ static void InitItemIconInCursor(u16 itemId) static void SwapItemsWithMon(u8 cursorArea, u8 cursorPos) { u8 id; - u16 itemId; + enum Item itemId; if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; @@ -9022,7 +9022,7 @@ static void GiveItemToMon(u8 cursorArea, u8 cursorPos) static void MoveItemFromMonToBag(u8 cursorArea, u8 cursorPos) { u8 id; - u16 itemId; + enum Item itemId; if (sStorage->boxOption != OPTION_MOVE_ITEMS) return; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 8ed79747ea..a50dc70fb9 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -147,7 +147,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData u8 metGame; // 0xB u32 pid; // 0xC u32 exp; // 0x10 - u16 moves[MAX_MON_MOVES]; // 0x14 + enum Move moves[MAX_MON_MOVES]; // 0x14 u8 pp[MAX_MON_MOVES]; // 0x1C u16 currentHP; // 0x20 u16 maxHP; // 0x22 @@ -156,7 +156,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData u16 spatk; // 0x28 u16 spdef; // 0x2A u16 speed; // 0x2C - u16 item; // 0x2E + enum Item item; // 0x2E u16 friendship; // 0x30 u8 OTGender; // 0x32 u8 nature; // 0x33 diff --git a/src/record_mixing.c b/src/record_mixing.c index 087ca2e70e..99cd7ee83c 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -899,7 +899,7 @@ static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *records, size // Both daycare slots can hold an item, choose which one to use. // If either one is the only one to have associated mail, use that one. // If both do or don't have associated mail, choose one randomly. - u32 itemId1, itemId2; + enum Item itemId1, itemId2; idxs[j][MULTIPLAYER_ID] = i; itemId1 = GetDaycareMailItemId(&mixMail->mail[0]); itemId2 = GetDaycareMailItemId(&mixMail->mail[1]); diff --git a/src/rom_header_gf.c b/src/rom_header_gf.c index 1662850352..433d477aea 100644 --- a/src/rom_header_gf.c +++ b/src/rom_header_gf.c @@ -73,7 +73,7 @@ struct GFRomHeader const struct SpeciesInfo *speciesInfo; const u8 (*abilityNames)[]; const u8 *const *abilityDescriptions; - const struct Item *items; + const struct ItemInfo *items; const struct MoveInfo *moves; const struct CompressedSpriteSheet *ballGfx; const struct SpritePalette *ballPalettes; diff --git a/src/scrcmd.c b/src/scrcmd.c index 420c0a9366..7d5da1ebf5 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -623,7 +623,7 @@ bool8 ScrCmd_random(struct ScriptContext *ctx) bool8 ScrCmd_additem(struct ScriptContext *ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -634,7 +634,7 @@ bool8 ScrCmd_additem(struct ScriptContext *ctx) bool8 ScrCmd_removeitem(struct ScriptContext *ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -645,7 +645,7 @@ bool8 ScrCmd_removeitem(struct ScriptContext *ctx) bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -656,7 +656,7 @@ bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx) bool8 ScrCmd_checkitem(struct ScriptContext *ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u32 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -667,7 +667,7 @@ bool8 ScrCmd_checkitem(struct ScriptContext *ctx) bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -677,7 +677,7 @@ bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx) bool8 ScrCmd_addpcitem(struct ScriptContext *ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); @@ -688,7 +688,7 @@ bool8 ScrCmd_addpcitem(struct ScriptContext *ctx) bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx) { - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2159,7 +2159,7 @@ bool8 ScrCmd_bufferpartymonnick(struct ScriptContext *ctx) bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2170,7 +2170,7 @@ bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx) bool8 ScrCmd_bufferitemnameplural(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u16 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); u16 quantity = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1); @@ -2514,10 +2514,10 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx) { u16 species = ScriptReadHalfword(ctx); u8 level = ScriptReadByte(ctx); - u16 item = ScriptReadHalfword(ctx); + enum Item item = ScriptReadHalfword(ctx); u16 species2 = ScriptReadHalfword(ctx); u8 level2 = ScriptReadByte(ctx); - u16 item2 = ScriptReadHalfword(ctx); + enum Item item2 = ScriptReadHalfword(ctx); Script_RequestEffects(SCREFF_V1); @@ -3070,7 +3070,7 @@ void ScriptSetDoubleBattleFlag(struct ScriptContext *ctx) bool8 ScrCmd_removeallitem(struct ScriptContext *ctx) { - u32 itemId = VarGet(ScriptReadHalfword(ctx)); + enum Item itemId = VarGet(ScriptReadHalfword(ctx)); Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE); diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index e4cd803aad..a44f41f440 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -91,7 +91,7 @@ void HasEnoughMonsForDoubleBattle(void) } } -static bool8 CheckPartyMonHasHeldItem(u16 item) +static bool32 CheckPartyMonHasHeldItem(enum Item item) { int i; @@ -113,7 +113,7 @@ bool8 DoesPartyHaveEnigmaBerry(void) return hasItem; } -void CreateScriptedWildMon(u16 species, u8 level, u16 item) +void CreateScriptedWildMon(u16 species, u8 level, enum Item item) { u8 heldItem[2]; @@ -131,7 +131,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item) SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem); } } -void CreateScriptedDoubleWildMon(u16 species1, u8 level1, u16 item1, u16 species2, u8 level2, u16 item2) +void CreateScriptedDoubleWildMon(u16 species1, u8 level1, enum Item item1, u16 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, u16 item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u16 *evs, u16 *ivs, u16 *moves, enum ShinyMode shinyMode, bool8 gmaxFactor, enum Type teraType, u8 dmaxLevel) +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) { struct Pokemon mon; u32 i; @@ -460,7 +460,7 @@ static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u return MON_GIVEN_TO_PARTY; } -u32 ScriptGiveMon(u16 species, u8 level, u16 item) +u32 ScriptGiveMon(u16 species, u8 level, enum Item item) { struct Pokemon mon; u8 heldItem[2]; @@ -504,7 +504,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx) u8 level = VarGet(ScriptReadHalfword(ctx)); u32 flags = ScriptReadWord(ctx); - u16 item = PARSE_FLAG(0, ITEM_NONE); + enum Item item = PARSE_FLAG(0, ITEM_NONE); u8 ball = PARSE_FLAG(1, ITEM_POKE_BALL); u8 nature = PARSE_FLAG(2, NATURE_RANDOM); u8 abilityNum = PARSE_FLAG(3, NUM_ABILITY_PERSONALITY); diff --git a/src/shop.c b/src/shop.c index e983213963..c273af229c 100644 --- a/src/shop.c +++ b/src/shop.c @@ -128,9 +128,9 @@ static void BuyMenuBuildListMenuTemplate(void); static void BuyMenuInitBgs(void); static void BuyMenuInitWindows(void); static void BuyMenuDecompressBgGraphics(void); -static void BuyMenuSetListEntry(struct ListMenuItem *, u16, u8 *); -static void BuyMenuAddItemIcon(u16, u8); -static void BuyMenuRemoveItemIcon(u16, u8); +static void BuyMenuSetListEntry(struct ListMenuItem *, enum Item, u8 *); +static void BuyMenuAddItemIcon(enum Item, u8); +static void BuyMenuRemoveItemIcon(enum Item, u8); static void BuyMenuPrint(u8 windowId, const u8 *text, u8 x, u8 y, s8 speed, u8 colorSet); static void BuyMenuDrawMapGraphics(void); static void BuyMenuCopyMenuBgToBg1TilemapBuffer(void); @@ -580,7 +580,7 @@ static void BuyMenuBuildListMenuTemplate(void) sShopData->itemsShowed = gMultiuseListMenuTemplate.maxShowed; } -static void BuyMenuSetListEntry(struct ListMenuItem *menuItem, u16 item, u8 *name) +static void BuyMenuSetListEntry(struct ListMenuItem *menuItem, enum Item item, u8 *name) { if (sMartInfo.martType == MART_TYPE_NORMAL) CopyItemName(item, name); @@ -683,7 +683,7 @@ static void BuyMenuPrintCursor(u8 scrollIndicatorsTaskId, u8 colorSet) BuyMenuPrint(WIN_ITEM_LIST, gText_SelectorArrow2, 0, y, 0, colorSet); } -static void BuyMenuAddItemIcon(u16 item, u8 iconSlot) +static void BuyMenuAddItemIcon(enum Item item, u8 iconSlot) { u8 spriteId; u8 *spriteIdPtr = &sShopData->itemSpriteIds[iconSlot]; @@ -708,7 +708,7 @@ static void BuyMenuAddItemIcon(u16 item, u8 iconSlot) } } -static void BuyMenuRemoveItemIcon(u16 item, u8 iconSlot) +static void BuyMenuRemoveItemIcon(enum Item item, u8 iconSlot) { u8 *spriteIdPtr = &sShopData->itemSpriteIds[iconSlot]; if (*spriteIdPtr == SPRITE_NONE) diff --git a/src/trainer_hill.c b/src/trainer_hill.c index 56df2da335..f87100df25 100644 --- a/src/trainer_hill.c +++ b/src/trainer_hill.c @@ -446,7 +446,7 @@ static void GetOwnerState(void) static void GiveChallengePrize(void) { #if FREE_TRAINER_HILL == FALSE - u16 itemId = GetPrizeItemId(); + enum Item itemId = GetPrizeItemId(); if (sHillData->challenge.numFloors != NUM_TRAINER_HILL_FLOORS || gSaveBlock1Ptr->trainerHill.receivedPrize) { diff --git a/src/tv.c b/src/tv.c index 0bc1ade232..dd4e2cc2a6 100644 --- a/src/tv.c +++ b/src/tv.c @@ -1109,7 +1109,7 @@ void TryPutPokemonTodayOnAir(void) u16 ballsUsed; TVShow *show; u32 language2; - u16 itemLastUsed; + enum Item itemLastUsed; ballsUsed = 0; TryPutRandomPokeNewsOnAir(); diff --git a/src/wonder_news.c b/src/wonder_news.c index 4b5f32d1dc..d1f4e403f8 100644 --- a/src/wonder_news.c +++ b/src/wonder_news.c @@ -104,7 +104,7 @@ u16 WonderNews_GetRewardInfo(void) static u32 GetRewardItem(struct WonderNewsMetadata *data) { - u32 itemId; + enum Item itemId; data->newsType = WONDER_NEWS_NONE; itemId = data->berry + FIRST_BERRY_INDEX - 1; data->berry = 0; diff --git a/test/battle/ability/aerilate.c b/test/battle/ability/aerilate.c index 01f61c12c5..d9eede03c8 100644 --- a/test/battle/ability/aerilate.c +++ b/test/battle/ability/aerilate.c @@ -127,7 +127,7 @@ SINGLE_BATTLE_TEST("Aerilate doesn't affect Natural Gift's type") SINGLE_BATTLE_TEST("Aerilate doesn't affect Judgment / Techno Blast / Multi-Attack's type") { enum Move move; - u32 item; + enum Item item; PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; } PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; } PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; } diff --git a/test/battle/ability/ball_fetch.c b/test/battle/ability/ball_fetch.c index 5a8b4d9530..185f7349da 100644 --- a/test/battle/ability/ball_fetch.c +++ b/test/battle/ability/ball_fetch.c @@ -3,7 +3,7 @@ WILD_BATTLE_TEST("Ball Fetch causes the Pokémon to pick up the last failed Ball at the end of the turn") { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_POKE_BALL; } PARAMETRIZE { item = ITEM_GREAT_BALL; } @@ -32,7 +32,7 @@ WILD_BATTLE_TEST("Ball Fetch causes the Pokémon to pick up the last failed Ball WILD_BATTLE_TEST("Ball Fetch doesn't trigger if the Pokémon is already holding an item") { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_NUGGET; } @@ -66,8 +66,8 @@ WILD_BATTLE_TEST("Ball Fetch doesn't trigger if the Pokémon is already holding WILD_BATTLE_TEST("Ball Fetch only picks up the first failed ball, once per battle") { - u32 item = 0; - u32 item2 = 0; + enum Item item = ITEM_NONE; + enum Item item2 = ITEM_NONE; PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_X_ACCURACY; } PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_ULTRA_BALL; } @@ -97,7 +97,7 @@ WILD_BATTLE_TEST("Ball Fetch only picks up the first failed ball, once per battl SINGLE_BATTLE_TEST("Ball Fetch doesn't trigger in Trainer Battles") { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_POKE_BALL; } PARAMETRIZE { item = ITEM_GREAT_BALL; } diff --git a/test/battle/ability/dry_skin.c b/test/battle/ability/dry_skin.c index 57a31bbb6d..6bca34e260 100644 --- a/test/battle/ability/dry_skin.c +++ b/test/battle/ability/dry_skin.c @@ -149,7 +149,7 @@ SINGLE_BATTLE_TEST("Dry Skin is only triggered once on multi strike moves") SINGLE_BATTLE_TEST("Dry Skin prevents Absorb Bulb and Luminous Moss from activating") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABSORB_BULB; } PARAMETRIZE { item = ITEM_LUMINOUS_MOSS; } GIVEN { diff --git a/test/battle/ability/galvanize.c b/test/battle/ability/galvanize.c index d96b57122c..e672457a37 100644 --- a/test/battle/ability/galvanize.c +++ b/test/battle/ability/galvanize.c @@ -118,7 +118,7 @@ SINGLE_BATTLE_TEST("Galvanize doesn't affect Natural Gift's type") SINGLE_BATTLE_TEST("Galvanize doesn't affect Judgment / Techno Blast / Multi-Attack's type") { enum Move move; - u32 item; + enum Item item; PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_SPLASH_PLATE; } PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_DOUSE_DRIVE; } PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_WATER_MEMORY; } diff --git a/test/battle/ability/intimidate.c b/test/battle/ability/intimidate.c index 2972989fcc..001fb8d856 100644 --- a/test/battle/ability/intimidate.c +++ b/test/battle/ability/intimidate.c @@ -301,7 +301,7 @@ DOUBLE_BATTLE_TEST("Intimidate activates when it's no longer affected by Neutral SINGLE_BATTLE_TEST("Intimidate activates when it's no longer affected by Neutralizing Gas - opponent caused switches") { enum Move move; - u32 item; + enum Item item; PARAMETRIZE { move = MOVE_SCRATCH; item = ITEM_EJECT_BUTTON; } PARAMETRIZE { move = MOVE_GROWL; item = ITEM_EJECT_PACK; } PARAMETRIZE { move = MOVE_ROAR; item = ITEM_NONE; } diff --git a/test/battle/ability/leaf_guard.c b/test/battle/ability/leaf_guard.c index cea2334869..b3ccfa3db7 100644 --- a/test/battle/ability/leaf_guard.c +++ b/test/battle/ability/leaf_guard.c @@ -71,7 +71,7 @@ SINGLE_BATTLE_TEST("Leaf Guard doesn't prevent non-volatile status conditions if SINGLE_BATTLE_TEST("Leaf Guard prevents status conditions from Flame Orb and Toxic Orb") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_FLAME_ORB; } PARAMETRIZE { item = ITEM_TOXIC_ORB; } GIVEN { @@ -93,7 +93,9 @@ SINGLE_BATTLE_TEST("Leaf Guard prevents status conditions from Flame Orb and Tox SINGLE_BATTLE_TEST("Leaf Guard doesn't prevent status conditions from Flame Orb and Toxic Orb if Cloud Nine/Air Lock is on the field") { - u32 item, species, ability; + enum Item item; + u32 species; + enum Ability ability; PARAMETRIZE { item = ITEM_FLAME_ORB; species = SPECIES_GOLDUCK; ability = ABILITY_CLOUD_NINE; } PARAMETRIZE { item = ITEM_TOXIC_ORB; species = SPECIES_GOLDUCK; ability = ABILITY_CLOUD_NINE; } PARAMETRIZE { item = ITEM_FLAME_ORB; species = SPECIES_RAYQUAZA; ability = ABILITY_AIR_LOCK; } diff --git a/test/battle/ability/levitate.c b/test/battle/ability/levitate.c index 7cf3b1007c..0a58cbbd0a 100644 --- a/test/battle/ability/levitate.c +++ b/test/battle/ability/levitate.c @@ -88,7 +88,8 @@ DOUBLE_BATTLE_TEST("Levitate does not cause single remaining target to take high AI_SINGLE_BATTLE_TEST("Levitate is seen correctly by switch AI") { - enum Ability ability = ABILITY_NONE, item = ITEM_NONE; + enum Ability ability = ABILITY_NONE; + enum Item item = ITEM_NONE; PARAMETRIZE { ability = ABILITY_OWN_TEMPO, item = ITEM_NONE ; } PARAMETRIZE { ability = ABILITY_MOLD_BREAKER, item = ITEM_NONE ; } diff --git a/test/battle/ability/normalize.c b/test/battle/ability/normalize.c index 08171c28cd..b85db768dd 100644 --- a/test/battle/ability/normalize.c +++ b/test/battle/ability/normalize.c @@ -233,7 +233,7 @@ SINGLE_BATTLE_TEST("Normalize doesn't affect Natural Gift's type") SINGLE_BATTLE_TEST("Normalize doesn't affect Judgment / Techno Blast / Multi-Attack's type") { enum Move move; - u32 item; + enum Item item; PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; } PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; } PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; } diff --git a/test/battle/ability/pixilate.c b/test/battle/ability/pixilate.c index 9139c81b5a..ed9fa65913 100644 --- a/test/battle/ability/pixilate.c +++ b/test/battle/ability/pixilate.c @@ -97,7 +97,7 @@ SINGLE_BATTLE_TEST("Pixilate doesn't affect Natural Gift's type") SINGLE_BATTLE_TEST("Pixilate doesn't affect Judgment / Techno Blast / Multi-Attack's type") { enum Move move; - u32 item; + enum Item item; PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; } PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; } PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; } diff --git a/test/battle/ability/refrigerate.c b/test/battle/ability/refrigerate.c index 0bbf358b77..834254f26b 100644 --- a/test/battle/ability/refrigerate.c +++ b/test/battle/ability/refrigerate.c @@ -96,7 +96,7 @@ SINGLE_BATTLE_TEST("Refrigerate doesn't affect Natural Gift's type") SINGLE_BATTLE_TEST("Refrigerate doesn't affect Judgment / Techno Blast / Multi-Attack's type") { enum Move move; - u32 item; + enum Item item; PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; } PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; } PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; } diff --git a/test/battle/ability/toxic_chain.c b/test/battle/ability/toxic_chain.c index 15cb52bb71..cb0f0d24f4 100644 --- a/test/battle/ability/toxic_chain.c +++ b/test/battle/ability/toxic_chain.c @@ -79,7 +79,7 @@ DOUBLE_BATTLE_TEST("Toxic Chain can inflict bad poison on both foes") SINGLE_BATTLE_TEST("Toxic Chain makes Lum/Pecha Berry trigger before being knocked off") { - u16 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_PECHA_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } diff --git a/test/battle/ability/water_absorb.c b/test/battle/ability/water_absorb.c index 936e70c590..288a04df2c 100644 --- a/test/battle/ability/water_absorb.c +++ b/test/battle/ability/water_absorb.c @@ -63,7 +63,7 @@ SINGLE_BATTLE_TEST("Water Absorb is only triggered once on multi strike moves") SINGLE_BATTLE_TEST("Water Absorb prevents Absorb Bulb and Luminous Moss from activating") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABSORB_BULB; } PARAMETRIZE { item = ITEM_LUMINOUS_MOSS; } GIVEN { diff --git a/test/battle/ai/ai.c b/test/battle/ai/ai.c index 785c6a3fd4..78de4fa3a1 100644 --- a/test/battle/ai/ai.c +++ b/test/battle/ai/ai.c @@ -583,7 +583,7 @@ AI_SINGLE_BATTLE_TEST("AI calculates guaranteed criticals and detects critical i AI_SINGLE_BATTLE_TEST("AI avoids contact moves against rocky helmet") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_ROCKY_HELMET; } diff --git a/test/battle/ai/ai_multi.c b/test/battle/ai/ai_multi.c index 7686ab840e..b61aefa361 100644 --- a/test/battle/ai/ai_multi.c +++ b/test/battle/ai/ai_multi.c @@ -187,7 +187,8 @@ AI_MULTI_BATTLE_TEST("AI opponents do not steal their partner pokemon in multi b AI_MULTI_BATTLE_TEST("AI opponents do not steal their partner pokemon in multi battle when forced out") { - u32 item, move; + enum Item item; + enum Move move; PARAMETRIZE { item = ITEM_EJECT_BUTTON; move = MOVE_TACKLE; } PARAMETRIZE { item = ITEM_EJECT_PACK; move = MOVE_TAIL_WHIP; } PARAMETRIZE { item = ITEM_NONE; move = MOVE_ROAR; } diff --git a/test/battle/ai/ai_switching.c b/test/battle/ai/ai_switching.c index d1f38367be..f96f64c1f7 100644 --- a/test/battle/ai/ai_switching.c +++ b/test/battle/ai/ai_switching.c @@ -1465,7 +1465,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI won't switch in absorbing mon AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: AI will consider choice-locked player when determining which mon to send out") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_CHOICE_BAND; } GIVEN { @@ -1871,7 +1871,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will consider player's endure AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will consider player's endure effects when evaluating switchin candidates") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_FOCUS_SASH; } GIVEN { @@ -1918,7 +1918,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: Fake Out style moves won't confu AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: AI will consider choice-locked player priority when determining which mon to send out") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_CHOICE_BAND; } GIVEN { diff --git a/test/battle/capture.c b/test/battle/capture.c index 432d8a77c1..150c44a1ee 100644 --- a/test/battle/capture.c +++ b/test/battle/capture.c @@ -140,7 +140,7 @@ WILD_BATTLE_TEST("Capture: Missing badge malus apply correcly in gen 9") WILD_BATTLE_TEST("Capture: when CRITICAL_CAPTURE_IF_OWNED is enabled, capture of owned pokemon always appear critical") { - u32 item; + enum Item item; bool32 alreadyOwned; u32 catchingChance; diff --git a/test/battle/exp.c b/test/battle/exp.c index 7a13dcac75..3ed52a9892 100644 --- a/test/battle/exp.c +++ b/test/battle/exp.c @@ -50,7 +50,7 @@ WILD_BATTLE_TEST("Higher leveled Pokemon give more exp", s32 exp) WILD_BATTLE_TEST("Lucky Egg boosts gained exp points by 50%", s32 exp) { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_LUCKY_EGG; } PARAMETRIZE { item = ITEM_NONE; } @@ -124,7 +124,7 @@ WILD_BATTLE_TEST("Large exp gains are supported", s32 exp) // #1455 WILD_BATTLE_TEST("Exp Share(held) gives Experience to mons which did not participate in battle") { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_EXP_SHARE; } diff --git a/test/battle/form_change/begin_battle.c b/test/battle/form_change/begin_battle.c index a133d321a3..0f026ee2c2 100644 --- a/test/battle/form_change/begin_battle.c +++ b/test/battle/form_change/begin_battle.c @@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Xerneas changes into Active Form upon battle start") SINGLE_BATTLE_TEST("Zacian changes into its Crowned Form when holding the Rusted Sword upon battle start") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_RUSTED_SWORD; } GIVEN { @@ -46,7 +46,7 @@ SINGLE_BATTLE_TEST("Zacian's Iron Head becomes Behemoth Blade upon form change") SINGLE_BATTLE_TEST("Zamazenta changes into its Crowned Form when holding the Rusted Shield upon battle start") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_RUSTED_SHIELD; } GIVEN { diff --git a/test/battle/gimmick/dynamax.c b/test/battle/gimmick/dynamax.c index 01d4338604..387de6ab16 100644 --- a/test/battle/gimmick/dynamax.c +++ b/test/battle/gimmick/dynamax.c @@ -534,7 +534,7 @@ DOUBLE_BATTLE_TEST("Dynamax: Dynamaxed Pokemon are immune to Instruct") SINGLE_BATTLE_TEST("Dynamax: Dynamaxed Pokemon are not affected by Choice items", s16 damage) { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_CHOICE_BAND; } PARAMETRIZE { item = ITEM_NONE; } GIVEN { diff --git a/test/battle/hold_effect/ability_shield.c b/test/battle/hold_effect/ability_shield.c index 31eb98ad62..40ea3328d5 100644 --- a/test/battle/hold_effect/ability_shield.c +++ b/test/battle/hold_effect/ability_shield.c @@ -8,7 +8,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Ability Shield protects against Neutralizing Gas") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABILITY_SHIELD; } PARAMETRIZE { item = ITEM_NONE; } @@ -37,7 +37,7 @@ SINGLE_BATTLE_TEST("Ability Shield protects against Neutralizing Gas") SINGLE_BATTLE_TEST("Ability Shield protects against Mold Breaker (no message)") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABILITY_SHIELD; } PARAMETRIZE { item = ITEM_NONE; } @@ -65,7 +65,7 @@ SINGLE_BATTLE_TEST("Ability Shield protects against Mold Breaker (no message)") SINGLE_BATTLE_TEST("Ability Shield protects against Mycelium Might (no message)") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABILITY_SHIELD; } PARAMETRIZE { item = ITEM_NONE; } @@ -96,7 +96,7 @@ SINGLE_BATTLE_TEST("Ability Shield protects against Mycelium Might (no message)" SINGLE_BATTLE_TEST("Ability Shield protects against Sunsteel Strike (no message)") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABILITY_SHIELD; } PARAMETRIZE { item = ITEM_NONE; } @@ -177,7 +177,7 @@ SINGLE_BATTLE_TEST("Ability Shield doesn't reactivate an ability when receiving SINGLE_BATTLE_TEST("Ability Shield protects the user from having its ability suppressed by Gastro Acid") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABILITY_SHIELD; } PARAMETRIZE { item = ITEM_NONE; } @@ -219,7 +219,7 @@ SINGLE_BATTLE_TEST("Ability Shield doesn't protect the user's ability from being SINGLE_BATTLE_TEST("Ability Shield protects against Skill Swap") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABILITY_SHIELD; } PARAMETRIZE { item = ITEM_NONE; } @@ -247,7 +247,7 @@ SINGLE_BATTLE_TEST("Ability Shield protects against Skill Swap") SINGLE_BATTLE_TEST("Ability Shield protects against Skill Swap even if user has Klutz") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_ABILITY_SHIELD; } PARAMETRIZE { item = ITEM_NONE; } diff --git a/test/battle/hold_effect/berserk_gene.c b/test/battle/hold_effect/berserk_gene.c index 002d164d1e..c024ff7a41 100644 --- a/test/battle/hold_effect/berserk_gene.c +++ b/test/battle/hold_effect/berserk_gene.c @@ -8,7 +8,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Berserk Gene sharply raises attack at the start of a single battle", s16 damage) { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BERSERK_GENE; } GIVEN { @@ -33,7 +33,7 @@ SINGLE_BATTLE_TEST("Berserk Gene sharply raises attack at the start of a single DOUBLE_BATTLE_TEST("Berserk Gene sharply raises attack at the start of a double battle", s16 damage) { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BERSERK_GENE; } GIVEN { @@ -60,7 +60,7 @@ DOUBLE_BATTLE_TEST("Berserk Gene sharply raises attack at the start of a double SINGLE_BATTLE_TEST("Berserk Gene activates on switch in", s16 damage) { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BERSERK_GENE; } GIVEN { @@ -87,7 +87,7 @@ SINGLE_BATTLE_TEST("Berserk Gene activates on switch in", s16 damage) SINGLE_BATTLE_TEST("Berserk Gene does not confuse a Pokemon with Own Tempo but still raises attack sharply in a single battle", s16 damage) { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BERSERK_GENE; } GIVEN { @@ -115,7 +115,7 @@ SINGLE_BATTLE_TEST("Berserk Gene does not confuse a Pokemon with Own Tempo but s DOUBLE_BATTLE_TEST("Berserk Gene does not confuse a Pokemon with Own Tempo but still raises attack sharply in a double battle", s16 damage) { - u16 item; + enum Item item; bool8 positionLeft = FALSE; PARAMETRIZE { item = ITEM_NONE; } @@ -255,7 +255,7 @@ SINGLE_BATTLE_TEST("Berserk Gene does not cause an infinite loop") SINGLE_BATTLE_TEST("Berserker Gene confusion can be healed with bag items") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_FULL_HEAL; } PARAMETRIZE { item = ITEM_HEAL_POWDER; } PARAMETRIZE { item = ITEM_PEWTER_CRUNCHIES; } @@ -284,7 +284,7 @@ SINGLE_BATTLE_TEST("Berserker Gene confusion can be healed with bag items") SINGLE_BATTLE_TEST("Berserker Gene confusion can be healed with used held items") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_PERSIM_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } diff --git a/test/battle/hold_effect/big_root.c b/test/battle/hold_effect/big_root.c index 575e0a0ef6..ba63185b49 100644 --- a/test/battle/hold_effect/big_root.c +++ b/test/battle/hold_effect/big_root.c @@ -8,7 +8,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Big Root increases healing from absorbing moves", s16 damage, s16 heal) { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BIG_ROOT; } @@ -30,7 +30,7 @@ SINGLE_BATTLE_TEST("Big Root increases healing from absorbing moves", s16 damage SINGLE_BATTLE_TEST("Big Root increases the damage restored from Leech Seed, Ingrain and Aqua Ring", s16 heal, s16 damage) { - u32 item; + enum Item item; enum Move move; PARAMETRIZE { item = ITEM_NONE; move = MOVE_LEECH_SEED; } @@ -59,7 +59,7 @@ SINGLE_BATTLE_TEST("Big Root increases the damage restored from Leech Seed, Ingr SINGLE_BATTLE_TEST("Big Root increases damage from absorbing Liquid Ooze", s16 damage) { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BIG_ROOT; } diff --git a/test/battle/hold_effect/booster_energy.c b/test/battle/hold_effect/booster_energy.c index 94341bfb9d..6803ffc4c3 100644 --- a/test/battle/hold_effect/booster_energy.c +++ b/test/battle/hold_effect/booster_energy.c @@ -181,7 +181,7 @@ SINGLE_BATTLE_TEST("Booster Energy increases special attack by 30% if it is the { u32 species; enum Ability ability; - u32 item; + enum Item item; PARAMETRIZE { species = SPECIES_RAGING_BOLT; ability = ABILITY_PROTOSYNTHESIS; item = ITEM_NONE; } PARAMETRIZE { species = SPECIES_RAGING_BOLT; ability = ABILITY_PROTOSYNTHESIS; item = ITEM_BOOSTER_ENERGY; } @@ -207,7 +207,7 @@ SINGLE_BATTLE_TEST("Booster Energy increases special defense by 30% if it is the { u32 species; enum Ability ability; - u32 item; + enum Item item; PARAMETRIZE { species = SPECIES_RAGING_BOLT; ability = ABILITY_PROTOSYNTHESIS; item = ITEM_NONE; } PARAMETRIZE { species = SPECIES_RAGING_BOLT; ability = ABILITY_PROTOSYNTHESIS; item = ITEM_BOOSTER_ENERGY; } diff --git a/test/battle/hold_effect/cure_status.c b/test/battle/hold_effect/cure_status.c index bffe041372..f65c73d55b 100644 --- a/test/battle/hold_effect/cure_status.c +++ b/test/battle/hold_effect/cure_status.c @@ -8,7 +8,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Pecha and Lum Berries cure poison") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_PECHA_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -30,7 +30,7 @@ SINGLE_BATTLE_TEST("Pecha and Lum Berries cure poison") SINGLE_BATTLE_TEST("Pecha and Lum Berries cure bad poison") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_PECHA_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -52,7 +52,7 @@ SINGLE_BATTLE_TEST("Pecha and Lum Berries cure bad poison") SINGLE_BATTLE_TEST("Rawst and Lum Berries cure burn") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_RAWST_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -74,7 +74,7 @@ SINGLE_BATTLE_TEST("Rawst and Lum Berries cure burn") SINGLE_BATTLE_TEST("Aspear and Lum Berries cure freeze or frostbite") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_ASPEAR_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -96,7 +96,7 @@ SINGLE_BATTLE_TEST("Aspear and Lum Berries cure freeze or frostbite") SINGLE_BATTLE_TEST("Chesto and Lum Berries cure sleep") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_CHESTO_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -158,7 +158,7 @@ SINGLE_BATTLE_TEST("Chesto and Lum Berries don't trigger if the holder has Comat SINGLE_BATTLE_TEST("Cheri and Lum Berries cure paralysis") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_CHERI_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -180,7 +180,7 @@ SINGLE_BATTLE_TEST("Cheri and Lum Berries cure paralysis") SINGLE_BATTLE_TEST("Perism and Lum Berries cure confusion") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_PERSIM_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -200,7 +200,8 @@ SINGLE_BATTLE_TEST("Perism and Lum Berries cure confusion") SINGLE_BATTLE_TEST("Berry hold effect cures status if a Pokémon enters a battle") { - u16 status, item; + u16 status; + enum Item item; PARAMETRIZE { status = STATUS1_BURN; item = ITEM_RAWST_BERRY; } PARAMETRIZE { status = STATUS1_FREEZE; item = ITEM_ASPEAR_BERRY; } @@ -227,7 +228,7 @@ SINGLE_BATTLE_TEST("Berry hold effect cures status if a Pokémon enters a battle SINGLE_BATTLE_TEST("Opponent Pokemon can be further poisoned with Toxic spikes after a status healing hold effect was previously used") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_PECHA_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } @@ -267,7 +268,7 @@ SINGLE_BATTLE_TEST("Opponent Pokemon can be further poisoned with Toxic spikes a // Basically same as above, but with the sides reversed. SINGLE_BATTLE_TEST("Player Pokemon can be further poisoned with Toxic spikes after a status healing hold effect was previously used") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_PECHA_BERRY; } PARAMETRIZE { item = ITEM_LUM_BERRY; } diff --git a/test/battle/hold_effect/gems.c b/test/battle/hold_effect/gems.c index 8455fe09da..5ca9054a57 100644 --- a/test/battle/hold_effect/gems.c +++ b/test/battle/hold_effect/gems.c @@ -28,7 +28,7 @@ SINGLE_BATTLE_TEST("Gem is consumed when it corresponds to the type of a move") SINGLE_BATTLE_TEST("Gem is not consumed when using Struggle", s16 damage) { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_NORMAL_GEM; } diff --git a/test/battle/hold_effect/metronome.c b/test/battle/hold_effect/metronome.c index e4ba980850..9add29f40c 100644 --- a/test/battle/hold_effect/metronome.c +++ b/test/battle/hold_effect/metronome.c @@ -107,7 +107,7 @@ SINGLE_BATTLE_TEST("Metronome Item counts called moves instead of the calling mo SINGLE_BATTLE_TEST("Metronome Item counts charging turn of moves for its attacking turn", s16 damage) { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_METRONOME; } diff --git a/test/battle/hold_effect/mirror_herb.c b/test/battle/hold_effect/mirror_herb.c index def6cdd429..3c8f692921 100644 --- a/test/battle/hold_effect/mirror_herb.c +++ b/test/battle/hold_effect/mirror_herb.c @@ -8,7 +8,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Mirror Herb copies all of foe's positive stat changes in a turn", s16 damage) { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_MIRROR_HERB; } GIVEN { diff --git a/test/battle/hold_effect/ogerpon_mask.c b/test/battle/hold_effect/ogerpon_mask.c index d1353d090f..19e1f911e1 100644 --- a/test/battle/hold_effect/ogerpon_mask.c +++ b/test/battle/hold_effect/ogerpon_mask.c @@ -14,7 +14,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Ogerpon Masks increase the base power of moves by 20%", s16 damage) { u32 species; - u32 item; + enum Item item; PARAMETRIZE { species = SPECIES_OGERPON_TEAL; item = ITEM_NONE; } PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING; item = ITEM_CORNERSTONE_MASK; } PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME; item = ITEM_WELLSPRING_MASK; } diff --git a/test/battle/hold_effect/protective_pads.c b/test/battle/hold_effect/protective_pads.c index 42407bd3be..005e3a80e1 100644 --- a/test/battle/hold_effect/protective_pads.c +++ b/test/battle/hold_effect/protective_pads.c @@ -27,7 +27,7 @@ SINGLE_BATTLE_TEST("Protective Pads protected moves still make direct contact", SINGLE_BATTLE_TEST("Protective Pads doesn't reduce tough claws damage", s16 damage) { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_PROTECTIVE_PADS; } GIVEN { diff --git a/test/battle/hold_effect/red_card.c b/test/battle/hold_effect/red_card.c index 548d43aa53..7f0aa9247c 100644 --- a/test/battle/hold_effect/red_card.c +++ b/test/battle/hold_effect/red_card.c @@ -166,7 +166,7 @@ SINGLE_BATTLE_TEST("Red Card does not activate if knocked off") SINGLE_BATTLE_TEST("Red Card does not activate if stolen by a move") { - u32 item; + enum Item item; bool32 activate; PARAMETRIZE { item = ITEM_NONE; activate = FALSE; } PARAMETRIZE { item = ITEM_POTION; activate = TRUE; } @@ -196,7 +196,7 @@ SINGLE_BATTLE_TEST("Red Card does not activate if stolen by a move") SINGLE_BATTLE_TEST("Red Card does not activate if stolen by Magician") { - u32 item; + enum Item item; bool32 activate; PARAMETRIZE { item = ITEM_NONE; activate = FALSE; } PARAMETRIZE { item = ITEM_POTION; activate = TRUE; } diff --git a/test/battle/hold_effect/resist_berry.c b/test/battle/hold_effect/resist_berry.c index 4fc8406d3d..049208ee65 100644 --- a/test/battle/hold_effect/resist_berry.c +++ b/test/battle/hold_effect/resist_berry.c @@ -26,7 +26,8 @@ static const u16 sMoveItemTable[][4] = SINGLE_BATTLE_TEST("Weakness berries decrease the base power of moves by half", s16 damage) { enum Move move = MOVE_NONE; - u32 item = 0, defender = 0; + enum Item item = ITEM_NONE; + u32 defender = 0; enum Type type = TYPE_NONE; for (u32 j = 0; j < ARRAY_COUNT(sMoveItemTable); j++) @@ -65,7 +66,8 @@ SINGLE_BATTLE_TEST("Weakness berries decrease the base power of moves by half", SINGLE_BATTLE_TEST("Weakness berries do not activate unless a move is super effective", s16 damage) { enum Move move = MOVE_NONE; - u32 item = 0, defender = 0; + enum Item item = ITEM_NONE; + u32 defender = 0; enum Type type = TYPE_NONE; for (u32 j = 0; j < ARRAY_COUNT(sMoveItemTable); j++) @@ -101,7 +103,7 @@ SINGLE_BATTLE_TEST("Weakness berries do not activate unless a move is super effe SINGLE_BATTLE_TEST("Weakness berries do not decrease the power of Struggle", s16 damage) { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_CHILAN_BERRY; } diff --git a/test/battle/hold_effect/restore_hp.c b/test/battle/hold_effect/restore_hp.c index 2441e92449..52dc04599d 100644 --- a/test/battle/hold_effect/restore_hp.c +++ b/test/battle/hold_effect/restore_hp.c @@ -3,7 +3,7 @@ DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_BERRY_JUICE; } PARAMETRIZE { item = ITEM_ORAN_BERRY; } @@ -30,7 +30,7 @@ DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing") DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing after a recoil move") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_BERRY_JUICE; } PARAMETRIZE { item = ITEM_ORAN_BERRY; } diff --git a/test/battle/hold_effect/terrain_seed.c b/test/battle/hold_effect/terrain_seed.c index 1ff1c252bf..83b8edff25 100644 --- a/test/battle/hold_effect/terrain_seed.c +++ b/test/battle/hold_effect/terrain_seed.c @@ -17,7 +17,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Electric Seed raises the holder's Defense on Electric Terrain") { enum Ability ability; - u32 item; + enum Item item; PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; } PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_ELECTRIC_SEED; } PARAMETRIZE { ability = ABILITY_ELECTRIC_SURGE; item = ITEM_NONE; } @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Electric Seed raises the holder's Defense on Electric Terrai SINGLE_BATTLE_TEST("Grassy Seed raises the holder's Defense on Grassy Terrain") { enum Ability ability; - u32 item; + enum Item item; PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; } PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_GRASSY_SEED; } PARAMETRIZE { ability = ABILITY_GRASSY_SURGE; item = ITEM_NONE; } @@ -81,7 +81,7 @@ SINGLE_BATTLE_TEST("Grassy Seed raises the holder's Defense on Grassy Terrain") SINGLE_BATTLE_TEST("Misty Seed raises the holder's Sp. Defense on Misty Terrain") { enum Ability ability; - u32 item; + enum Item item; PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; } PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_MISTY_SEED; } PARAMETRIZE { ability = ABILITY_MISTY_SURGE; item = ITEM_NONE; } @@ -113,7 +113,7 @@ SINGLE_BATTLE_TEST("Misty Seed raises the holder's Sp. Defense on Misty Terrain" SINGLE_BATTLE_TEST("Psychic Seed raises the holder's Sp. Defense on Psychic Terrain") { enum Ability ability; - u32 item; + enum Item item; PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_NONE; } PARAMETRIZE { ability = ABILITY_TELEPATHY; item = ITEM_PSYCHIC_SEED; } PARAMETRIZE { ability = ABILITY_PSYCHIC_SURGE; item = ITEM_NONE; } diff --git a/test/battle/hold_effect/type_power.c b/test/battle/hold_effect/type_power.c index e5ea9bbe9f..65c6d10159 100644 --- a/test/battle/hold_effect/type_power.c +++ b/test/battle/hold_effect/type_power.c @@ -26,7 +26,8 @@ static const u16 sMoveItemTable[][18] = SINGLE_BATTLE_TEST("Type-enhancing items increase the base power of moves by 20%", s16 damage) { enum Move move = MOVE_NONE; - u32 item = 0, type = 0; + enum Item item = ITEM_NONE; + enum Type type = TYPE_NONE; for (u32 j = 0; j < ARRAY_COUNT(sMoveItemTable); j++) { PARAMETRIZE { type = sMoveItemTable[j][0]; move = sMoveItemTable[j][1]; item = ITEM_NONE; } @@ -57,7 +58,7 @@ SINGLE_BATTLE_TEST("Type-enhancing items increase the base power of moves by 20% SINGLE_BATTLE_TEST("Type-enhancing items do not increase the power of Struggle", s16 damage) { - u32 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_SILK_SCARF; } diff --git a/test/battle/item_effect/cure_status.c b/test/battle/item_effect/cure_status.c index 915196691b..7b656e5c4e 100644 --- a/test/battle/item_effect/cure_status.c +++ b/test/battle/item_effect/cure_status.c @@ -464,7 +464,7 @@ SINGLE_BATTLE_TEST("Jubilife Muffin heals a battler from any primary status") SINGLE_BATTLE_TEST("Full Heal, Heal Powder and Local Specialties heal a battler from being confused") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_FULL_HEAL; } PARAMETRIZE { item = ITEM_HEAL_POWDER; } PARAMETRIZE { item = ITEM_PEWTER_CRUNCHIES; } diff --git a/test/battle/item_effect/restore_hp.c b/test/battle/item_effect/restore_hp.c index 286b91ccfc..b8ec443325 100644 --- a/test/battle/item_effect/restore_hp.c +++ b/test/battle/item_effect/restore_hp.c @@ -3,7 +3,8 @@ SINGLE_BATTLE_TEST("Items can restore a battler's HP by a fixed amount (singles, player)") { - u32 item, hp; + enum Item item; + u32 hp; PARAMETRIZE { item = ITEM_POTION; hp = 20; } PARAMETRIZE { item = ITEM_SUPER_POTION; hp = I_HEALTH_RECOVERY >= GEN_7 ? 60 : 50; } PARAMETRIZE { item = ITEM_HYPER_POTION; hp = I_HEALTH_RECOVERY >= GEN_7 ? 120 : 200; } @@ -31,7 +32,8 @@ SINGLE_BATTLE_TEST("Items can restore a battler's HP by a fixed amount (singles, SINGLE_BATTLE_TEST("Items can restore a battler's HP by a fixed amount (singles, opponent)") { - u32 item, hp; + enum Item item; + u32 hp; PARAMETRIZE { item = ITEM_POTION; hp = 20; } PARAMETRIZE { item = ITEM_SUPER_POTION; hp = I_HEALTH_RECOVERY >= GEN_7 ? 60 : 50; } PARAMETRIZE { item = ITEM_HYPER_POTION; hp = I_HEALTH_RECOVERY >= GEN_7 ? 120 : 200; } @@ -187,7 +189,8 @@ DOUBLE_BATTLE_TEST("Items can restore a partner battler's HP (opponentLeft to op SINGLE_BATTLE_TEST("Items can restore a battler's HP by a percentage") { - u32 item, percentage; + enum Item item; + u32 percentage; PARAMETRIZE { item = ITEM_MAX_POTION; percentage = 100; } #if I_SITRUS_BERRY_HEAL >= GEN_4 PARAMETRIZE { item = ITEM_SITRUS_BERRY; percentage = 25; } diff --git a/test/battle/move_effect/assist.c b/test/battle/move_effect/assist.c index 3a380ef125..bcf362e266 100644 --- a/test/battle/move_effect/assist.c +++ b/test/battle/move_effect/assist.c @@ -36,7 +36,7 @@ SINGLE_BATTLE_TEST("Assist fails if there are no valid moves to choose from") SINGLE_BATTLE_TEST("Assisted move triggers correct weakness berry") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_CHILAN_BERRY; } PARAMETRIZE { item = ITEM_PASSHO_BERRY; } GIVEN { diff --git a/test/battle/move_effect/beat_up.c b/test/battle/move_effect/beat_up.c index 719772c38c..7ddfd3ebad 100644 --- a/test/battle/move_effect/beat_up.c +++ b/test/battle/move_effect/beat_up.c @@ -156,7 +156,7 @@ SINGLE_BATTLE_TEST("Beat Up's damage considers stat stage changes (Gen5+)", s16 SINGLE_BATTLE_TEST("Beat Up's damage considers Huge Power and Choice Band (Gen5+)", s16 damage) { u16 ability; - u16 item; + enum Item item; PARAMETRIZE { ability = ABILITY_THICK_FAT; item = ITEM_NONE; } PARAMETRIZE { ability = ABILITY_HUGE_POWER; item = ITEM_NONE; } @@ -373,7 +373,7 @@ SINGLE_BATTLE_TEST("Beat Up ignores Huge Power", s16 damage) SINGLE_BATTLE_TEST("Beat Up ignores Choice Band", s16 damage) { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_CHOICE_BAND; } diff --git a/test/battle/move_effect/belch.c b/test/battle/move_effect/belch.c index 01bb244002..3daa2a3512 100644 --- a/test/battle/move_effect/belch.c +++ b/test/battle/move_effect/belch.c @@ -27,7 +27,7 @@ AI_SINGLE_BATTLE_TEST("AI: Belch has nonzero score after eating a berry") SINGLE_BATTLE_TEST("Belch cannot be used if the user has not eaten a berry") { - u16 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_ORAN_BERRY; } GIVEN { diff --git a/test/battle/move_effect/change_type_on_item.c b/test/battle/move_effect/change_type_on_item.c index f5c8f92376..a2e2cfa177 100644 --- a/test/battle/move_effect/change_type_on_item.c +++ b/test/battle/move_effect/change_type_on_item.c @@ -10,7 +10,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Techno Blast changes type depending on the drive the user holds") { u16 species; - u16 item; + enum Item item; PARAMETRIZE { species = SPECIES_CHARIZARD; item = ITEM_DOUSE_DRIVE; } PARAMETRIZE { species = SPECIES_BLASTOISE; item = ITEM_SHOCK_DRIVE; } diff --git a/test/battle/move_effect/corrosive_gas.c b/test/battle/move_effect/corrosive_gas.c index 2d3678eaca..fd4c2bd422 100644 --- a/test/battle/move_effect/corrosive_gas.c +++ b/test/battle/move_effect/corrosive_gas.c @@ -8,7 +8,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Corrosive Gas destroys the target's item or fails if the target has no item") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_POTION; } @@ -73,7 +73,7 @@ DOUBLE_BATTLE_TEST("Corrosive Gas destroys foes and ally's items if they have on { // Check it affects all targets in all possible configurations. u32 j, k, l; - u16 itemOpponentLeft, itemOpponentRight, itemPlayerLeft; + enum Item itemOpponentLeft, itemOpponentRight, itemPlayerLeft; for (j = 0; j < 2; j++) { for (k = 0; k < 2; k++) { diff --git a/test/battle/move_effect/dragon_darts.c b/test/battle/move_effect/dragon_darts.c index ba1c2f659e..f4d1d10be3 100644 --- a/test/battle/move_effect/dragon_darts.c +++ b/test/battle/move_effect/dragon_darts.c @@ -216,7 +216,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes left ally twice if one strike misses") { struct BattlePokemon *chosenTarget = NULL; struct BattlePokemon *finalTarget = NULL; - u32 itemLeft, itemRight; + enum Item itemLeft, itemRight; PARAMETRIZE { chosenTarget = opponentLeft; finalTarget = opponentRight; itemLeft = ITEM_BRIGHT_POWDER; itemRight = ITEM_NONE; } PARAMETRIZE { chosenTarget = opponentRight; finalTarget = opponentLeft; itemLeft = ITEM_NONE; itemRight = ITEM_BRIGHT_POWDER; } GIVEN { diff --git a/test/battle/move_effect/embargo.c b/test/battle/move_effect/embargo.c index ef577fef61..c44d2905d8 100644 --- a/test/battle/move_effect/embargo.c +++ b/test/battle/move_effect/embargo.c @@ -47,7 +47,7 @@ SINGLE_BATTLE_TEST("Embargo blocks an affected Pokémon's trainer from using ite WILD_BATTLE_TEST("Embargo doesn't block held item effects that affect experience gain", s32 exp) { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_LUCKY_EGG; } PARAMETRIZE { item = ITEM_NONE; } diff --git a/test/battle/move_effect/fling.c b/test/battle/move_effect/fling.c index d3988e1899..b9c82ab0b7 100644 --- a/test/battle/move_effect/fling.c +++ b/test/battle/move_effect/fling.c @@ -8,7 +8,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Fling fails if Pokémon holds no item") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_RAZOR_CLAW; } @@ -202,7 +202,7 @@ SINGLE_BATTLE_TEST("Fling - Item does not get blocked by Unnerve if it isn't a b SINGLE_BATTLE_TEST("Fling doesn't consume the item if Pokémon is asleep/frozen/paralyzed") { u32 status; - u16 item; + enum Item item; PARAMETRIZE { status = STATUS1_SLEEP_TURN(2); item = ITEM_RAZOR_CLAW; } PARAMETRIZE { status = STATUS1_PARALYSIS; item = ITEM_RAZOR_CLAW; } @@ -252,7 +252,7 @@ SINGLE_BATTLE_TEST("Fling doesn't consume the item if Pokémon is asleep/frozen/ SINGLE_BATTLE_TEST("Fling applies special effects when throwing specific Items") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_FLAME_ORB; } PARAMETRIZE { item = ITEM_LIGHT_BALL; } @@ -302,13 +302,15 @@ SINGLE_BATTLE_TEST("Fling applies special effects when throwing specific Items") MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } break; + default: + break; } } } SINGLE_BATTLE_TEST("Fling's secondary effects are blocked by Shield Dust") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_FLAME_ORB; } PARAMETRIZE { item = ITEM_LIGHT_BALL; } @@ -378,17 +380,22 @@ SINGLE_BATTLE_TEST("Fling's secondary effects are blocked by Shield Dust") case ITEM_KINGS_ROCK: MESSAGE("The King's Rock was used up…"); break; + default: + break; } } break; + default: + break; } } } SINGLE_BATTLE_TEST("Fling - thrown berry's effect activates for the target even if the trigger conditions are not met") { - u16 item, effect; - u8 statId = 0; + enum Item item; + enum HoldEffect effect; + enum Stat statId = STAT_HP; u32 status1 = STATUS1_NONE; PARAMETRIZE { item = ITEM_ORAN_BERRY; effect = HOLD_EFFECT_RESTORE_HP; } diff --git a/test/battle/move_effect/focus_punch.c b/test/battle/move_effect/focus_punch.c index e05ba8b1bf..72c73f4ef1 100644 --- a/test/battle/move_effect/focus_punch.c +++ b/test/battle/move_effect/focus_punch.c @@ -73,7 +73,7 @@ DOUBLE_BATTLE_TEST("Focus Punch activation is based on Speed") SINGLE_BATTLE_TEST("Focus Punch activates when Focus Band/Focus Sash blocks OHKO move") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_FOCUS_BAND; } PARAMETRIZE { item = ITEM_FOCUS_SASH; } @@ -139,7 +139,8 @@ SINGLE_BATTLE_TEST("Focus Punch activates when Disguise block a OHKO move (Gen8+ SINGLE_BATTLE_TEST("Focus Punch does not activate when Focus Band/Focus Sash/Sturdy prevent getting one-shot by an attack") { - u32 item, ability; + enum Item item; + enum Ability ability; PARAMETRIZE { item = ITEM_NONE; ability = ABILITY_STURDY; } PARAMETRIZE { item = ITEM_FOCUS_BAND; ability = ABILITY_SHADOW_TAG; } PARAMETRIZE { item = ITEM_FOCUS_SASH; ability = ABILITY_SHADOW_TAG; } diff --git a/test/battle/move_effect/future_sight.c b/test/battle/move_effect/future_sight.c index 86b46531a1..d64d1ff95c 100644 --- a/test/battle/move_effect/future_sight.c +++ b/test/battle/move_effect/future_sight.c @@ -19,7 +19,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Future Sight uses Sp. Atk stat of the original user without modifiers") { - u32 item; + enum Item item; s16 seedFlareDmg; s16 futureSightDmg; diff --git a/test/battle/move_effect/hydro_steam.c b/test/battle/move_effect/hydro_steam.c index ff1407a0e7..1a603f20d7 100644 --- a/test/battle/move_effect/hydro_steam.c +++ b/test/battle/move_effect/hydro_steam.c @@ -29,8 +29,8 @@ SINGLE_BATTLE_TEST("Hydro Steam deals 1.5x damage under both Sunlight and Rain", SINGLE_BATTLE_TEST("Hydro Steam is affected by Utility Umbrella", s16 damage) { - u32 itemPlayer; - u32 itemOpponent; + enum Item itemPlayer; + enum Item itemOpponent; PARAMETRIZE { itemPlayer = ITEM_UTILITY_UMBRELLA; itemOpponent = ITEM_NONE; } PARAMETRIZE { itemPlayer = ITEM_NONE; itemOpponent = ITEM_UTILITY_UMBRELLA; } PARAMETRIZE { itemPlayer = ITEM_UTILITY_UMBRELLA; itemOpponent = ITEM_UTILITY_UMBRELLA; } diff --git a/test/battle/move_effect/ivy_cudgel.c b/test/battle/move_effect/ivy_cudgel.c index 88d002ae35..7dd7f33445 100644 --- a/test/battle/move_effect/ivy_cudgel.c +++ b/test/battle/move_effect/ivy_cudgel.c @@ -10,7 +10,7 @@ SINGLE_BATTLE_TEST("Ivy Cudgel changes the move type depending on the form of Og { u16 species; u16 ogerpon; - u16 item; + enum Item item; PARAMETRIZE { species = SPECIES_BLASTOISE; ogerpon = SPECIES_OGERPON_TEAL; item = ITEM_NONE; } PARAMETRIZE { species = SPECIES_CHARIZARD; ogerpon = SPECIES_OGERPON_CORNERSTONE; item = ITEM_CORNERSTONE_MASK; } @@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Ivy Cudgel changes the move type depending on the form of Og SINGLE_BATTLE_TEST("Ivy Cudgel does not change the move type if used by Pokémon other than Ogerpon") { - u16 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_CORNERSTONE_MASK; } diff --git a/test/battle/move_effect/knock_off.c b/test/battle/move_effect/knock_off.c index fd7a9a8824..8e46ee3151 100644 --- a/test/battle/move_effect/knock_off.c +++ b/test/battle/move_effect/knock_off.c @@ -55,7 +55,7 @@ SINGLE_BATTLE_TEST("Knock Off knocks a healing berry before it has the chance to SINGLE_BATTLE_TEST("Knock Off activates after Rocky Helmet and Weakness Policy") { - u16 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_WEAKNESS_POLICY; } PARAMETRIZE { item = ITEM_ROCKY_HELMET; } @@ -85,7 +85,7 @@ SINGLE_BATTLE_TEST("Knock Off activates after Rocky Helmet and Weakness Policy") SINGLE_BATTLE_TEST("Knock Off deals additional damage to opponents holding an item in Gen 6+", s16 damage) { - u16 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_LEFTOVERS; } diff --git a/test/battle/move_effect/multi_hit.c b/test/battle/move_effect/multi_hit.c index 3962d8f373..607afac62d 100644 --- a/test/battle/move_effect/multi_hit.c +++ b/test/battle/move_effect/multi_hit.c @@ -236,7 +236,7 @@ SINGLE_BATTLE_TEST("Scale Shot decreases defense and increases speed after the 4 SINGLE_BATTLE_TEST("Scale Shot decreases defense and increases speed after killing opposing with less then 4 hits") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_LOADED_DICE; } diff --git a/test/battle/move_effect/spikes.c b/test/battle/move_effect/spikes.c index 24c63941c3..cd454eb738 100644 --- a/test/battle/move_effect/spikes.c +++ b/test/battle/move_effect/spikes.c @@ -89,7 +89,7 @@ SINGLE_BATTLE_TEST("Spikes damage on subsequent switch ins") SINGLE_BATTLE_TEST("Spikes do not damage airborne Pokemon") { u32 species = SPECIES_WOBBUFFET; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; enum Move move1 = MOVE_CELEBRATE; enum Move move2 = MOVE_CELEBRATE; bool32 airborne; diff --git a/test/battle/move_effect/strength_sap.c b/test/battle/move_effect/strength_sap.c index 675d5090ee..3c2aa4d7cd 100644 --- a/test/battle/move_effect/strength_sap.c +++ b/test/battle/move_effect/strength_sap.c @@ -145,7 +145,7 @@ TO_DO_BATTLE_TEST("Strength Sap doesn't fail if target has Contrary and is at +6 SINGLE_BATTLE_TEST("Strength Sap restores more HP if Big Root is held", s16 hp) { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BIG_ROOT; } diff --git a/test/battle/move_effect/stuff_cheeks.c b/test/battle/move_effect/stuff_cheeks.c index b8dda1d8b6..b729acf802 100644 --- a/test/battle/move_effect/stuff_cheeks.c +++ b/test/battle/move_effect/stuff_cheeks.c @@ -10,7 +10,7 @@ ASSUMPTIONS SINGLE_BATTLE_TEST("Stuff Cheeks cannot be used if the user doesn't hold a berry") { - u16 item = 0; + enum Item item = ITEM_NONE; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_LIECHI_BERRY; } GIVEN { diff --git a/test/battle/move_effect/synthesis.c b/test/battle/move_effect/synthesis.c index 8a1560969d..3d0592bbfd 100644 --- a/test/battle/move_effect/synthesis.c +++ b/test/battle/move_effect/synthesis.c @@ -52,7 +52,7 @@ SINGLE_BATTLE_TEST("Synthesis recovers 1/4 of the user's max HP in Rain, Sandsto SINGLE_BATTLE_TEST("Synthesis recovers regular amount in sandstorm if holding utility umbrella") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_LIFE_ORB; } PARAMETRIZE { item = ITEM_UTILITY_UMBRELLA; } GIVEN { diff --git a/test/battle/move_effect/teatime.c b/test/battle/move_effect/teatime.c index 5118bde0c5..6f2d394d29 100644 --- a/test/battle/move_effect/teatime.c +++ b/test/battle/move_effect/teatime.c @@ -179,8 +179,8 @@ SINGLE_BATTLE_TEST("Teatime does not affect Pokémon in the semi-invulnerable tu SINGLE_BATTLE_TEST("Teatime triggers Volt Absorb if it has been affected by Electrify or Plasma Fists, even when not holding a Berry") { enum Move move; - u32 item = ITEM_LIECHI_BERRY; - bool8 shouldTriggerAbility = TRUE; + enum Item item = ITEM_LIECHI_BERRY; + bool32 shouldTriggerAbility = TRUE; PARAMETRIZE { move = MOVE_CELEBRATE; shouldTriggerAbility = FALSE; } PARAMETRIZE { move = MOVE_ELECTRIFY; } @@ -217,8 +217,8 @@ SINGLE_BATTLE_TEST("Teatime triggers Volt Absorb if it has been affected by Elec SINGLE_BATTLE_TEST("Teatime triggers Lightning Rod if it has been affected by Electrify or Plasma Fists, even when not holding a Berry") { enum Move move; - u32 item = ITEM_LIECHI_BERRY; - bool8 shouldTriggerAbility = TRUE; + enum Item item = ITEM_LIECHI_BERRY; + bool32 shouldTriggerAbility = TRUE; PARAMETRIZE { move = MOVE_CELEBRATE; shouldTriggerAbility = FALSE; } PARAMETRIZE { move = MOVE_ELECTRIFY; } @@ -259,8 +259,8 @@ SINGLE_BATTLE_TEST("Teatime triggers Lightning Rod if it has been affected by El SINGLE_BATTLE_TEST("Teatime triggers Motor Drive if it has been affected by Electrify or Plasma Fists, even when not holding a Berry") { enum Move move; - u32 item= ITEM_LIECHI_BERRY; - bool8 shouldTriggerAbility = TRUE; + enum Item item = ITEM_LIECHI_BERRY; + bool32 shouldTriggerAbility = TRUE; PARAMETRIZE { move = MOVE_CELEBRATE; shouldTriggerAbility = FALSE; } PARAMETRIZE { move = MOVE_ELECTRIFY; } diff --git a/test/battle/move_effect/toxic_spikes.c b/test/battle/move_effect/toxic_spikes.c index 0d9cbf1457..21f58df47a 100644 --- a/test/battle/move_effect/toxic_spikes.c +++ b/test/battle/move_effect/toxic_spikes.c @@ -92,7 +92,7 @@ SINGLE_BATTLE_TEST("Toxic Spikes inflicts poison on subsequent switch ins") SINGLE_BATTLE_TEST("Toxic Spikes do not poison airborne Pokemon") { u32 species = SPECIES_WOBBUFFET; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; enum Move move1 = MOVE_CELEBRATE; enum Move move2 = MOVE_CELEBRATE; bool32 airborne; @@ -154,7 +154,7 @@ SINGLE_BATTLE_TEST("Toxic Spikes do not affect Steel-types") SINGLE_BATTLE_TEST("Toxic Spikes are removed by grounded Poison-type Pokémon on switch in") { u32 species; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; enum Move move = MOVE_CELEBRATE; bool32 grounded; PARAMETRIZE { species = SPECIES_EKANS; grounded = TRUE; } diff --git a/test/battle/move_effect_secondary/bug_bite.c b/test/battle/move_effect_secondary/bug_bite.c index c0b2bc2979..03573f7034 100644 --- a/test/battle/move_effect_secondary/bug_bite.c +++ b/test/battle/move_effect_secondary/bug_bite.c @@ -10,8 +10,10 @@ ASSUMPTIONS // Pretty much copy/paste of the Berry Fling Test. SINGLE_BATTLE_TEST("Bug Bite eats the target's berry and immediately gains its effect") { - u16 item = ITEM_NONE; - u32 status1 = STATUS1_NONE, effect = HOLD_EFFECT_NONE, statId = 0; + enum Item item = ITEM_NONE; + u32 status1 = STATUS1_NONE; + enum HoldEffect effect = HOLD_EFFECT_NONE; + enum Stat statId = STAT_HP; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_ORAN_BERRY; effect = HOLD_EFFECT_RESTORE_HP; } diff --git a/test/battle/weather/hail.c b/test/battle/weather/hail.c index a8fcc4bc10..f1dd97d587 100644 --- a/test/battle/weather/hail.c +++ b/test/battle/weather/hail.c @@ -42,7 +42,7 @@ SINGLE_BATTLE_TEST("Hail damage does not affect Ice-type Pokémon") SINGLE_BATTLE_TEST("Hail fails if Desolate Land or Primordial Sea are active") { u32 species; - u32 item; + enum Item item; PARAMETRIZE { species = SPECIES_WOBBUFFET; item = ITEM_NONE; } PARAMETRIZE { species = SPECIES_GROUDON; item = ITEM_RED_ORB; } diff --git a/test/battle/weather/rain.c b/test/battle/weather/rain.c index 0620aae100..cdb4e97de3 100644 --- a/test/battle/weather/rain.c +++ b/test/battle/weather/rain.c @@ -48,7 +48,7 @@ SINGLE_BATTLE_TEST("Rain multiplies the power of Water-type moves by 1.5x", s16 SINGLE_BATTLE_TEST("Drizzle fails if Desolate Land is active") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_RED_ORB; } diff --git a/test/battle/weather/snow.c b/test/battle/weather/snow.c index 5911896dfe..4df03111bb 100644 --- a/test/battle/weather/snow.c +++ b/test/battle/weather/snow.c @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Snow multiplies the defense of Ice-types by 1.5x", s16 damag SINGLE_BATTLE_TEST("Snowscape fails if Desolate Land or Primordial Sea are active") { u32 species; - u32 item; + enum Item item; PARAMETRIZE { species = SPECIES_WOBBUFFET; item = ITEM_NONE; } PARAMETRIZE { species = SPECIES_GROUDON; item = ITEM_RED_ORB; } diff --git a/test/battle/weather/sunlight.c b/test/battle/weather/sunlight.c index 796ad3c3af..977a90dbb8 100644 --- a/test/battle/weather/sunlight.c +++ b/test/battle/weather/sunlight.c @@ -48,7 +48,7 @@ SINGLE_BATTLE_TEST("Sunlight multiplies the power of Water-type moves by 0.5x", SINGLE_BATTLE_TEST("Sunny Day fails if Primordial Sea is active") { - u32 item; + enum Item item; PARAMETRIZE { item = ITEM_NONE; } PARAMETRIZE { item = ITEM_BLUE_ORB; } diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 934bec4769..622c6433df 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -2732,7 +2732,7 @@ void MoveGetIdAndSlot(s32 battlerId, struct MoveContext *ctx, u32 *moveId, u32 * if (ctx->explicitGimmick && ctx->gimmick != GIMMICK_NONE) { - u32 item = GetMonData(mon, MON_DATA_HELD_ITEM); + enum Item item = GetMonData(mon, MON_DATA_HELD_ITEM); enum HoldEffect holdEffect = GetItemHoldEffect(item); u32 species = GetMonData(mon, MON_DATA_SPECIES); diff --git a/test/text.c b/test/text.c index 6ad7c1919f..211a853966 100644 --- a/test/text.c +++ b/test/text.c @@ -107,7 +107,7 @@ TEST("Item names fit on Bag Screen (list)") u32 i; const u32 fontId = FONT_NARROWER; const u32 tmHmBerryWidthPx = 61, restWidthPx = 88; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; for (i = 1; i < ITEMS_COUNT; i++) { PARAMETRIZE_LABEL("%S", gItemsInfo[i].name) { item = i; } @@ -124,7 +124,7 @@ TEST("Item plural names fit on Bag Screen (left box)") u32 i; // -6 for the question mark in FONT_NORMAL. const u32 fontId = FONT_NARROWER, widthPx = 101 - 6; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; u8 pluralName[ITEM_NAME_PLURAL_LENGTH + 1]; for (i = 1; i < ITEMS_COUNT; i++) { @@ -138,7 +138,7 @@ TEST("Item names fit on PC Storage (list)") { u32 i; const u32 fontId = FONT_NARROWER, widthPx = 73; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; for (i = 1; i < ITEMS_COUNT; i++) { PARAMETRIZE_LABEL("%S", gItemsInfo[i].name) { item = i; } @@ -151,7 +151,7 @@ TEST("Item plural names fit on PC storage (left box)") u32 i; // -6 for the question mark in FONT_NORMAL. const u32 fontId = FONT_NARROWER, widthPx = 104 - 6; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; u8 pluralName[ITEM_NAME_PLURAL_LENGTH + 1]; for (i = 1; i < ITEMS_COUNT; i++) { @@ -165,7 +165,7 @@ TEST("Item names fit on Pokemon Storage System") { u32 i; const u32 fontId = FONT_SMALL_NARROWER, widthPx = 66; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; for (i = 1; i < ITEMS_COUNT; i++) { if (gItemsInfo[i].importance) continue; @@ -192,7 +192,7 @@ TEST("Item names fit on Pokemon Summary Screen") { u32 i; const u32 fontId = FONT_NARROWER, widthPx = 72; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; for (i = 1; i < ITEMS_COUNT; i++) { if (gItemsInfo[i].importance) continue; @@ -214,7 +214,7 @@ TEST("Item names fit on Shop Screen") { u32 i; const u32 fontId = FONT_NARROWER, widthPx = 84; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; for (i = 1; i < ITEMS_COUNT; i++) { PARAMETRIZE_LABEL("%S", gItemsInfo[i].name) { item = i; } @@ -226,7 +226,7 @@ TEST("Item descriptions fit on Bag and Shop Screen") { u32 i; const u32 fontId = FONT_NORMAL, widthPx = 102; - u32 item = ITEM_NONE; + enum Item item = ITEM_NONE; for (i = 1; i < ITEMS_COUNT; i++) { PARAMETRIZE_LABEL("%S", gItemsInfo[i].description) { item = i; }