Adds `Item` enum (#8897)

This commit is contained in:
Bassoonian 2026-01-17 11:26:09 +01:00 committed by GitHub
parent de7aaf854c
commit 36fcd9c6b2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
141 changed files with 1540 additions and 1599 deletions

View File

@ -1,3 +1,2 @@
.include "constants/gba_constants.inc"
.include "constants/global.inc"
.include "constants/tms_hms.inc"

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -18,7 +18,7 @@ struct StatFractions
struct PickupItem
{
u16 itemId;
enum Item itemId;
u8 percentage[10];
};

View File

@ -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);

View File

@ -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);

View File

@ -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);

File diff suppressed because it is too large Load Diff

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -1194,7 +1194,7 @@ struct MoveContext
struct ItemContext
{
u16 itemId;
enum Item itemId;
u16 explicitItemId:1;
u16 partyIndex;
u16 explicitPartyIndex:1;

View File

@ -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)

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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++)
{

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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++)
{

View File

@ -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];

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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] =
{

View File

@ -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

View File

@ -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++)
{

View File

@ -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)

View File

@ -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;

View File

@ -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);

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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;

View File

@ -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;

View File

@ -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)
{

View File

@ -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;

View File

@ -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)

View File

@ -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;
}

View File

@ -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;

View File

@ -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())

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -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)

View File

@ -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();

View File

@ -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;

View File

@ -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

View File

@ -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]);

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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)

View File

@ -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)
{

View File

@ -1109,7 +1109,7 @@ void TryPutPokemonTodayOnAir(void)
u16 ballsUsed;
TVShow *show;
u32 language2;
u16 itemLastUsed;
enum Item itemLastUsed;
ballsUsed = 0;
TryPutRandomPokeNewsOnAir();

View File

@ -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;

View File

@ -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; }

View File

@ -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; }

View File

@ -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 {

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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 ; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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 {

View File

@ -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; }

View File

@ -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; }

View File

@ -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 {

View File

@ -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;

View File

@ -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; }

View File

@ -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 {

View File

@ -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 {

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

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