mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-03-21 18:04:50 -05:00
Adds `Item` enum (#8897)
This commit is contained in:
parent
de7aaf854c
commit
36fcd9c6b2
|
|
@ -1,3 +1,2 @@
|
||||||
.include "constants/gba_constants.inc"
|
.include "constants/gba_constants.inc"
|
||||||
.include "constants/global.inc"
|
.include "constants/global.inc"
|
||||||
.include "constants/tms_hms.inc"
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -196,8 +196,8 @@ struct AI_SavedBattleMon
|
||||||
struct AiPartyMon
|
struct AiPartyMon
|
||||||
{
|
{
|
||||||
u16 species;
|
u16 species;
|
||||||
u16 item;
|
enum Item item;
|
||||||
u16 heldEffect;
|
enum HoldEffect heldEffect;
|
||||||
enum Ability ability;
|
enum Ability ability;
|
||||||
u16 level;
|
u16 level;
|
||||||
enum Move moves[MAX_MON_MOVES];
|
enum Move moves[MAX_MON_MOVES];
|
||||||
|
|
@ -226,12 +226,12 @@ struct SimulatedDamage
|
||||||
struct AiLogicData
|
struct AiLogicData
|
||||||
{
|
{
|
||||||
enum Ability abilities[MAX_BATTLERS_COUNT];
|
enum Ability abilities[MAX_BATTLERS_COUNT];
|
||||||
u16 items[MAX_BATTLERS_COUNT];
|
enum Item items[MAX_BATTLERS_COUNT];
|
||||||
u16 holdEffects[MAX_BATTLERS_COUNT];
|
enum HoldEffect holdEffects[MAX_BATTLERS_COUNT];
|
||||||
u8 holdEffectParams[MAX_BATTLERS_COUNT];
|
u8 holdEffectParams[MAX_BATTLERS_COUNT];
|
||||||
u16 lastUsedMove[MAX_BATTLERS_COUNT];
|
enum Move lastUsedMove[MAX_BATTLERS_COUNT];
|
||||||
u8 hpPercents[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
|
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
|
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
|
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 moveLimitations[MAX_BATTLERS_COUNT];
|
||||||
u8 monToSwitchInId[MAX_BATTLERS_COUNT]; // ID of the mon to switch in.
|
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.
|
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
|
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
|
// Flags
|
||||||
|
|
|
||||||
|
|
@ -142,10 +142,10 @@ bool32 ShouldSetScreen(u32 battlerAtk, u32 battlerDef, enum BattleMoveEffects mo
|
||||||
bool32 ShouldCureStatus(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData);
|
bool32 ShouldCureStatus(u32 battlerAtk, u32 battlerDef, struct AiLogicData *aiData);
|
||||||
bool32 ShouldCureStatusWithItem(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);
|
enum AIPivot ShouldPivot(u32 battlerAtk, u32 battlerDef, enum Move move);
|
||||||
bool32 IsRecycleEncouragedItem(u32 item);
|
bool32 IsRecycleEncouragedItem(enum Item item);
|
||||||
bool32 ShouldRestoreHpBerry(u32 battlerAtk, u32 item);
|
bool32 ShouldRestoreHpBerry(u32 battlerAtk, enum Item item);
|
||||||
bool32 IsStatBoostingBerry(u32 item);
|
bool32 IsStatBoostingBerry(enum Item item);
|
||||||
bool32 CanKnockOffItem(u32 fromBattler, u32 battler, u32 item);
|
bool32 CanKnockOffItem(u32 fromBattler, u32 battler, enum Item item);
|
||||||
bool32 IsAbilityOfRating(enum Ability ability, s32 rating);
|
bool32 IsAbilityOfRating(enum Ability ability, s32 rating);
|
||||||
bool32 AI_IsAbilityOnSide(u32 battlerId, enum Ability ability);
|
bool32 AI_IsAbilityOnSide(u32 battlerId, enum Ability ability);
|
||||||
bool32 AI_MoveMakesContact(enum Ability ability, enum HoldEffect holdEffect, enum Move move);
|
bool32 AI_MoveMakesContact(enum Ability ability, enum HoldEffect holdEffect, enum Move move);
|
||||||
|
|
|
||||||
|
|
@ -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_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_EmitPrintString(u32 battler, u32 bufferId, enum StringID stringId);
|
||||||
void BtlController_EmitPrintSelectionString(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_EmitYesNoBox(u32 battler, u32 bufferId);
|
||||||
void BtlController_EmitChooseMove(u32 battler, u32 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
void BtlController_EmitChooseMove(u32 battler, u32 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
|
||||||
void BtlController_EmitChooseItem(u32 battler, u32 bufferId, u8 *battlePartyOrder);
|
void BtlController_EmitChooseItem(u32 battler, u32 bufferId, u8 *battlePartyOrder);
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ struct StatFractions
|
||||||
|
|
||||||
struct PickupItem
|
struct PickupItem
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
u8 percentage[10];
|
u8 percentage[10];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
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);
|
u32 GetCurrentBattleWeather(void);
|
||||||
bool32 EndOrContinueWeather(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);
|
bool32 IsAffectedByFollowMe(u32 battlerAtk, enum BattleSide defSide, enum Move move);
|
||||||
void DetermineTarget(enum MoveTarget moveTarget, bool32 overwriteTarget);
|
void DetermineTarget(enum MoveTarget moveTarget, bool32 overwriteTarget);
|
||||||
void HandleAction_UseMove(void);
|
void HandleAction_UseMove(void);
|
||||||
|
|
@ -347,7 +347,7 @@ u32 GetBattleFormChangeTargetSpecies(u32 battler, enum FormChanges method);
|
||||||
bool32 TryRevertPartyMonFormChange(u32 partyIndex);
|
bool32 TryRevertPartyMonFormChange(u32 partyIndex);
|
||||||
bool32 TryBattleFormChange(u32 battler, enum FormChanges method);
|
bool32 TryBattleFormChange(u32 battler, enum FormChanges method);
|
||||||
bool32 DoBattlersShareType(u32 battler1, u32 battler2);
|
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);
|
u32 GetBattlerVisualSpecies(u32 battler);
|
||||||
bool32 TryClearIllusion(u32 battler, enum Ability ability);
|
bool32 TryClearIllusion(u32 battler, enum Ability ability);
|
||||||
u32 GetIllusionMonSpecies(u32 battler);
|
u32 GetIllusionMonSpecies(u32 battler);
|
||||||
|
|
@ -364,15 +364,15 @@ bool32 CanFling(u32 battlerAtk, u32 battlerDef);
|
||||||
bool32 IsTelekinesisBannedSpecies(u16 species);
|
bool32 IsTelekinesisBannedSpecies(u16 species);
|
||||||
bool32 IsHealBlockPreventingMove(u32 battler, enum Move move);
|
bool32 IsHealBlockPreventingMove(u32 battler, enum Move move);
|
||||||
bool32 IsBelchPreventingMove(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);
|
bool32 IsPartnerMonFromSameTrainer(u32 battler);
|
||||||
enum DamageCategory GetCategoryBasedOnStats(u32 battler);
|
enum DamageCategory GetCategoryBasedOnStats(u32 battler);
|
||||||
void SetShellSideArmCategory(void);
|
void SetShellSideArmCategory(void);
|
||||||
bool32 MoveIsAffectedBySheerForce(enum Move move);
|
bool32 MoveIsAffectedBySheerForce(enum Move move);
|
||||||
bool32 IsSheerForceAffected(enum Move move, enum Ability ability);
|
bool32 IsSheerForceAffected(enum Move move, enum Ability ability);
|
||||||
void TryRestoreHeldItems(void);
|
void TryRestoreHeldItems(void);
|
||||||
bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item);
|
bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, enum Item item);
|
||||||
void TrySaveExchangedItem(u32 battler, u16 stolenItem);
|
void TrySaveExchangedItem(u32 battler, enum Item stolenItem);
|
||||||
bool32 IsBattlerAffectedByHazards(u32 battler, enum HoldEffect holdEffect, bool32 toxicSpikes);
|
bool32 IsBattlerAffectedByHazards(u32 battler, enum HoldEffect holdEffect, bool32 toxicSpikes);
|
||||||
void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast);
|
void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast);
|
||||||
bool32 CompareStat(u32 battler, enum Stat statId, u32 cmpTo, u32 cmpKind, enum Ability ability);
|
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 TrySwitchInEjectPack(enum EjectPackTiming timing);
|
||||||
bool32 EmergencyExitCanBeTriggered(u32 battler);
|
bool32 EmergencyExitCanBeTriggered(u32 battler);
|
||||||
bool32 TryTriggerSymbiosis(u32 battler, u32 ally);
|
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);
|
void BestowItem(u32 battlerAtk, u32 battlerDef);
|
||||||
ARM_FUNC u32 GetBattlerVolatile(u32 battler, enum Volatile _volatile);
|
ARM_FUNC u32 GetBattlerVolatile(u32 battler, enum Volatile _volatile);
|
||||||
void SetMonVolatile(u32 battler, enum Volatile _volatile, u32 newValue);
|
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);
|
void PushHazardTypeToQueue(enum BattleSide side, enum Hazards hazardType);
|
||||||
bool32 IsHazardOnSide(enum BattleSide side, enum Hazards hazardType);
|
bool32 IsHazardOnSide(enum BattleSide side, enum Hazards hazardType);
|
||||||
bool32 AreAnyHazardsOnSide(enum BattleSide side);
|
bool32 AreAnyHazardsOnSide(enum BattleSide side);
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
struct SignatureZMove
|
struct SignatureZMove
|
||||||
{
|
{
|
||||||
u16 species;
|
u16 species;
|
||||||
u16 item;
|
enum Item item;
|
||||||
enum Move move;
|
enum Move move;
|
||||||
enum Move zmove;
|
enum Move zmove;
|
||||||
};
|
};
|
||||||
|
|
@ -20,7 +20,7 @@ void ActivateZMove(u32 battler);
|
||||||
bool32 IsViableZMove(u32 battler, enum Move move);
|
bool32 IsViableZMove(u32 battler, enum Move move);
|
||||||
bool32 TryChangeZTrigger(u32 battler, u32 moveIndex);
|
bool32 TryChangeZTrigger(u32 battler, u32 moveIndex);
|
||||||
enum Move GetTypeBasedZMove(enum Move move);
|
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);
|
bool32 MoveSelectionDisplayZMove(enum Move zmove, u32 battler);
|
||||||
void SetZEffect(void);
|
void SetZEffect(void);
|
||||||
void AssignUsableZMoves(u32 battler, enum Move *moves);
|
void AssignUsableZMoves(u32 battler, enum Move *moves);
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 allowGrowth);
|
||||||
void RemoveBerryTree(u8 id);
|
void RemoveBerryTree(u8 id);
|
||||||
u8 GetBerryTypeByBerryTreeId(u8 id);
|
u8 GetBerryTypeByBerryTreeId(u8 id);
|
||||||
u8 GetStageByBerryTreeId(u8 id);
|
u8 GetStageByBerryTreeId(u8 id);
|
||||||
u8 ItemIdToBerryType(u16 item);
|
u8 ItemIdToBerryType(enum Item item);
|
||||||
void GetBerryNameByBerryType(u8 berry, u8 *string);
|
void GetBerryNameByBerryType(u8 berry, u8 *string);
|
||||||
void Bag_ChooseBerry(void);
|
void Bag_ChooseBerry(void);
|
||||||
void Bag_ChooseMulch(void);
|
void Bag_ChooseMulch(void);
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -116,7 +116,7 @@ struct Trainer
|
||||||
{
|
{
|
||||||
u64 aiFlags;
|
u64 aiFlags;
|
||||||
const struct TrainerMon *party;
|
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
|
struct StartingStatuses startingStatus; // this trainer starts a battle with a given status. see include/constants/battle.h for values
|
||||||
u8 trainerClass;
|
u8 trainerClass;
|
||||||
u8 encounterMusic:7;
|
u8 encounterMusic:7;
|
||||||
|
|
|
||||||
|
|
@ -312,7 +312,7 @@ struct BerryPickingResults
|
||||||
|
|
||||||
struct PyramidBag
|
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
|
#if MAX_PYRAMID_BAG_ITEM_CAPACITY > 255
|
||||||
u16 quantity[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT];
|
u16 quantity[FRONTIER_LVL_MODE_COUNT][PYRAMID_BAG_ITEMS_COUNT];
|
||||||
#else
|
#else
|
||||||
|
|
@ -331,7 +331,7 @@ struct ApprenticeMon
|
||||||
{
|
{
|
||||||
u16 species;
|
u16 species;
|
||||||
enum Move moves[MAX_MON_MOVES];
|
enum Move moves[MAX_MON_MOVES];
|
||||||
u16 item;
|
enum Item item;
|
||||||
};
|
};
|
||||||
|
|
||||||
// This is for past players Apprentices or Apprentices received via Record Mix.
|
// This is for past players Apprentices or Apprentices received via Record Mix.
|
||||||
|
|
@ -670,7 +670,7 @@ struct WarpData
|
||||||
|
|
||||||
struct ItemSlot
|
struct ItemSlot
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
u16 quantity;
|
u16 quantity;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -822,7 +822,7 @@ struct RecordMixingGiftData
|
||||||
{
|
{
|
||||||
u8 unk0;
|
u8 unk0;
|
||||||
u8 quantity;
|
u8 quantity;
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
u8 filler4[8];
|
u8 filler4[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -851,7 +851,7 @@ struct Mail
|
||||||
/*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
/*0x12*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||||
/*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH];
|
/*0x1A*/ u8 trainerId[TRAINER_ID_LENGTH];
|
||||||
/*0x1E*/ u16 species;
|
/*0x1E*/ u16 species;
|
||||||
/*0x20*/ u16 itemId;
|
/*0x20*/ enum Item itemId;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DaycareMail
|
struct DaycareMail
|
||||||
|
|
@ -902,7 +902,7 @@ struct LilycoveLadyFavor
|
||||||
/*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
/*0x004*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||||
/*0x00C*/ u8 favorId;
|
/*0x00C*/ u8 favorId;
|
||||||
/*0x00D*/ //u8 padding1;
|
/*0x00D*/ //u8 padding1;
|
||||||
/*0x00E*/ u16 itemId;
|
/*0x00E*/ enum Item itemId;
|
||||||
/*0x010*/ u16 bestItem;
|
/*0x010*/ u16 bestItem;
|
||||||
/*0x012*/ u8 language;
|
/*0x012*/ u8 language;
|
||||||
/*0x013*/ //u8 padding2;
|
/*0x013*/ //u8 padding2;
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ typedef union // size = 0x24
|
||||||
/*0x02*/ u8 priceReduced;
|
/*0x02*/ u8 priceReduced;
|
||||||
/*0x03*/ u8 language;
|
/*0x03*/ u8 language;
|
||||||
/*0x04*/ u8 filler_04[2];
|
/*0x04*/ u8 filler_04[2];
|
||||||
/*0x06*/ u16 itemIds[SMARTSHOPPER_NUM_ITEMS];
|
/*0x06*/ enum Item itemIds[SMARTSHOPPER_NUM_ITEMS];
|
||||||
/*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS];
|
/*0x0C*/ u16 itemAmounts[SMARTSHOPPER_NUM_ITEMS];
|
||||||
/*0x12*/ mapsec_u8_t shopLocation;
|
/*0x12*/ mapsec_u8_t shopLocation;
|
||||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||||
|
|
@ -308,7 +308,7 @@ typedef union // size = 0x24
|
||||||
struct {
|
struct {
|
||||||
/*0x00*/ u8 kind;
|
/*0x00*/ u8 kind;
|
||||||
/*0x01*/ bool8 active;
|
/*0x01*/ bool8 active;
|
||||||
/*0x02*/ u16 item;
|
/*0x02*/ enum Item item;
|
||||||
/*0x04*/ mapsec_u8_t location;
|
/*0x04*/ mapsec_u8_t location;
|
||||||
/*0x05*/ u8 language;
|
/*0x05*/ u8 language;
|
||||||
/*0x06*/ u16 mapLayoutId;
|
/*0x06*/ u16 mapLayoutId;
|
||||||
|
|
@ -367,7 +367,7 @@ typedef union // size = 0x24
|
||||||
struct {
|
struct {
|
||||||
/*0x00*/ u8 kind;
|
/*0x00*/ u8 kind;
|
||||||
/*0x01*/ bool8 active;
|
/*0x01*/ bool8 active;
|
||||||
/*0x02*/ u16 item;
|
/*0x02*/ enum Item item;
|
||||||
/*0x04*/ u8 whichPrize;
|
/*0x04*/ u8 whichPrize;
|
||||||
/*0x05*/ u8 language;
|
/*0x05*/ u8 language;
|
||||||
/*0x06*/ u8 filler_06[13];
|
/*0x06*/ u8 filler_06[13];
|
||||||
|
|
@ -451,7 +451,7 @@ typedef union // size = 0x24
|
||||||
/*0x02*/ u16 stepsInBase;
|
/*0x02*/ u16 stepsInBase;
|
||||||
/*0x04*/ u8 baseOwnersName[PLAYER_NAME_LENGTH + 1];
|
/*0x04*/ u8 baseOwnersName[PLAYER_NAME_LENGTH + 1];
|
||||||
/*0x0C*/ u32 flags;
|
/*0x0C*/ u32 flags;
|
||||||
/*0x10*/ u16 item;
|
/*0x10*/ enum Item item;
|
||||||
/*0x12*/ u8 savedState;
|
/*0x12*/ u8 savedState;
|
||||||
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
/*0x13*/ u8 playerName[PLAYER_NAME_LENGTH + 1];
|
||||||
/*0x1B*/ u8 language;
|
/*0x1B*/ u8 language;
|
||||||
|
|
|
||||||
|
|
@ -9,27 +9,6 @@
|
||||||
#include "constants/item_effects.h"
|
#include "constants/item_effects.h"
|
||||||
#include "constants/hold_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
|
/* 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.
|
* 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_TECHNICAL_MACHINES = (0 FOREACH_TM(PLUS_ONE)),
|
||||||
NUM_HIDDEN_MACHINES = (0 FOREACH_HM(PLUS_ONE)),
|
NUM_HIDDEN_MACHINES = (0 FOREACH_HM(PLUS_ONE)),
|
||||||
};
|
};
|
||||||
|
|
||||||
#undef UNPACK_TM_HM_ENUM
|
#undef UNPACK_TM_HM_ENUM
|
||||||
|
|
||||||
enum PACKED ItemSortType
|
enum PACKED ItemSortType
|
||||||
|
|
@ -86,7 +64,7 @@ enum PACKED ItemSortType
|
||||||
|
|
||||||
typedef void (*ItemUseFunc)(u8);
|
typedef void (*ItemUseFunc)(u8);
|
||||||
|
|
||||||
struct Item
|
struct ItemInfo
|
||||||
{
|
{
|
||||||
u32 price;
|
u32 price;
|
||||||
u16 secondaryId;
|
u16 secondaryId;
|
||||||
|
|
@ -117,12 +95,12 @@ struct ALIGNED(2) BagPocket
|
||||||
|
|
||||||
struct TmHmIndexKey
|
struct TmHmIndexKey
|
||||||
{
|
{
|
||||||
enum TMHMItemId itemId:16;
|
enum Item itemId;
|
||||||
enum Move moveId;
|
enum Move moveId;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const u8 gQuestionMarksItemName[];
|
extern const u8 gQuestionMarksItemName[];
|
||||||
extern const struct Item gItemsInfo[];
|
extern const struct ItemInfo gItemsInfo[];
|
||||||
extern struct BagPocket gBagPockets[];
|
extern struct BagPocket gBagPockets[];
|
||||||
extern const struct TmHmIndexKey gTMHMItemMoveIds[];
|
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_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);
|
#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)
|
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)
|
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)
|
switch (move)
|
||||||
{
|
{
|
||||||
|
|
@ -191,7 +169,7 @@ static inline enum TMHMItemId GetTMHMItemIdFromMoveId(enum Move move)
|
||||||
#undef UNPACK_TM_MOVE_TO_ITEM_ID
|
#undef UNPACK_TM_MOVE_TO_ITEM_ID
|
||||||
#undef UNPACK_HM_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;
|
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);
|
void BagPocket_SetSlotData(struct BagPocket *pocket, u32 pocketPos, struct ItemSlot newSlot);
|
||||||
struct ItemSlot BagPocket_GetSlotData(struct BagPocket *pocket, u32 pocketPos);
|
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});
|
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 ApplyNewEncryptionKeyToBagItems(u32 newKey);
|
||||||
void SetBagItemsPointers(void);
|
void SetBagItemsPointers(void);
|
||||||
u8 *CopyItemName(u16 itemId, u8 *dst);
|
u8 *CopyItemName(enum Item itemId, u8 *dst);
|
||||||
u8 *CopyItemNameHandlePlural(u16 itemId, u8 *dst, u32 quantity);
|
u8 *CopyItemNameHandlePlural(enum Item itemId, u8 *dst, u32 quantity);
|
||||||
bool32 IsBagPocketNonEmpty(enum Pocket pocketId);
|
bool32 IsBagPocketNonEmpty(enum Pocket pocketId);
|
||||||
bool32 CheckBagHasItem(u16 itemId, u16 count);
|
bool32 CheckBagHasItem(enum Item itemId, u16 count);
|
||||||
bool32 HasAtLeastOneBerry(void);
|
bool32 HasAtLeastOneBerry(void);
|
||||||
bool32 HasAtLeastOnePokeBall(void);
|
bool32 HasAtLeastOnePokeBall(void);
|
||||||
bool32 CheckBagHasSpace(u16 itemId, u16 count);
|
bool32 CheckBagHasSpace(enum Item itemId, u16 count);
|
||||||
u32 GetFreeSpaceForItemInBag(u16 itemId);
|
u32 GetFreeSpaceForItemInBag(enum Item itemId);
|
||||||
bool32 AddBagItem(u16 itemId, u16 count);
|
bool32 AddBagItem(enum Item itemId, u16 count);
|
||||||
bool32 RemoveBagItem(u16 itemId, u16 count);
|
bool32 RemoveBagItem(enum Item itemId, u16 count);
|
||||||
void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count);
|
void RemoveBagItemFromSlot(struct BagPocket *pocket, u16 slotId, u16 count);
|
||||||
u8 CountUsedPCItemSlots(void);
|
u8 CountUsedPCItemSlots(void);
|
||||||
bool32 CheckPCHasItem(u16 itemId, u16 count);
|
bool32 CheckPCHasItem(enum Item itemId, u16 count);
|
||||||
bool32 AddPCItem(u16 itemId, u16 count);
|
bool32 AddPCItem(enum Item itemId, u16 count);
|
||||||
void RemovePCItem(u8 index, u16 count);
|
void RemovePCItem(u8 index, u16 count);
|
||||||
void CompactPCItems(void);
|
void CompactPCItems(void);
|
||||||
void SwapRegisteredBike(void);
|
void SwapRegisteredBike(void);
|
||||||
|
|
@ -247,26 +225,26 @@ void CompactItemsInBagPocket(enum Pocket pocketId);
|
||||||
void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to);
|
void MoveItemSlotInPocket(enum Pocket pocketId, u32 from, u32 to);
|
||||||
void MoveItemSlotInPC(struct ItemSlot *itemSlots, u32 from, u32 to);
|
void MoveItemSlotInPC(struct ItemSlot *itemSlots, u32 from, u32 to);
|
||||||
void ClearBag(void);
|
void ClearBag(void);
|
||||||
u16 CountTotalItemQuantityInBag(u16 itemId);
|
u16 CountTotalItemQuantityInBag(enum Item itemId);
|
||||||
bool32 AddPyramidBagItem(u16 itemId, u16 count);
|
bool32 AddPyramidBagItem(enum Item itemId, u16 count);
|
||||||
bool32 RemovePyramidBagItem(u16 itemId, u16 count);
|
bool32 RemovePyramidBagItem(enum Item itemId, u16 count);
|
||||||
const u8 *GetItemName(u16 itemId);
|
const u8 *GetItemName(enum Item itemId);
|
||||||
u32 GetItemPrice(u16 itemId);
|
u32 GetItemPrice(enum Item itemId);
|
||||||
const u8 *GetItemEffect(u32 itemId);
|
const u8 *GetItemEffect(enum Item itemId);
|
||||||
enum HoldEffect GetItemHoldEffect(u32 itemId);
|
enum HoldEffect GetItemHoldEffect(enum Item itemId);
|
||||||
u32 GetItemHoldEffectParam(u32 itemId);
|
u32 GetItemHoldEffectParam(enum Item itemId);
|
||||||
const u8 *GetItemDescription(u16 itemId);
|
const u8 *GetItemDescription(enum Item itemId);
|
||||||
u8 GetItemImportance(u16 itemId);
|
u8 GetItemImportance(enum Item itemId);
|
||||||
u8 GetItemConsumability(u16 itemId);
|
u8 GetItemConsumability(enum Item itemId);
|
||||||
enum Pocket GetItemPocket(u16 itemId);
|
enum Pocket GetItemPocket(enum Item itemId);
|
||||||
u8 GetItemType(u16 itemId);
|
u8 GetItemType(enum Item itemId);
|
||||||
ItemUseFunc GetItemFieldFunc(u16 itemId);
|
ItemUseFunc GetItemFieldFunc(enum Item itemId);
|
||||||
u8 GetItemBattleUsage(u16 itemId);
|
u8 GetItemBattleUsage(enum Item itemId);
|
||||||
u32 GetItemSecondaryId(u32 itemId);
|
u32 GetItemSecondaryId(enum Item itemId);
|
||||||
u32 GetItemFlingPower(u32 itemId);
|
u32 GetItemFlingPower(enum Item itemId);
|
||||||
u32 GetItemStatus1Mask(u16 itemId);
|
u32 GetItemStatus1Mask(enum Item itemId);
|
||||||
bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile volatile);
|
bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile volatile);
|
||||||
u32 GetItemSellPrice(u32 itemId);
|
u32 GetItemSellPrice(enum Item itemId);
|
||||||
bool32 IsHoldEffectChoice(enum HoldEffect holdEffect);
|
bool32 IsHoldEffectChoice(enum HoldEffect holdEffect);
|
||||||
|
|
||||||
#endif // GUARD_ITEM_H
|
#endif // GUARD_ITEM_H
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,9 @@ extern const struct SpriteTemplate gItemIconSpriteTemplate;
|
||||||
bool8 AllocItemIconTemporaryBuffers(void);
|
bool8 AllocItemIconTemporaryBuffers(void);
|
||||||
void FreeItemIconTemporaryBuffers(void);
|
void FreeItemIconTemporaryBuffers(void);
|
||||||
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
|
void CopyItemIconPicTo4x4Buffer(const void *src, void *dest);
|
||||||
u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, u16 itemId);
|
u8 AddItemIconSprite(u16 tilesTag, u16 paletteTag, enum Item 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);
|
||||||
const void *GetItemIconPic(u16 itemId);
|
const void *GetItemIconPic(enum Item itemId);
|
||||||
const u16 *GetItemIconPalette(u16 itemId);
|
const u16 *GetItemIconPalette(enum Item itemId);
|
||||||
|
|
||||||
#endif //GUARD_ITEM_ICON_H
|
#endif //GUARD_ITEM_ICON_H
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ void AddBagVisualSprite(u8 bagPocketId);
|
||||||
void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets);
|
void SetBagVisualPocketId(u8 bagPocketId, bool8 isSwitchingPockets);
|
||||||
void ShakeBagSprite(void);
|
void ShakeBagSprite(void);
|
||||||
void AddSwitchPocketRotatingBallSprite(s16 rotationDirection);
|
void AddSwitchPocketRotatingBallSprite(s16 rotationDirection);
|
||||||
void AddBagItemIconSprite(u16 itemId, u8 id);
|
void AddBagItemIconSprite(enum Item itemId, u8 id);
|
||||||
void RemoveBagItemIconSprite(u8 id);
|
void RemoveBagItemIconSprite(u8 id);
|
||||||
void CreateItemMenuSwapLine(void);
|
void CreateItemMenuSwapLine(void);
|
||||||
void SetItemMenuSwapLineInvisibility(bool8 invisible);
|
void SetItemMenuSwapLineInvisibility(bool8 invisible);
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ void ItemUseInBattle_PartyMenu(u8 taskId);
|
||||||
void ItemUseInBattle_PartyMenuChooseMove(u8 taskId);
|
void ItemUseInBattle_PartyMenuChooseMove(u8 taskId);
|
||||||
void Task_UseDigEscapeRopeOnField(u8 taskId);
|
void Task_UseDigEscapeRopeOnField(u8 taskId);
|
||||||
bool8 CanUseDigOrEscapeRopeOnCurMap(void);
|
bool8 CanUseDigOrEscapeRopeOnCurMap(void);
|
||||||
u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
|
u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId);
|
||||||
void FieldUseFunc_VsSeeker(u8 taskId);
|
void FieldUseFunc_VsSeeker(u8 taskId);
|
||||||
void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8 taskId);
|
void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8 taskId);
|
||||||
void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField);
|
void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField);
|
||||||
|
|
@ -61,6 +61,6 @@ enum {
|
||||||
};
|
};
|
||||||
|
|
||||||
bool32 CanThrowBall(void);
|
bool32 CanThrowBall(void);
|
||||||
bool32 CannotUseItemsInBattle(u16 itemId, struct Pokemon *mon);
|
bool32 CannotUseItemsInBattle(enum Item itemId, struct Pokemon *mon);
|
||||||
|
|
||||||
#endif // GUARD_ITEM_USE_H
|
#endif // GUARD_ITEM_USE_H
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ struct ListMenuTemplate
|
||||||
{
|
{
|
||||||
const struct ListMenuItem *items;
|
const struct ListMenuItem *items;
|
||||||
void (*moveCursorFunc)(s32 itemIndex, bool8 onInit, struct ListMenu *list);
|
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 totalItems:12;
|
||||||
u32 maxShowed:12;
|
u32 maxShowed:12;
|
||||||
u32 textNarrowWidth:8;
|
u32 textNarrowWidth:8;
|
||||||
|
|
|
||||||
|
|
@ -23,13 +23,13 @@ void ReadMail(struct Mail *mail, MainCallback exitCallback, bool8 hasText);
|
||||||
void ClearAllMail(void);
|
void ClearAllMail(void);
|
||||||
void ClearMail(struct Mail *mail);
|
void ClearMail(struct Mail *mail);
|
||||||
bool8 MonHasMail(struct Pokemon *mon);
|
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 SpeciesToMailSpecies(u16 species, u32 personality);
|
||||||
u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
|
u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
|
||||||
u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail);
|
u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail);
|
||||||
void TakeMailFromMon(struct Pokemon *mon);
|
void TakeMailFromMon(struct Pokemon *mon);
|
||||||
void ClearMailItemId(u8 mailId);
|
void ClearMailItemId(u8 mailId);
|
||||||
u8 TakeMailFromMonAndSave(struct Pokemon *mon);
|
u8 TakeMailFromMonAndSave(struct Pokemon *mon);
|
||||||
bool8 ItemIsMail(u16 itemId);
|
bool8 ItemIsMail(enum Item itemId);
|
||||||
|
|
||||||
#endif // GUARD_MAIL_H
|
#endif // GUARD_MAIL_H
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,8 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa
|
||||||
bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity, u16 max);
|
bool8 AdjustQuantityAccordingToDPadInput(s16 *quantity, u16 max);
|
||||||
u8 GetLRKeysPressed(void);
|
u8 GetLRKeysPressed(void);
|
||||||
u8 GetLRKeysPressedAndHeld(void);
|
u8 GetLRKeysPressedAndHeld(void);
|
||||||
bool8 IsHoldingItemAllowed(u16 itemId);
|
bool8 IsHoldingItemAllowed(enum Item itemId);
|
||||||
bool8 IsWritingMailAllowed(u16 itemId);
|
bool8 IsWritingMailAllowed(enum Item itemId);
|
||||||
bool8 MenuHelpers_IsLinkActive(void);
|
bool8 MenuHelpers_IsLinkActive(void);
|
||||||
bool8 MenuHelpers_ShouldWaitForLinkRecv(void);
|
bool8 MenuHelpers_ShouldWaitForLinkRecv(void);
|
||||||
void SetItemListPerPageCount(struct ItemSlot *slots, u8 slotsCount, u8 *pageItems, u8 *totalItems, u8 maxPerPage);
|
void SetItemListPerPageCount(struct ItemSlot *slots, u8 slotsCount, u8 *pageItems, u8 *totalItems, u8 maxPerPage);
|
||||||
|
|
|
||||||
|
|
@ -181,6 +181,6 @@ enum ItemObtainFlags
|
||||||
FLAG_GET_ITEM_OBTAINED,
|
FLAG_GET_ITEM_OBTAINED,
|
||||||
FLAG_SET_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
|
#endif // GUARD_OVERWORLD_H
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task);
|
||||||
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task);
|
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task);
|
||||||
void ItemUseCB_PPRecovery(u8 taskId, TaskFunc task);
|
void ItemUseCB_PPRecovery(u8 taskId, TaskFunc task);
|
||||||
void ItemUseCB_PPUp(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 MonKnowsMove(struct Pokemon *mon, enum Move move);
|
||||||
bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move);
|
bool8 BoxMonKnowsMove(struct BoxPokemon *boxMon, enum Move move);
|
||||||
void ItemUseCB_TMHM(u8 taskId, TaskFunc task);
|
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_RotomCatalog(u8 taskId, TaskFunc task);
|
||||||
void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task);
|
void ItemUseCB_ZygardeCube(u8 taskId, TaskFunc task);
|
||||||
void ItemUseCB_Fusion(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_PartyMenuFromStartMenu(void);
|
||||||
void CB2_ChooseMonToGiveItem(void);
|
void CB2_ChooseMonToGiveItem(void);
|
||||||
void ChooseMonToGiveMailFromMailbox(void);
|
void ChooseMonToGiveMailFromMailbox(void);
|
||||||
|
|
|
||||||
|
|
@ -342,7 +342,7 @@ struct BattlePokemon
|
||||||
/*0x06*/ u16 speed;
|
/*0x06*/ u16 speed;
|
||||||
/*0x08*/ u16 spAttack;
|
/*0x08*/ u16 spAttack;
|
||||||
/*0x0A*/ u16 spDefense;
|
/*0x0A*/ u16 spDefense;
|
||||||
/*0x0C*/ u16 moves[MAX_MON_MOVES];
|
/*0x0C*/ enum Move moves[MAX_MON_MOVES];
|
||||||
/*0x14*/ u32 hpIV:5;
|
/*0x14*/ u32 hpIV:5;
|
||||||
/*0x14*/ u32 attackIV:5;
|
/*0x14*/ u32 attackIV:5;
|
||||||
/*0x15*/ u32 defenseIV:5;
|
/*0x15*/ u32 defenseIV:5;
|
||||||
|
|
@ -358,7 +358,7 @@ struct BattlePokemon
|
||||||
/*0x2B*/ u8 level;
|
/*0x2B*/ u8 level;
|
||||||
/*0x2C*/ u8 friendship;
|
/*0x2C*/ u8 friendship;
|
||||||
/*0x2D*/ u16 maxHP;
|
/*0x2D*/ u16 maxHP;
|
||||||
/*0x2F*/ u16 item;
|
/*0x2F*/ enum Item item;
|
||||||
/*0x31*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
/*0x31*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
|
||||||
/*0x3C*/ u8 ppBonuses;
|
/*0x3C*/ u8 ppBonuses;
|
||||||
/*0x3D*/ u8 otName[PLAYER_NAME_LENGTH + 1];
|
/*0x3D*/ u8 otName[PLAYER_NAME_LENGTH + 1];
|
||||||
|
|
@ -406,8 +406,8 @@ struct SpeciesInfo /*0xC4*/
|
||||||
u16 evYield_SpAttack:2;
|
u16 evYield_SpAttack:2;
|
||||||
u16 evYield_SpDefense:2;
|
u16 evYield_SpDefense:2;
|
||||||
u16 padding2:4;
|
u16 padding2:4;
|
||||||
u16 itemCommon;
|
enum Item itemCommon;
|
||||||
u16 itemRare;
|
enum Item itemRare;
|
||||||
u8 genderRatio;
|
u8 genderRatio;
|
||||||
u8 eggCycles;
|
u8 eggCycles;
|
||||||
u8 friendship;
|
u8 friendship;
|
||||||
|
|
@ -638,7 +638,7 @@ enum FusionExtraMoveHandling
|
||||||
struct Fusion
|
struct Fusion
|
||||||
{
|
{
|
||||||
u16 fusionStorageIndex;
|
u16 fusionStorageIndex;
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
u16 targetSpecies1;
|
u16 targetSpecies1;
|
||||||
u16 targetSpecies2;
|
u16 targetSpecies2;
|
||||||
u16 fusingIntoMon;
|
u16 fusingIntoMon;
|
||||||
|
|
@ -807,11 +807,11 @@ void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
|
||||||
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
|
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
|
||||||
void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst);
|
void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst);
|
||||||
void CopyPartyMonToBattleData(u32 battler, u32 partyIndex);
|
void CopyPartyMonToBattleData(u32 battler, u32 partyIndex);
|
||||||
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
|
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex);
|
||||||
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 usedByAI);
|
bool8 PokemonUseItemEffects(struct Pokemon *mon, enum Item item, u8 partyIndex, u8 moveIndex, u8 usedByAI);
|
||||||
bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battler);
|
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);
|
||||||
u8 *UseStatIncreaseItem(u16 itemId);
|
u8 *UseStatIncreaseItem(enum Item itemId);
|
||||||
u8 GetNature(struct Pokemon *mon);
|
u8 GetNature(struct Pokemon *mon);
|
||||||
u8 GetNatureFromPersonality(u32 personality);
|
u8 GetNatureFromPersonality(u32 personality);
|
||||||
u32 GetGMaxTargetSpecies(u32 species);
|
u32 GetGMaxTargetSpecies(u32 species);
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
#ifndef GUARD_SCRIPT_POKEMON_UTIL_H
|
#ifndef GUARD_SCRIPT_POKEMON_UTIL_H
|
||||||
#define 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);
|
u8 ScriptGiveEgg(u16 species);
|
||||||
void CreateScriptedWildMon(u16 species, u8 level, u16 item);
|
void CreateScriptedWildMon(u16 species, u8 level, enum Item item);
|
||||||
void CreateScriptedDoubleWildMon(u16 species, u8 level, u16 item, u16 species2, u8 level2, u16 item2);
|
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 ScriptSetMonMoveSlot(u8 monIndex, enum Move move, u8 slot);
|
||||||
void ReducePlayerPartyToSelectedMons(void);
|
void ReducePlayerPartyToSelectedMons(void);
|
||||||
void HealPlayerParty(void);
|
void HealPlayerParty(void);
|
||||||
|
|
|
||||||
|
|
@ -1194,7 +1194,7 @@ struct MoveContext
|
||||||
|
|
||||||
struct ItemContext
|
struct ItemContext
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
u16 explicitItemId:1;
|
u16 explicitItemId:1;
|
||||||
u16 partyIndex;
|
u16 partyIndex;
|
||||||
u16 explicitPartyIndex:1;
|
u16 explicitPartyIndex:1;
|
||||||
|
|
|
||||||
|
|
@ -28,14 +28,14 @@ void ObjectEventInteractionPickApricornTree(void)
|
||||||
{
|
{
|
||||||
u32 id = GetObjectEventApricornTreeId(gSelectedObjectEvent);
|
u32 id = GetObjectEventApricornTreeId(gSelectedObjectEvent);
|
||||||
enum ApricornType apricorn = GetApricornTypeByApricornTreeId(id);
|
enum ApricornType apricorn = GetApricornTypeByApricornTreeId(id);
|
||||||
gSpecialVar_0x8006 = CheckBagHasSpace(apricorn, GetApricornCountByApricornTreeId(id));
|
gSpecialVar_0x8006 = CheckBagHasSpace((enum Item)apricorn, GetApricornCountByApricornTreeId(id));
|
||||||
|
|
||||||
if (gSpecialVar_0x8006)
|
if (gSpecialVar_0x8006)
|
||||||
{
|
{
|
||||||
AddBagItem(apricorn, GetApricornCountByApricornTreeId(id));
|
AddBagItem((enum Item)apricorn, GetApricornCountByApricornTreeId(id));
|
||||||
SetApricornTreePicked(id);
|
SetApricornTreePicked(id);
|
||||||
}
|
}
|
||||||
gSpecialVar_Result = GetItemPocket(apricorn);
|
gSpecialVar_Result = GetItemPocket((enum Item)apricorn);
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ApricornType GetApricornTypeByApricornTreeId(u32 id)
|
enum ApricornType GetApricornTypeByApricornTreeId(u32 id)
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ bool32 ShouldUseItem(u32 battler)
|
||||||
|
|
||||||
for (u32 itemIndex = 0; itemIndex < MAX_TRAINER_ITEMS; itemIndex++)
|
for (u32 itemIndex = 0; itemIndex < MAX_TRAINER_ITEMS; itemIndex++)
|
||||||
{
|
{
|
||||||
u16 item;
|
enum Item item;
|
||||||
const u8 *itemEffects;
|
const u8 *itemEffects;
|
||||||
u8 battlerSide;
|
u8 battlerSide;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5160,7 +5160,7 @@ static s32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, enum Move move
|
||||||
ADJUST_SCORE(WEAK_EFFECT);
|
ADJUST_SCORE(WEAK_EFFECT);
|
||||||
if (aiData->abilities[battlerAtk] == ABILITY_RIPEN)
|
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);
|
u32 toHeal = (GetItemHoldEffectParam(item) == 10) ? 10 : gBattleMons[battlerAtk].maxHP / GetItemHoldEffectParam(item);
|
||||||
|
|
||||||
if (IsStatBoostingBerry(item) && aiData->hpPercents[battlerAtk] > 60)
|
if (IsStatBoostingBerry(item) && aiData->hpPercents[battlerAtk] > 60)
|
||||||
|
|
|
||||||
|
|
@ -1612,7 +1612,7 @@ static u32 GetSwitchinRecurringDamage(u32 battler)
|
||||||
static u32 GetSwitchinStatusDamage(u32 battler)
|
static u32 GetSwitchinStatusDamage(u32 battler)
|
||||||
{
|
{
|
||||||
u8 tSpikesLayers = gSideTimers[GetBattlerSide(battler)].toxicSpikesAmount;
|
u8 tSpikesLayers = gSideTimers[GetBattlerSide(battler)].toxicSpikesAmount;
|
||||||
u16 heldItemEffect = gAiLogicData->holdEffects[battler];
|
enum HoldEffect heldItemEffect = gAiLogicData->holdEffects[battler];
|
||||||
u32 status = gBattleMons[battler].status1;
|
u32 status = gBattleMons[battler].status1;
|
||||||
enum Ability ability = gAiLogicData->abilities[battler];
|
enum Ability ability = gAiLogicData->abilities[battler];
|
||||||
u32 maxHP = gBattleMons[battler].maxHP;
|
u32 maxHP = gBattleMons[battler].maxHP;
|
||||||
|
|
|
||||||
|
|
@ -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 \
|
#define BATTLE_TYPE_CANT_KNOCK_OFF (BATTLE_TYPE_EREADER_TRAINER | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_LINK \
|
||||||
| BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE \
|
| BATTLE_TYPE_RECORDED_LINK | BATTLE_TYPE_SECRET_BASE \
|
||||||
| (B_TRAINERS_KNOCK_OFF_ITEMS == TRUE ? BATTLE_TYPE_TRAINER : 0))
|
| (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)
|
if (item == ITEM_NONE)
|
||||||
return FALSE;
|
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
|
// 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)
|
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)
|
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++)
|
for (u32 recycleIndex = 0; recycleIndex < ARRAY_COUNT(sRecycleEncouragedItems); recycleIndex++)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -231,7 +231,7 @@ static u32 GetNextBall(u32 ballId)
|
||||||
|
|
||||||
static void HandleInputChooseAction(u32 battler)
|
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_HEALTHBOX, 7, 1);
|
||||||
DoBounceEffect(battler, BOUNCE_MON, 7, 1);
|
DoBounceEffect(battler, BOUNCE_MON, 7, 1);
|
||||||
|
|
|
||||||
|
|
@ -1050,7 +1050,7 @@ void BtlController_EmitPrintSelectionString(u32 battler, u32 bufferId, enum Stri
|
||||||
}
|
}
|
||||||
|
|
||||||
// itemId only relevant for B_ACTION_USE_ITEM
|
// 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[0] = CONTROLLER_CHOOSEACTION;
|
||||||
gBattleResources->transferBuffer[1] = action;
|
gBattleResources->transferBuffer[1] = action;
|
||||||
|
|
|
||||||
|
|
@ -921,7 +921,7 @@ static void PutAiInfoText(struct BattleDebugMenu *data)
|
||||||
{
|
{
|
||||||
enum Ability ability = gAiLogicData->abilities[i];
|
enum Ability ability = gAiLogicData->abilities[i];
|
||||||
enum HoldEffect holdEffect = gAiLogicData->holdEffects[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;
|
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, gAbilitiesInfo[ability].name, x, 0, 0, NULL);
|
||||||
AddTextPrinterParameterized(data->aiMovesWindowId, FONT_SMALL, GetItemName(item), x, 15, 0, NULL);
|
AddTextPrinterParameterized(data->aiMovesWindowId, FONT_SMALL, GetItemName(item), x, 15, 0, NULL);
|
||||||
|
|
|
||||||
|
|
@ -5685,7 +5685,7 @@ static void RestoreDomePlayerPartyHeldItems(void)
|
||||||
for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++)
|
for (i = 0; i < DOME_BATTLE_PARTY_SIZE; i++)
|
||||||
{
|
{
|
||||||
int playerMonId = gSaveBlock2Ptr->frontier.selectedPartyMons[gSelectedOrderFromParty[i] - 1] - 1;
|
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);
|
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ enum ItemEffect TryHandleSeed(u32 battler, u32 terrainFlag, enum Stat statId)
|
||||||
return ITEM_NO_EFFECT;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
|
|
||||||
|
|
@ -184,7 +184,7 @@ static enum ItemEffect TryConsumeMirrorHerb(u32 battler)
|
||||||
return effect;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
|
|
||||||
|
|
@ -232,7 +232,7 @@ static enum ItemEffect TryAirBalloon(u32 battler, ActivationTiming timing)
|
||||||
return effect;
|
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 ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
enum Ability ability = GetBattlerAbility(battlerAtk);
|
enum Ability ability = GetBattlerAbility(battlerAtk);
|
||||||
|
|
@ -330,7 +330,7 @@ static enum ItemEffect TryAbsorbBulb(u32 battlerDef)
|
||||||
return effect;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
|
|
||||||
|
|
@ -352,7 +352,7 @@ static enum ItemEffect TryJabocaBerry(u32 battlerDef, u32 battlerAtk, u32 item)
|
||||||
return effect;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
|
|
||||||
|
|
@ -557,7 +557,7 @@ static enum ItemEffect TryLifeOrb(u32 battlerAtk)
|
||||||
return effect;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
|
|
||||||
|
|
@ -578,7 +578,7 @@ static enum ItemEffect TryStickyBarbOnTargetHit(u32 battlerDef, u32 battlerAtk,
|
||||||
return effect;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
|
|
||||||
|
|
@ -811,7 +811,7 @@ enum HealAmount
|
||||||
PERCENT_HEAL_AMOUNT,
|
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 ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
enum Ability ability = GetBattlerAbility(battler);
|
enum Ability ability = GetBattlerAbility(battler);
|
||||||
|
|
@ -837,7 +837,7 @@ static u32 ItemHealHp(u32 battler, u32 itemId, enum HealAmount percentHeal)
|
||||||
return effect;
|
return effect;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 ItemRestorePp(u32 battler, u32 itemId)
|
static u32 ItemRestorePp(u32 battler, enum Item itemId)
|
||||||
{
|
{
|
||||||
enum ItemEffect effect = ITEM_NO_EFFECT;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
struct Pokemon *mon = GetBattlerMon(battler);
|
struct Pokemon *mon = GetBattlerMon(battler);
|
||||||
|
|
@ -877,7 +877,7 @@ static u32 ItemRestorePp(u32 battler, u32 itemId)
|
||||||
return effect;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
u32 hpFraction = B_CONFUSE_BERRIES_HEAL >= GEN_7 ? 4 : 2;
|
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;
|
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 ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
enum Ability ability = GetBattlerAbility(battler);
|
enum Ability ability = GetBattlerAbility(battler);
|
||||||
|
|
@ -919,7 +919,7 @@ static enum ItemEffect StatRaiseBerry(u32 battler, u32 itemId, enum Stat statId)
|
||||||
return effect;
|
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;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
|
|
||||||
|
|
@ -935,7 +935,7 @@ static enum ItemEffect CriticalHitRatioUp(u32 battler, u32 itemId)
|
||||||
return effect;
|
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 ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
enum Stat stat;
|
enum Stat stat;
|
||||||
|
|
@ -973,7 +973,7 @@ static enum ItemEffect RandomStatRaiseBerry(u32 battler, u32 itemId)
|
||||||
return effect;
|
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;
|
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 ItemBattleEffects(u32 itemBattler, u32 battler, enum HoldEffect holdEffect, ActivationTiming timing)
|
||||||
{
|
{
|
||||||
enum ItemEffect effect = ITEM_NO_EFFECT;
|
enum ItemEffect effect = ITEM_NO_EFFECT;
|
||||||
u32 item;
|
enum Item item;
|
||||||
|
|
||||||
if (timing == IsOnBerryActivation || timing == IsOnFlingActivation)
|
if (timing == IsOnBerryActivation || timing == IsOnFlingActivation)
|
||||||
item = gLastUsedItem;
|
item = gLastUsedItem;
|
||||||
|
|
|
||||||
|
|
@ -1549,7 +1549,7 @@ static enum MoveEndResult MoveEnd_ThirdMoveBlock(void)
|
||||||
case EFFECT_NATURAL_GIFT:
|
case EFFECT_NATURAL_GIFT:
|
||||||
if (!gBattleStruct->unableToUseMove && GetItemPocket(gBattleMons[gBattlerAttacker].item) == POCKET_BERRIES)
|
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;
|
gBattleMons[gBattlerAttacker].item = ITEM_NONE;
|
||||||
gBattleStruct->battlerState[gBattlerAttacker].canPickupItem = TRUE;
|
gBattleStruct->battlerState[gBattlerAttacker].canPickupItem = TRUE;
|
||||||
GetBattlerPartyState(gBattlerAttacker)->usedHeldItem = item;
|
GetBattlerPartyState(gBattlerAttacker)->usedHeldItem = item;
|
||||||
|
|
|
||||||
|
|
@ -1180,7 +1180,7 @@ static void UpdatePyramidLightRadius(void)
|
||||||
static void ClearPyramidPartyHeldItems(void)
|
static void ClearPyramidPartyHeldItems(void)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
u16 item = 0;
|
enum Item item = ITEM_NONE;
|
||||||
|
|
||||||
for (i = 0; i < PARTY_SIZE; i++)
|
for (i = 0; i < PARTY_SIZE; i++)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,8 @@ static void ShowNumToToss(void);
|
||||||
static void CloseBattlePyramidBagTextWindow(void);
|
static void CloseBattlePyramidBagTextWindow(void);
|
||||||
static bool8 LoadPyramidBagGfx(void);
|
static bool8 LoadPyramidBagGfx(void);
|
||||||
static bool8 LoadPyramidBagMenu(void);
|
static bool8 LoadPyramidBagMenu(void);
|
||||||
static void ShowItemIcon(u16, u8);
|
static void ShowItemIcon(enum Item itemId, bool8 isAlt);
|
||||||
static void CopyBagItemName(u8 *, u16);
|
static void CopyBagItemName(u8 *dst, enum Item itemId);
|
||||||
static void FreeItemIconSpriteByAltId(u8);
|
static void FreeItemIconSpriteByAltId(u8);
|
||||||
static void PrintItemDescription(s32);
|
static void PrintItemDescription(s32);
|
||||||
static void PrintSelectorArrowAtPos(u8, u8);
|
static void PrintSelectorArrowAtPos(u8, u8);
|
||||||
|
|
@ -615,7 +615,7 @@ static void SetBagItemsListTemplate(void)
|
||||||
gMultiuseListMenuTemplate.maxShowed = gPyramidBagMenu->listMenuMaxShown;
|
gMultiuseListMenuTemplate.maxShowed = gPyramidBagMenu->listMenuMaxShown;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void CopyBagItemName(u8 *dst, u16 itemId)
|
static void CopyBagItemName(u8 *dst, enum Item itemId)
|
||||||
{
|
{
|
||||||
if (GetItemPocket(itemId) == POCKET_BERRIES)
|
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 itemSpriteId;
|
||||||
u8 *spriteId = &gPyramidBagMenu->spriteIds[isAlt + PBAG_SPRITE_ITEM_ICON];
|
u8 *spriteId = &gPyramidBagMenu->spriteIds[isAlt + PBAG_SPRITE_ITEM_ICON];
|
||||||
|
|
|
||||||
|
|
@ -2327,7 +2327,7 @@ void StealTargetItem(u8 battlerStealer, u8 itemBattler)
|
||||||
MarkBattlerForControllerExec(battlerStealer);
|
MarkBattlerForControllerExec(battlerStealer);
|
||||||
}
|
}
|
||||||
|
|
||||||
RecordItemEffectBattle(itemBattler, ITEM_NONE);
|
RecordItemEffectBattle(itemBattler, HOLD_EFFECT_NONE);
|
||||||
CheckSetUnburden(itemBattler);
|
CheckSetUnburden(itemBattler);
|
||||||
|
|
||||||
BtlController_EmitSetMonData(itemBattler, B_COMM_TO_CONTROLLER, REQUEST_HELDITEM_BATTLE, 0, sizeof(gBattleMons[itemBattler].item), &gBattleMons[itemBattler].item); // remove target item
|
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)
|
static u32 GetMonHoldEffect(struct Pokemon *mon)
|
||||||
{
|
{
|
||||||
enum HoldEffect holdEffect;
|
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 (item == ITEM_ENIGMA_BERRY_E_READER)
|
||||||
#if FREE_ENIGMA_BERRY == FALSE
|
#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
|
if (GetItemPocket(itemId) == POCKET_BERRIES
|
||||||
&& GetBattlerAbility(battler) == ABILITY_CHEEK_POUCH
|
&& GetBattlerAbility(battler) == ABILITY_CHEEK_POUCH
|
||||||
|
|
@ -6492,7 +6492,7 @@ static void Cmd_removeitem(void)
|
||||||
CMD_ARGS(u8 battler);
|
CMD_ARGS(u8 battler);
|
||||||
|
|
||||||
u32 battler;
|
u32 battler;
|
||||||
u16 itemId = 0;
|
enum Item itemId = 0;
|
||||||
|
|
||||||
if (gBattleScripting.overrideBerryRequirements)
|
if (gBattleScripting.overrideBerryRequirements)
|
||||||
{
|
{
|
||||||
|
|
@ -11999,7 +11999,7 @@ void BS_CheckParentalBondCounter(void)
|
||||||
void BS_JumpIfCantLoseItem(void)
|
void BS_JumpIfCantLoseItem(void)
|
||||||
{
|
{
|
||||||
NATIVE_ARGS(const u8 *jumpInstr);
|
NATIVE_ARGS(const u8 *jumpInstr);
|
||||||
u32 item = gBattleMons[gBattlerTarget].item;
|
enum Item item = gBattleMons[gBattlerTarget].item;
|
||||||
|
|
||||||
if (item == ITEM_NONE || !CanBattlerGetOrLoseItem(gBattlerTarget, gBattlerAttacker, item))
|
if (item == ITEM_NONE || !CanBattlerGetOrLoseItem(gBattlerTarget, gBattlerAttacker, item))
|
||||||
gBattlescriptCurrInstr = cmd->jumpInstr;
|
gBattlescriptCurrInstr = cmd->jumpInstr;
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ static void HandleSpecialTrainerBattleEnd(void)
|
||||||
case SPECIAL_BATTLE_SECRET_BASE:
|
case SPECIAL_BATTLE_SECRET_BASE:
|
||||||
for (i = 0; i < PARTY_SIZE; i++)
|
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);
|
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &itemBefore);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
@ -76,7 +76,7 @@ void DoSpecialTrainerBattle(void)
|
||||||
case SPECIAL_BATTLE_SECRET_BASE:
|
case SPECIAL_BATTLE_SECRET_BASE:
|
||||||
for (i = 0; i < PARTY_SIZE; i++)
|
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);
|
SetMonData(&gSaveBlock1Ptr->playerParty[i], MON_DATA_HELD_ITEM, &itemBefore);
|
||||||
}
|
}
|
||||||
CreateTask(Task_StartBattleAfterTransition, 1);
|
CreateTask(Task_StartBattleAfterTransition, 1);
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@
|
||||||
|
|
||||||
static bool32 TryRemoveScreens(u32 battler);
|
static bool32 TryRemoveScreens(u32 battler);
|
||||||
static bool32 IsUnnerveAbilityOnOpposingSide(u32 battler);
|
static bool32 IsUnnerveAbilityOnOpposingSide(u32 battler);
|
||||||
static u32 GetFlingPowerFromItemId(u32 itemId);
|
static u32 GetFlingPowerFromItemId(enum Item itemId);
|
||||||
static void SetRandomMultiHitCounter();
|
static void SetRandomMultiHitCounter();
|
||||||
static bool32 IsNonVolatileStatusBlocked(u32 battlerDef, enum Ability abilityDef, bool32 abilityAffected, const u8 *battleScript, enum ResultOption option);
|
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);
|
static bool32 CanSleepDueToSleepClause(u32 battlerAtk, u32 battlerDef, enum ResultOption option);
|
||||||
|
|
@ -341,7 +341,7 @@ static bool32 ShouldTeraShellDistortTypeMatchups(enum Move move, u32 battlerDef,
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 IsUnnerveBlocked(u32 battler, u32 itemId)
|
bool32 IsUnnerveBlocked(u32 battler, enum Item itemId)
|
||||||
{
|
{
|
||||||
if (GetItemPocket(itemId) != POCKET_BERRIES)
|
if (GetItemPocket(itemId) != POCKET_BERRIES)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -7235,7 +7235,7 @@ bool32 CanBeConfused(u32 battler)
|
||||||
}
|
}
|
||||||
|
|
||||||
// second argument is 1/X of current hp compared to max hp
|
// 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))
|
if (!IsBattlerAlive(battler))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -10540,7 +10540,7 @@ bool32 DoBattlersShareType(u32 battler1, u32 battler2)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 CanBattlerGetOrLoseItem(u32 fromBattler, u32 battler, u16 itemId)
|
bool32 CanBattlerGetOrLoseItem(u32 fromBattler, u32 battler, enum Item itemId)
|
||||||
{
|
{
|
||||||
u16 species = gBattleMons[fromBattler].species;
|
u16 species = gBattleMons[fromBattler].species;
|
||||||
enum HoldEffect holdEffect = GetItemHoldEffect(itemId); // Raw hold effect
|
enum HoldEffect holdEffect = GetItemHoldEffect(itemId); // Raw hold effect
|
||||||
|
|
@ -10878,7 +10878,7 @@ enum DamageCategory GetCategoryBasedOnStats(u32 battler)
|
||||||
return DAMAGE_CATEGORY_PHYSICAL;
|
return DAMAGE_CATEGORY_PHYSICAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u32 GetFlingPowerFromItemId(u32 itemId)
|
static u32 GetFlingPowerFromItemId(enum Item itemId)
|
||||||
{
|
{
|
||||||
if (gItemsInfo[itemId].pocket == POCKET_TM_HM)
|
if (gItemsInfo[itemId].pocket == POCKET_TM_HM)
|
||||||
{
|
{
|
||||||
|
|
@ -10893,7 +10893,7 @@ static u32 GetFlingPowerFromItemId(u32 itemId)
|
||||||
|
|
||||||
bool32 CanFling(u32 battlerAtk, u32 battlerDef)
|
bool32 CanFling(u32 battlerAtk, u32 battlerDef)
|
||||||
{
|
{
|
||||||
u16 item = gBattleMons[battlerAtk].item;
|
enum Item item = gBattleMons[battlerAtk].item;
|
||||||
|
|
||||||
if (item == ITEM_NONE
|
if (item == ITEM_NONE
|
||||||
|| (GetConfig(CONFIG_KLUTZ_FLING_INTERACTION) >= GEN_5 && GetBattlerAbility(battlerAtk) == ABILITY_KLUTZ)
|
|| (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);
|
enum BattleSide stealerSide = GetBattlerSide(battlerStealing);
|
||||||
|
|
||||||
|
|
@ -11014,7 +11014,7 @@ bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item)
|
||||||
return TRUE;
|
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
|
// 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)
|
// 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.
|
// 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
|
if (!gBattleStruct->itemLost[B_SIDE_PLAYER][gBattlerPartyIndexes[battler]].stolen
|
||||||
&& gBattleStruct->changedItems[battler] == ITEM_NONE
|
&& 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;
|
bool32 statusChanged = FALSE;
|
||||||
const u8 *effect = GetItemEffect(itemId);
|
const u8 *effect = GetItemEffect(itemId);
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ bool32 CanUseZMove(u32 battler)
|
||||||
|
|
||||||
enum Move GetUsableZMove(u32 battler, enum Move move)
|
enum Move GetUsableZMove(u32 battler, enum Move move)
|
||||||
{
|
{
|
||||||
u32 item = gBattleMons[battler].item;
|
enum Item item = gBattleMons[battler].item;
|
||||||
enum HoldEffect holdEffect = GetBattlerHoldEffectIgnoreNegation(battler);
|
enum HoldEffect holdEffect = GetBattlerHoldEffectIgnoreNegation(battler);
|
||||||
|
|
||||||
if (holdEffect == HOLD_EFFECT_Z_CRYSTAL)
|
if (holdEffect == HOLD_EFFECT_Z_CRYSTAL)
|
||||||
|
|
@ -165,7 +165,7 @@ void ActivateZMove(u32 battler)
|
||||||
|
|
||||||
bool32 IsViableZMove(u32 battler, enum Move move)
|
bool32 IsViableZMove(u32 battler, enum Move move)
|
||||||
{
|
{
|
||||||
u32 item;
|
enum Item item;
|
||||||
enum HoldEffect holdEffect = GetBattlerHoldEffectIgnoreNegation(battler);
|
enum HoldEffect holdEffect = GetBattlerHoldEffectIgnoreNegation(battler);
|
||||||
int moveSlotIndex;
|
int moveSlotIndex;
|
||||||
|
|
||||||
|
|
@ -226,7 +226,7 @@ bool32 TryChangeZTrigger(u32 battler, u32 moveIndex)
|
||||||
return viableZMove;
|
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;
|
u32 i;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
#include "constants/event_object_movement.h"
|
#include "constants/event_object_movement.h"
|
||||||
#include "constants/items.h"
|
#include "constants/items.h"
|
||||||
|
|
||||||
static u16 BerryTypeToItemId(u16 berry);
|
static enum Item BerryTypeToItemId(u16 berry);
|
||||||
static u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
|
static u8 BerryTreeGetNumStagesWatered(struct BerryTree *tree);
|
||||||
static u8 GetNumStagesWateredByBerryTreeId(u8 id);
|
static u8 GetNumStagesWateredByBerryTreeId(u8 id);
|
||||||
static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
|
static u8 CalcBerryYieldInternal(u16 max, u16 min, u8 water);
|
||||||
|
|
@ -2000,7 +2000,7 @@ u8 GetMulchByBerryTreeId(u8 id)
|
||||||
return gSaveBlock1Ptr->berryTrees[id].mulch;
|
return gSaveBlock1Ptr->berryTrees[id].mulch;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 ItemIdToBerryType(u16 item)
|
u8 ItemIdToBerryType(enum Item item)
|
||||||
{
|
{
|
||||||
u16 berry = item - FIRST_BERRY_INDEX;
|
u16 berry = item - FIRST_BERRY_INDEX;
|
||||||
|
|
||||||
|
|
@ -2010,9 +2010,9 @@ u8 ItemIdToBerryType(u16 item)
|
||||||
return ITEM_TO_BERRY(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)
|
if (item > LAST_BERRY_INDEX - FIRST_BERRY_INDEX)
|
||||||
return FIRST_BERRY_INDEX;
|
return FIRST_BERRY_INDEX;
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ enum {
|
||||||
|
|
||||||
struct BlenderBerry
|
struct BlenderBerry
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
u8 name[BERRY_NAME_LENGTH + 1];
|
u8 name[BERRY_NAME_LENGTH + 1];
|
||||||
u8 flavors[FLAVOR_COUNT + 1]; // 5 flavors, + 1 for feel
|
u8 flavors[FLAVOR_COUNT + 1]; // 5 flavors, + 1 for feel
|
||||||
};
|
};
|
||||||
|
|
@ -218,7 +218,7 @@ static bool8 UpdateBlenderLandScreenShake(void);
|
||||||
static void SetPlayerIdMaps(void);
|
static void SetPlayerIdMaps(void);
|
||||||
static void PrintPlayerNames(void);
|
static void PrintPlayerNames(void);
|
||||||
static void InitBlenderBgs(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 Blender_AddTextPrinter(u8, const u8 *, u8, u8, s32, s32);
|
||||||
static void ResetLinkCmds(void);
|
static void ResetLinkCmds(void);
|
||||||
static void CreateParticleSprites(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;
|
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 berryId = ITEM_TO_BERRY(itemId) - 1;
|
||||||
u32 spriteId = CreateSpinningBerrySprite(berryId, 0, 80, playerId & 1);
|
u32 spriteId = CreateSpinningBerrySprite(berryId, 0, 80, playerId & 1);
|
||||||
|
|
@ -1196,7 +1196,7 @@ static void CreateBerrySprite(u32 itemId, u32 playerId)
|
||||||
berryId);
|
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));
|
const struct Berry *berryInfo = GetBerryInfo(ITEM_TO_BERRY(itemId));
|
||||||
|
|
||||||
|
|
@ -3195,7 +3195,7 @@ static void SpriteCB_ScoreSymbolBest(struct Sprite *sprite)
|
||||||
DestroySprite(sprite);
|
DestroySprite(sprite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void SetPlayerBerryData(u8 playerId, u16 itemId)
|
static void SetPlayerBerryData(u8 playerId, enum Item itemId)
|
||||||
{
|
{
|
||||||
sBerryBlender->chosenItemId[playerId] = itemId;
|
sBerryBlender->chosenItemId[playerId] = itemId;
|
||||||
ConvertItemToBlenderBerry(&sBerryBlender->blendedBerries[playerId], itemId);
|
ConvertItemToBlenderBerry(&sBerryBlender->blendedBerries[playerId], itemId);
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,7 @@ static const u8 sGenericMulchDesc[] = _("A fertilizer that\n"
|
||||||
"is unsuitable for\n"
|
"is unsuitable for\n"
|
||||||
"local soil.");
|
"local soil.");
|
||||||
|
|
||||||
const struct Item gItemsInfo[] =
|
const struct ItemInfo gItemsInfo[] =
|
||||||
{
|
{
|
||||||
[ITEM_NONE] =
|
[ITEM_NONE] =
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ static const struct ListMenuTemplate sDaycareListMenuLevelTemplate =
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
u16 currSpecies;
|
u16 currSpecies;
|
||||||
u16 item;
|
enum Item item;
|
||||||
u16 babySpecies;
|
u16 babySpecies;
|
||||||
} sIncenseBabyTable[] =
|
} sIncenseBabyTable[] =
|
||||||
{
|
{
|
||||||
|
|
@ -988,8 +988,8 @@ static void AlterEggSpeciesWithIncenseItem(u16 *species, struct DayCare *daycare
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
u16 offspring;
|
u16 offspring;
|
||||||
u16 item;
|
enum Item item;
|
||||||
u16 move;
|
enum Move move;
|
||||||
} sBreedingSpecialMoveItemTable[] =
|
} sBreedingSpecialMoveItemTable[] =
|
||||||
{
|
{
|
||||||
// Offspring, Item, Move
|
// Offspring, Item, Move
|
||||||
|
|
|
||||||
16
src/debug.c
16
src/debug.c
|
|
@ -2597,7 +2597,7 @@ static void DebugAction_FlagsVars_CatchingOnOff(u8 taskId)
|
||||||
#define tItemId data[5]
|
#define tItemId data[5]
|
||||||
#define tSpriteId data[6]
|
#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]);
|
StringCopy(gStringVar2, gText_DigitIndicator[digit]);
|
||||||
u8* end = CopyItemName(itemId, gStringVar1);
|
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)
|
static void DebugAction_Give_Item_SelectQuantity(u8 taskId)
|
||||||
{
|
{
|
||||||
u32 itemId = gTasks[taskId].tItemId;
|
enum Item itemId = gTasks[taskId].tItemId;
|
||||||
|
|
||||||
if (JOY_NEW(DPAD_ANY))
|
if (JOY_NEW(DPAD_ANY))
|
||||||
{
|
{
|
||||||
|
|
@ -3557,7 +3557,7 @@ static void DebugAction_Give_Pokemon_ComplexCreateMon(u8 taskId) //https://githu
|
||||||
//Decoration
|
//Decoration
|
||||||
#define tSpriteId data[6]
|
#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]);
|
StringCopy(gStringVar2, gText_DigitIndicator[digit]);
|
||||||
u8* end = StringCopy(gStringVar1, gDecorations[itemId].name);
|
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)
|
static void DebugAction_PCBag_Fill_PCItemStorage(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
|
|
||||||
for (itemId = 1; itemId < ITEMS_COUNT; 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)
|
static void DebugAction_PCBag_Fill_PocketItems(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
|
|
||||||
for (itemId = 1; itemId < ITEMS_COUNT; 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++)
|
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);
|
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)
|
static void DebugAction_PCBag_Fill_PocketBerries(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
|
|
||||||
for (itemId = FIRST_BERRY_INDEX; itemId < LAST_BERRY_INDEX; 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)
|
static void DebugAction_PCBag_Fill_PocketKeyItems(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
|
|
||||||
for (itemId = 1; itemId < ITEMS_COUNT; itemId++)
|
for (itemId = 1; itemId < ITEMS_COUNT; itemId++)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@ static u8 DexNavGetAbilityNum(u16 species, u8 searchLevel);
|
||||||
static u8 DexNavGeneratePotential(u8 searchLevel);
|
static u8 DexNavGeneratePotential(u8 searchLevel);
|
||||||
static u8 DexNavTryGenerateMonLevel(u16 species, enum EncounterType environment);
|
static u8 DexNavTryGenerateMonLevel(u16 species, enum EncounterType environment);
|
||||||
static u8 GetEncounterLevelFromMapData(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 GetPlayerDistance(s16 x, s16 y);
|
||||||
static u8 DexNavPickTile(enum EncounterType environment, u8 xSize, u8 ySize, bool8 smallScan);
|
static u8 DexNavPickTile(enum EncounterType environment, u8 xSize, u8 ySize, bool8 smallScan);
|
||||||
static void DexNavProximityUpdate(void);
|
static void DexNavProximityUpdate(void);
|
||||||
|
|
@ -1179,7 +1179,7 @@ static void DexNavUpdateSearchWindow(u8 proximity, u8 searchLevel)
|
||||||
//////////////////////////////
|
//////////////////////////////
|
||||||
//// DEXNAV MON GENERATOR ////
|
//// 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];
|
struct Pokemon *mon = &gEnemyParty[0];
|
||||||
u8 iv[3] = {NUM_STATS};
|
u8 iv[3] = {NUM_STATS};
|
||||||
|
|
@ -1295,8 +1295,8 @@ static u16 DexNavGenerateHeldItem(u16 species, u8 searchLevel)
|
||||||
{
|
{
|
||||||
u16 randVal = Random() % 100;
|
u16 randVal = Random() % 100;
|
||||||
u8 searchLevelInfluence = searchLevel >> 1;
|
u8 searchLevelInfluence = searchLevel >> 1;
|
||||||
u16 item1 = gSpeciesInfo[species].itemCommon;
|
enum Item item1 = gSpeciesInfo[species].itemCommon;
|
||||||
u16 item2 = gSpeciesInfo[species].itemRare;
|
enum Item item2 = gSpeciesInfo[species].itemRare;
|
||||||
|
|
||||||
// if both are the same, 100% to hold
|
// if both are the same, 100% to hold
|
||||||
if (item1 == item2)
|
if (item1 == item2)
|
||||||
|
|
|
||||||
|
|
@ -2872,7 +2872,7 @@ enum {
|
||||||
static u8 TryGivePrize(void)
|
static u8 TryGivePrize(void)
|
||||||
{
|
{
|
||||||
u8 multiplayerId = sGame->multiplayerId;
|
u8 multiplayerId = sGame->multiplayerId;
|
||||||
u16 itemId = GetPrizeItemId();
|
enum Item itemId = GetPrizeItemId();
|
||||||
|
|
||||||
if (GetScore(multiplayerId) != GetHighestScore())
|
if (GetScore(multiplayerId) != GetHighestScore())
|
||||||
return NO_PRIZE;
|
return NO_PRIZE;
|
||||||
|
|
|
||||||
|
|
@ -146,7 +146,7 @@ static void CloseScrollableMultichoice(u8);
|
||||||
static void ScrollableMultichoice_RemoveScrollArrows(u8);
|
static void ScrollableMultichoice_RemoveScrollArrows(u8);
|
||||||
static void Task_ScrollableMultichoice_WaitReturnToList(u8);
|
static void Task_ScrollableMultichoice_WaitReturnToList(u8);
|
||||||
static void Task_ScrollableMultichoice_ReturnToList(u8);
|
static void Task_ScrollableMultichoice_ReturnToList(u8);
|
||||||
static void ShowFrontierExchangeCornerItemIcon(u16);
|
static void ShowFrontierExchangeCornerItemIcon(enum Item);
|
||||||
static void Task_DeoxysRockInteraction(u8);
|
static void Task_DeoxysRockInteraction(u8);
|
||||||
static void ChangeDeoxysRockLevel(u8);
|
static void ChangeDeoxysRockLevel(u8);
|
||||||
static void WaitForDeoxysRockMovement(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);
|
FreeSpriteTilesByTag(TAG_ITEM_ICON);
|
||||||
FreeSpritePaletteByTag(TAG_ITEM_ICON);
|
FreeSpritePaletteByTag(TAG_ITEM_ICON);
|
||||||
|
|
|
||||||
|
|
@ -2078,7 +2078,7 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL
|
||||||
static void CheckPartyIneligibility(void)
|
static void CheckPartyIneligibility(void)
|
||||||
{
|
{
|
||||||
u16 speciesArray[PARTY_SIZE];
|
u16 speciesArray[PARTY_SIZE];
|
||||||
u16 itemArray[PARTY_SIZE];
|
enum Item itemArray[PARTY_SIZE];
|
||||||
s32 monId = 0;
|
s32 monId = 0;
|
||||||
s32 toChoose = 0;
|
s32 toChoose = 0;
|
||||||
u8 count = 0;
|
u8 count = 0;
|
||||||
|
|
@ -2113,7 +2113,7 @@ static void CheckPartyIneligibility(void)
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
u16 species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES_OR_EGG);
|
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);
|
u8 level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
|
||||||
u16 hp = GetMonData(&gPlayerParty[monId], MON_DATA_HP);
|
u16 hp = GetMonData(&gPlayerParty[monId], MON_DATA_HP);
|
||||||
if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_PYRAMID)
|
if (VarGet(VAR_FRONTIER_FACILITY) == FRONTIER_FACILITY_PYRAMID)
|
||||||
|
|
@ -2259,7 +2259,7 @@ static void RestoreHeldItems(void)
|
||||||
{
|
{
|
||||||
if (gSaveBlock2Ptr->frontier.selectedPartyMons[i] != 0)
|
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);
|
SetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM, &item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
94
src/item.c
94
src/item.c
|
|
@ -28,10 +28,10 @@
|
||||||
.itemSlots = gSaveBlock1Ptr->pcItems, \
|
.itemSlots = gSaveBlock1Ptr->pcItems, \
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool32 CheckPyramidBagHasItem(u16 itemId, u16 count);
|
static bool32 CheckPyramidBagHasItem(enum Item itemId, u16 count);
|
||||||
static bool32 CheckPyramidBagHasSpace(u16 itemId, u16 count);
|
static bool32 CheckPyramidBagHasSpace(enum Item itemId, u16 count);
|
||||||
static const u8 *GetItemPluralName(u16);
|
static const u8 *GetItemPluralName(enum Item);
|
||||||
static bool32 DoesItemHavePluralName(u16);
|
static bool32 DoesItemHavePluralName(enum Item);
|
||||||
static void NONNULL BagPocket_CompactItems(struct BagPocket *pocket);
|
static void NONNULL BagPocket_CompactItems(struct BagPocket *pocket);
|
||||||
|
|
||||||
EWRAM_DATA struct BagPocket gBagPockets[POCKETS_COUNT] = {0};
|
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)
|
void ApplyNewEncryptionKeyToBagItems(u32 newKey)
|
||||||
{
|
{
|
||||||
enum Pocket pocketId;
|
enum Pocket pocketId;
|
||||||
u32 item;
|
enum Item item;
|
||||||
for (pocketId = 0; pocketId < POCKETS_COUNT; pocketId++)
|
for (pocketId = 0; pocketId < POCKETS_COUNT; pocketId++)
|
||||||
{
|
{
|
||||||
for (item = 0; item < gBagPockets[pocketId].capacity; item++)
|
for (item = 0; item < gBagPockets[pocketId].capacity; item++)
|
||||||
|
|
@ -162,14 +162,14 @@ void SetBagItemsPointers(void)
|
||||||
gBagPockets[POCKET_BERRIES].id = POCKET_BERRIES;
|
gBagPockets[POCKET_BERRIES].id = POCKET_BERRIES;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 *CopyItemName(u16 itemId, u8 *dst)
|
u8 *CopyItemName(enum Item itemId, u8 *dst)
|
||||||
{
|
{
|
||||||
return StringCopy(dst, GetItemName(itemId));
|
return StringCopy(dst, GetItemName(itemId));
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8 sText_s[] =_("s");
|
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)
|
if (quantity == 1)
|
||||||
{
|
{
|
||||||
|
|
@ -198,7 +198,7 @@ bool32 IsBagPocketNonEmpty(enum Pocket pocketId)
|
||||||
return FALSE;
|
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;
|
struct ItemSlot tempItem;
|
||||||
|
|
||||||
|
|
@ -213,7 +213,7 @@ static bool32 NONNULL BagPocket_CheckHasItem(struct BagPocket *pocket, u16 itemI
|
||||||
return count == 0;
|
return count == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 CheckBagHasItem(u16 itemId, u16 count)
|
bool32 CheckBagHasItem(enum Item itemId, u16 count)
|
||||||
{
|
{
|
||||||
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -243,7 +243,7 @@ bool32 HasAtLeastOnePokeBall(void)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 CheckBagHasSpace(u16 itemId, u16 count)
|
bool32 CheckBagHasSpace(enum Item itemId, u16 count)
|
||||||
{
|
{
|
||||||
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -254,7 +254,7 @@ bool32 CheckBagHasSpace(u16 itemId, u16 count)
|
||||||
return GetFreeSpaceForItemInBag(itemId) >= 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;
|
u32 spaceForItem = 0;
|
||||||
struct ItemSlot tempItem;
|
struct ItemSlot tempItem;
|
||||||
|
|
@ -270,7 +270,7 @@ static u32 NONNULL BagPocket_GetFreeSpaceForItem(struct BagPocket *pocket, u16 i
|
||||||
return spaceForItem;
|
return spaceForItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetFreeSpaceForItemInBag(u16 itemId)
|
u32 GetFreeSpaceForItemInBag(enum Item itemId)
|
||||||
{
|
{
|
||||||
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -278,7 +278,7 @@ u32 GetFreeSpaceForItemInBag(u16 itemId)
|
||||||
return BagPocket_GetFreeSpaceForItem(&gBagPockets[GetItemPocket(itemId)], 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);
|
struct ItemSlot tempItem = BagPocket_GetSlotData(pocket, pocketPos);
|
||||||
if (tempItem.itemId == ITEM_NONE || tempItem.itemId == itemId)
|
if (tempItem.itemId == ITEM_NONE || tempItem.itemId == itemId)
|
||||||
|
|
@ -301,7 +301,7 @@ static inline bool32 NONNULL CheckSlotAndUpdateCount(struct BagPocket *pocket, u
|
||||||
return FALSE;
|
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;
|
u32 itemLookupIndex, itemAddIndex = 0;
|
||||||
|
|
||||||
|
|
@ -343,7 +343,7 @@ static bool32 NONNULL BagPocket_AddItem(struct BagPocket *pocket, u16 itemId, u1
|
||||||
return count == 0;
|
return count == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 AddBagItem(u16 itemId, u16 count)
|
bool32 AddBagItem(enum Item itemId, u16 count)
|
||||||
{
|
{
|
||||||
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
if (GetItemPocket(itemId) >= POCKETS_COUNT)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -355,7 +355,7 @@ bool32 AddBagItem(u16 itemId, u16 count)
|
||||||
return BagPocket_AddItem(&gBagPockets[GetItemPocket(itemId)], itemId, 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;
|
u32 itemLookupIndex, itemRemoveIndex = 0, totalQuantity = 0;
|
||||||
struct ItemSlot tempItem;
|
struct ItemSlot tempItem;
|
||||||
|
|
@ -399,7 +399,7 @@ static bool32 NONNULL BagPocket_RemoveItem(struct BagPocket *pocket, u16 itemId,
|
||||||
return totalQuantity >= count;
|
return totalQuantity >= count;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 RemoveBagItem(u16 itemId, u16 count)
|
bool32 RemoveBagItem(enum Item itemId, u16 count)
|
||||||
{
|
{
|
||||||
if (GetItemPocket(itemId) >= POCKETS_COUNT || itemId == ITEM_NONE)
|
if (GetItemPocket(itemId) >= POCKETS_COUNT || itemId == ITEM_NONE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -436,7 +436,7 @@ u8 CountUsedPCItemSlots(void)
|
||||||
return BagPocket_CountUsedItemSlots(&dummyPocket);
|
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;
|
struct ItemSlot tempItem;
|
||||||
|
|
||||||
|
|
@ -449,13 +449,13 @@ static bool32 NONNULL BagPocket_CheckPocketForItemCount(struct BagPocket *pocket
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 CheckPCHasItem(u16 itemId, u16 count)
|
bool32 CheckPCHasItem(enum Item itemId, u16 count)
|
||||||
{
|
{
|
||||||
struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET;
|
struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET;
|
||||||
return BagPocket_CheckPocketForItemCount(&dummyPocket, itemId, count);
|
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;
|
struct BagPocket dummyPocket = DUMMY_PC_BAG_POCKET;
|
||||||
return BagPocket_AddItem(&dummyPocket, itemId, count);
|
return BagPocket_AddItem(&dummyPocket, itemId, count);
|
||||||
|
|
@ -556,7 +556,7 @@ void ClearBag(void)
|
||||||
CpuFastFill(0, &gSaveBlock1Ptr->bag, sizeof(struct Bag));
|
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;
|
u32 ownedCount = 0;
|
||||||
struct ItemSlot tempItem;
|
struct ItemSlot tempItem;
|
||||||
|
|
@ -571,12 +571,12 @@ static inline u16 NONNULL BagPocket_CountTotalItemQuantity(struct BagPocket *poc
|
||||||
return ownedCount;
|
return ownedCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 CountTotalItemQuantityInBag(u16 itemId)
|
u16 CountTotalItemQuantityInBag(enum Item itemId)
|
||||||
{
|
{
|
||||||
return BagPocket_CountTotalItemQuantity(&gBagPockets[GetItemPocket(itemId)], 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;
|
u8 i;
|
||||||
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
|
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
|
||||||
|
|
@ -602,7 +602,7 @@ static bool32 CheckPyramidBagHasItem(u16 itemId, u16 count)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool32 CheckPyramidBagHasSpace(u16 itemId, u16 count)
|
static bool32 CheckPyramidBagHasSpace(enum Item itemId, u16 count)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
|
u16 *items = gSaveBlock2Ptr->frontier.pyramidBag.itemId[gSaveBlock2Ptr->frontier.lvlMode];
|
||||||
|
|
@ -628,7 +628,7 @@ static bool32 CheckPyramidBagHasSpace(u16 itemId, u16 count)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 AddPyramidBagItem(u16 itemId, u16 count)
|
bool32 AddPyramidBagItem(enum Item itemId, u16 count)
|
||||||
{
|
{
|
||||||
u16 i;
|
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;
|
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)
|
assertf(itemId < ITEMS_COUNT, "invalid item: %d", itemId)
|
||||||
{
|
{
|
||||||
|
|
@ -787,29 +787,29 @@ static u16 SanitizeItemId(u16 itemId)
|
||||||
return itemId;
|
return itemId;
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8 *GetItemName(u16 itemId)
|
const u8 *GetItemName(enum Item itemId)
|
||||||
{
|
{
|
||||||
const u8 *name = gItemsInfo[SanitizeItemId(itemId)].name;
|
const u8 *name = gItemsInfo[SanitizeItemId(itemId)].name;
|
||||||
|
|
||||||
return name == NULL ? gQuestionMarksItemName : name;
|
return name == NULL ? gQuestionMarksItemName : name;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetItemPrice(u16 itemId)
|
u32 GetItemPrice(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].price;
|
return gItemsInfo[SanitizeItemId(itemId)].price;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool32 DoesItemHavePluralName(u16 itemId)
|
static bool32 DoesItemHavePluralName(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].pluralName != NULL;
|
return gItemsInfo[SanitizeItemId(itemId)].pluralName != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const u8 *GetItemPluralName(u16 itemId)
|
static const u8 *GetItemPluralName(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].pluralName;
|
return gItemsInfo[SanitizeItemId(itemId)].pluralName;
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8 *GetItemEffect(u32 itemId)
|
const u8 *GetItemEffect(enum Item itemId)
|
||||||
{
|
{
|
||||||
if (itemId == ITEM_ENIGMA_BERRY_E_READER)
|
if (itemId == ITEM_ENIGMA_BERRY_E_READER)
|
||||||
#if FREE_ENIGMA_BERRY == FALSE
|
#if FREE_ENIGMA_BERRY == FALSE
|
||||||
|
|
@ -821,50 +821,50 @@ const u8 *GetItemEffect(u32 itemId)
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].effect;
|
return gItemsInfo[SanitizeItemId(itemId)].effect;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum HoldEffect GetItemHoldEffect(u32 itemId)
|
enum HoldEffect GetItemHoldEffect(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].holdEffect;
|
return gItemsInfo[SanitizeItemId(itemId)].holdEffect;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetItemHoldEffectParam(u32 itemId)
|
u32 GetItemHoldEffectParam(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].holdEffectParam;
|
return gItemsInfo[SanitizeItemId(itemId)].holdEffectParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
const u8 *GetItemDescription(u16 itemId)
|
const u8 *GetItemDescription(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].description;
|
return gItemsInfo[SanitizeItemId(itemId)].description;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 GetItemImportance(u16 itemId)
|
u8 GetItemImportance(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].importance;
|
return gItemsInfo[SanitizeItemId(itemId)].importance;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 GetItemConsumability(u16 itemId)
|
u8 GetItemConsumability(enum Item itemId)
|
||||||
{
|
{
|
||||||
return !gItemsInfo[SanitizeItemId(itemId)].notConsumed;
|
return !gItemsInfo[SanitizeItemId(itemId)].notConsumed;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum Pocket GetItemPocket(u16 itemId)
|
enum Pocket GetItemPocket(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].pocket;
|
return gItemsInfo[SanitizeItemId(itemId)].pocket;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 GetItemType(u16 itemId)
|
u8 GetItemType(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].type;
|
return gItemsInfo[SanitizeItemId(itemId)].type;
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemUseFunc GetItemFieldFunc(u16 itemId)
|
ItemUseFunc GetItemFieldFunc(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].fieldUseFunc;
|
return gItemsInfo[SanitizeItemId(itemId)].fieldUseFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns an item's battle effect script ID.
|
// 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.
|
// Handle E-Reader berries.
|
||||||
if (item == ITEM_ENIGMA_BERRY_E_READER)
|
if (item == ITEM_ENIGMA_BERRY_E_READER)
|
||||||
{
|
{
|
||||||
|
|
@ -893,18 +893,18 @@ u8 GetItemBattleUsage(u16 itemId)
|
||||||
return gItemsInfo[item].battleUsage;
|
return gItemsInfo[item].battleUsage;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetItemSecondaryId(u32 itemId)
|
u32 GetItemSecondaryId(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].secondaryId;
|
return gItemsInfo[SanitizeItemId(itemId)].secondaryId;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetItemFlingPower(u32 itemId)
|
u32 GetItemFlingPower(enum Item itemId)
|
||||||
{
|
{
|
||||||
return gItemsInfo[SanitizeItemId(itemId)].flingPower;
|
return gItemsInfo[SanitizeItemId(itemId)].flingPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
u32 GetItemStatus1Mask(u16 itemId)
|
u32 GetItemStatus1Mask(enum Item itemId)
|
||||||
{
|
{
|
||||||
const u8 *effect = GetItemEffect(itemId);
|
const u8 *effect = GetItemEffect(itemId);
|
||||||
switch (effect[3])
|
switch (effect[3])
|
||||||
|
|
@ -925,7 +925,7 @@ u32 GetItemStatus1Mask(u16 itemId)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool32 ItemHasVolatileFlag(u16 itemId, enum Volatile _volatile)
|
bool32 ItemHasVolatileFlag(enum Item itemId, enum Volatile _volatile)
|
||||||
{
|
{
|
||||||
const u8 *effect = GetItemEffect(itemId);
|
const u8 *effect = GetItemEffect(itemId);
|
||||||
switch (_volatile)
|
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;
|
return GetItemPrice(itemId) / ITEM_SELL_FACTOR;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ static u32 GetItemBallAmountFromTemplate(u32 itemBallId)
|
||||||
|
|
||||||
static u32 GetItemBallIdFromTemplate(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;
|
return (itemId >= ITEMS_COUNT) ? (ITEM_NONE + 1) : itemId;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,7 @@ void CopyItemIconPicTo4x4Buffer(const void *src, void *dest)
|
||||||
CpuCopy16(src + i * 96, dest + i * 128, 0x60);
|
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())
|
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())
|
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)
|
if (itemId == ITEM_LIST_END)
|
||||||
return gItemIcon_ReturnToFieldArrow; // Use last icon, the "return to field" arrow
|
return gItemIcon_ReturnToFieldArrow; // Use last icon, the "return to field" arrow
|
||||||
|
|
@ -173,7 +173,7 @@ const void *GetItemIconPic(u16 itemId)
|
||||||
return gItemsInfo[itemId].iconPic;
|
return gItemsInfo[itemId].iconPic;
|
||||||
}
|
}
|
||||||
|
|
||||||
const u16 *GetItemIconPalette(u16 itemId)
|
const u16 *GetItemIconPalette(enum Item itemId)
|
||||||
{
|
{
|
||||||
if (itemId == ITEM_LIST_END)
|
if (itemId == ITEM_LIST_END)
|
||||||
return gItemIconPalette_ReturnToFieldArrow;
|
return gItemIconPalette_ReturnToFieldArrow;
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ static void PrepareTMHMMoveWindow(void);
|
||||||
static bool8 IsWallysBag(void);
|
static bool8 IsWallysBag(void);
|
||||||
static void Task_WallyTutorialBagMenu(u8);
|
static void Task_WallyTutorialBagMenu(u8);
|
||||||
static void Task_BagMenu_HandleInput(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 PrintItemDescription(int);
|
||||||
static void BagMenu_PrintCursorAtPos(u8, u8);
|
static void BagMenu_PrintCursorAtPos(u8, u8);
|
||||||
static void BagMenu_Print(u8, u8, const u8 *, u8, u8, u8, u8, 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 Task_HandleSwappingItemsInput(u8);
|
||||||
static void DoItemSwap(u8);
|
static void DoItemSwap(u8);
|
||||||
static void CancelItemSwap(u8);
|
static void CancelItemSwap(u8);
|
||||||
static void PrintTMHMMoveData(u16);
|
static void PrintTMHMMoveData(enum Item itemId);
|
||||||
static void PrintContextMenuItems(u8);
|
static void PrintContextMenuItems(u8);
|
||||||
static void PrintContextMenuItemGrid(u8, u8, u8);
|
static void PrintContextMenuItemGrid(u8, u8, u8);
|
||||||
static void Task_ItemContext_SingleRow(u8);
|
static void Task_ItemContext_SingleRow(u8);
|
||||||
|
|
@ -930,7 +930,7 @@ static void LoadBagItemListBuffers(u8 pocketId)
|
||||||
gMultiuseListMenuTemplate.maxShowed = gBagMenu->numShownItems[pocketId];
|
gMultiuseListMenuTemplate.maxShowed = gBagMenu->numShownItems[pocketId];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GetItemNameFromPocket(u8 *dest, u16 itemId)
|
static void GetItemNameFromPocket(u8 *dest, enum Item itemId)
|
||||||
{
|
{
|
||||||
u8 *end;
|
u8 *end;
|
||||||
switch (gBagPosition.pocket)
|
switch (gBagPosition.pocket)
|
||||||
|
|
@ -2665,7 +2665,7 @@ static void PrepareTMHMMoveWindow(void)
|
||||||
CopyWindowToVram(WIN_TMHM_INFO_ICONS, COPYWIN_GFX);
|
CopyWindowToVram(WIN_TMHM_INFO_ICONS, COPYWIN_GFX);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PrintTMHMMoveData(u16 itemId)
|
static void PrintTMHMMoveData(enum Item itemId)
|
||||||
{
|
{
|
||||||
u8 i;
|
u8 i;
|
||||||
enum Move move;
|
enum Move move;
|
||||||
|
|
|
||||||
|
|
@ -544,7 +544,7 @@ static void SpriteCB_SwitchPocketRotatingBallContinue(struct Sprite *sprite)
|
||||||
RemoveBagSprite(ITEMMENUSPRITE_BALL);
|
RemoveBagSprite(ITEMMENUSPRITE_BALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddBagItemIconSprite(u16 itemId, u8 id)
|
void AddBagItemIconSprite(enum Item itemId, u8 id)
|
||||||
{
|
{
|
||||||
u8 *spriteId = &gBagMenu->spriteIds[id + ITEMMENUSPRITE_ITEM];
|
u8 *spriteId = &gBagMenu->spriteIds[id + ITEMMENUSPRITE_ITEM];
|
||||||
if (*spriteId == SPRITE_NONE)
|
if (*spriteId == SPRITE_NONE)
|
||||||
|
|
|
||||||
|
|
@ -219,7 +219,7 @@ static void Task_CloseCantUseKeyItemMessage(u8 taskId)
|
||||||
UnlockPlayerFieldControls();
|
UnlockPlayerFieldControls();
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId)
|
u8 CheckIfItemIsTMHMOrEvolutionStone(enum Item itemId)
|
||||||
{
|
{
|
||||||
if (GetItemFieldFunc(itemId) == ItemUseOutOfBattle_TMHM)
|
if (GetItemFieldFunc(itemId) == ItemUseOutOfBattle_TMHM)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -1227,7 +1227,7 @@ void ItemUseInBattle_PartyMenuChooseMove(u8 taskId)
|
||||||
ItemUseInBattle_ShowPartyMenu(taskId);
|
ItemUseInBattle_ShowPartyMenu(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId)
|
static bool32 IteamHealsMonVolatile(u32 battler, enum Item itemId)
|
||||||
{
|
{
|
||||||
const u8 *effect = GetItemEffect(itemId);
|
const u8 *effect = GetItemEffect(itemId);
|
||||||
if (effect[3] & ITEM3_STATUS_ALL)
|
if (effect[3] & ITEM3_STATUS_ALL)
|
||||||
|
|
@ -1240,7 +1240,7 @@ static bool32 IteamHealsMonVolatile(u32 battler, u16 itemId)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool32 SelectedMonHasVolatile(u16 itemId)
|
static bool32 SelectedMonHasVolatile(enum Item itemId)
|
||||||
{
|
{
|
||||||
if (gPartyMenu.slotId == 0)
|
if (gPartyMenu.slotId == 0)
|
||||||
return IteamHealsMonVolatile(0, itemId);
|
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.
|
// 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);
|
u16 battleUsage = GetItemBattleUsage(itemId);
|
||||||
bool8 cannotUse = FALSE;
|
bool8 cannotUse = FALSE;
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,7 @@ bool8 HasAnotherPlayerGivenFavorLadyItem(void)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void BufferItemName(u8 *dest, u16 itemId)
|
static void BufferItemName(u8 *dest, enum Item itemId)
|
||||||
{
|
{
|
||||||
StringCopy(dest, GetItemName(itemId));
|
StringCopy(dest, GetItemName(itemId));
|
||||||
}
|
}
|
||||||
|
|
@ -226,7 +226,7 @@ void Script_FavorLadyOpenBagMenu(void)
|
||||||
FavorLadyOpenBagMenu();
|
FavorLadyOpenBagMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool8 DoesFavorLadyLikeItem(u16 itemId)
|
static bool8 DoesFavorLadyLikeItem(enum Item itemId)
|
||||||
{
|
{
|
||||||
u8 numItems;
|
u8 numItems;
|
||||||
u8 i;
|
u8 i;
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ bool8 MonHasMail(struct Pokemon *mon)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 GiveMailToMonByItemId(struct Pokemon *mon, u16 itemId)
|
u8 GiveMailToMonByItemId(struct Pokemon *mon, enum Item itemId)
|
||||||
{
|
{
|
||||||
u8 heldItem[2];
|
u8 heldItem[2];
|
||||||
u8 id, i;
|
u8 id, i;
|
||||||
|
|
@ -111,7 +111,7 @@ u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer)
|
||||||
u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail)
|
u8 GiveMailToMon(struct Pokemon *mon, struct Mail *mail)
|
||||||
{
|
{
|
||||||
u8 heldItem[2];
|
u8 heldItem[2];
|
||||||
u16 itemId = mail->itemId;
|
enum Item itemId = mail->itemId;
|
||||||
u8 mailId = GiveMailToMonByItemId(mon, itemId);
|
u8 mailId = GiveMailToMonByItemId(mon, itemId);
|
||||||
|
|
||||||
if (mailId == MAIL_NONE)
|
if (mailId == MAIL_NONE)
|
||||||
|
|
@ -182,7 +182,7 @@ u8 TakeMailFromMonAndSave(struct Pokemon *mon)
|
||||||
return MAIL_NONE;
|
return MAIL_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 ItemIsMail(u16 itemId)
|
bool8 ItemIsMail(enum Item itemId)
|
||||||
{
|
{
|
||||||
switch (itemId)
|
switch (itemId)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -272,7 +272,7 @@ u8 GetLRKeysPressedAndHeld(void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 IsHoldingItemAllowed(u16 itemId)
|
bool8 IsHoldingItemAllowed(enum Item itemId)
|
||||||
{
|
{
|
||||||
// e-Reader Enigma Berry can't be held in link areas
|
// e-Reader Enigma Berry can't be held in link areas
|
||||||
if (itemId == ITEM_ENIGMA_BERRY_E_READER
|
if (itemId == ITEM_ENIGMA_BERRY_E_READER
|
||||||
|
|
@ -284,7 +284,7 @@ bool8 IsHoldingItemAllowed(u16 itemId)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool8 IsWritingMailAllowed(u16 itemId)
|
bool8 IsWritingMailAllowed(enum Item itemId)
|
||||||
{
|
{
|
||||||
if ((IsOverworldLinkActive() == TRUE || InUnionRoom() == TRUE) && ItemIsMail(itemId) == TRUE)
|
if ((IsOverworldLinkActive() == TRUE || InUnionRoom() == TRUE) && ItemIsMail(itemId) == TRUE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
|
||||||
|
|
@ -505,7 +505,7 @@ static void PrintMessageWithPlaceholders(const u8 *src)
|
||||||
// If reusable TMs is off, remove the TM from the bag
|
// If reusable TMs is off, remove the TM from the bag
|
||||||
static void RemoveRelearnerTMFromBag(enum Move move)
|
static void RemoveRelearnerTMFromBag(enum Move move)
|
||||||
{
|
{
|
||||||
u16 item = GetTMHMItemIdFromMoveId(move);
|
enum Item item = GetTMHMItemIdFromMoveId(move);
|
||||||
|
|
||||||
if (!I_REUSABLE_TMS && !P_ENABLE_ALL_TM_MOVES
|
if (!I_REUSABLE_TMS && !P_ENABLE_ALL_TM_MOVES
|
||||||
&& gMoveRelearnerState == MOVE_RELEARNER_TM_MOVES && GetItemTMHMIndex(item) <= NUM_TECHNICAL_MACHINES)
|
&& gMoveRelearnerState == MOVE_RELEARNER_TM_MOVES && GetItemTMHMIndex(item) <= NUM_TECHNICAL_MACHINES)
|
||||||
|
|
|
||||||
|
|
@ -132,7 +132,7 @@ static void ClearRecordMixingGift(void)
|
||||||
CpuFill16(0, &gSaveBlock1Ptr->recordMixingGift, sizeof(gSaveBlock1Ptr->recordMixingGift));
|
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)
|
if (!unk || !quantity || !itemId)
|
||||||
{
|
{
|
||||||
|
|
@ -158,7 +158,7 @@ u16 GetRecordMixingGift(void)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u16 itemId = data->itemId;
|
enum Item itemId = data->itemId;
|
||||||
data->quantity--;
|
data->quantity--;
|
||||||
if (data->quantity == 0)
|
if (data->quantity == 0)
|
||||||
ClearRecordMixingGift();
|
ClearRecordMixingGift();
|
||||||
|
|
@ -305,7 +305,7 @@ bool8 MEScrCmd_setrecordmixinggift(struct ScriptContext *ctx)
|
||||||
{
|
{
|
||||||
u8 unk = ScriptReadByte(ctx);
|
u8 unk = ScriptReadByte(ctx);
|
||||||
u8 quantity = ScriptReadByte(ctx);
|
u8 quantity = ScriptReadByte(ctx);
|
||||||
u16 itemId = ScriptReadHalfword(ctx);
|
enum Item itemId = ScriptReadHalfword(ctx);
|
||||||
SetRecordMixingGift(unk, quantity, itemId);
|
SetRecordMixingGift(unk, quantity, itemId);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3495,7 +3495,7 @@ static void SpriteCB_LinkPlayer(struct Sprite *sprite)
|
||||||
#define ITEM_ICON_Y 24
|
#define ITEM_ICON_Y 24
|
||||||
#define ITEM_TAG 0x2722 //same as money label
|
#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
|
#if OW_SHOW_ITEM_DESCRIPTIONS == OW_ITEM_DESCRIPTIONS_FIRST_TIME
|
||||||
u8 index = item / 8;
|
u8 index = item / 8;
|
||||||
|
|
@ -3517,10 +3517,10 @@ EWRAM_DATA static u8 sHeaderBoxWindowId = 0;
|
||||||
EWRAM_DATA u8 sItemIconSpriteId = 0;
|
EWRAM_DATA u8 sItemIconSpriteId = 0;
|
||||||
EWRAM_DATA u8 sItemIconSpriteId2 = 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 void DestroyItemIconSprite(void);
|
||||||
|
|
||||||
static u8 ReformatItemDescription(u16 item, u8 *dest)
|
static u8 ReformatItemDescription(enum Item item, u8 *dest)
|
||||||
{
|
{
|
||||||
u8 count = 0;
|
u8 count = 0;
|
||||||
u8 numLines = 1;
|
u8 numLines = 1;
|
||||||
|
|
@ -3575,7 +3575,7 @@ void ScriptShowItemDescription(struct ScriptContext *ctx)
|
||||||
Script_RequestEffects(SCREFF_V1 | SCREFF_HARDWARE);
|
Script_RequestEffects(SCREFF_V1 | SCREFF_HARDWARE);
|
||||||
|
|
||||||
struct WindowTemplate template;
|
struct WindowTemplate template;
|
||||||
u16 item = gSpecialVar_0x8006;
|
enum Item item = gSpecialVar_0x8006;
|
||||||
u8 textY;
|
u8 textY;
|
||||||
u8 *dst;
|
u8 *dst;
|
||||||
bool8 handleFlash = FALSE;
|
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;
|
s16 x = 0, y = 0;
|
||||||
u8 iconSpriteId;
|
u8 iconSpriteId;
|
||||||
|
|
|
||||||
|
|
@ -288,7 +288,7 @@ static void DisplayPartyPokemonHP(u16 hp, u16 maxHp, struct PartyMenuBox *menuBo
|
||||||
static void DisplayPartyPokemonMaxHP(u16, struct PartyMenuBox *);
|
static void DisplayPartyPokemonMaxHP(u16, struct PartyMenuBox *);
|
||||||
static void DisplayPartyPokemonHPBar(u16, 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 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 CreatePartyMonPokeballSpriteParameterized(u16, struct PartyMenuBox *);
|
||||||
static void CreatePartyMonStatusSpriteParameterized(u16, u8, struct PartyMenuBox *);
|
static void CreatePartyMonStatusSpriteParameterized(u16, u8, struct PartyMenuBox *);
|
||||||
// These next 4 functions are essentially redundant with the above 4
|
// 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 UpdatePartyMonHPBar(u8, struct Pokemon *);
|
||||||
static void SpriteCB_UpdatePartyMonIcon(struct Sprite *);
|
static void SpriteCB_UpdatePartyMonIcon(struct Sprite *);
|
||||||
static void SpriteCB_BouncePartyMonIcon(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 CreateHeldItemSpriteForTrade(u8, bool8);
|
||||||
static void SpriteCB_HeldItem(struct Sprite *);
|
static void SpriteCB_HeldItem(struct Sprite *);
|
||||||
static void SetPartyMonAilmentGfx(struct Pokemon *, struct PartyMenuBox *);
|
static void SetPartyMonAilmentGfx(struct Pokemon *, struct PartyMenuBox *);
|
||||||
|
|
@ -439,7 +439,7 @@ static void CB2_WriteMailToGiveMonFromBag(void);
|
||||||
static void GiveItemToSelectedMon(u8);
|
static void GiveItemToSelectedMon(u8);
|
||||||
static void Task_UpdateHeldItemSpriteAndClosePartyMenu(u8);
|
static void Task_UpdateHeldItemSpriteAndClosePartyMenu(u8);
|
||||||
static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void);
|
static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void);
|
||||||
static bool8 ReturnGiveItemToBagOrPC(u16);
|
static bool8 ReturnGiveItemToBagOrPC(enum Item);
|
||||||
static void Task_DisplayGaveMailFromBagMessage(u8);
|
static void Task_DisplayGaveMailFromBagMessage(u8);
|
||||||
static void Task_HandleSwitchItemsFromBagYesNoInput(u8);
|
static void Task_HandleSwitchItemsFromBagYesNoInput(u8);
|
||||||
static void Task_ValidateChosenHalfParty(u8);
|
static void Task_ValidateChosenHalfParty(u8);
|
||||||
|
|
@ -1144,7 +1144,7 @@ static void DisplayPartyPokemonDataForBattlePyramidHeldItem(u8 slot)
|
||||||
static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot)
|
static bool8 DisplayPartyPokemonDataForMoveTutorOrEvolutionItem(u8 slot)
|
||||||
{
|
{
|
||||||
struct Pokemon *currentPokemon = &gPlayerParty[slot];
|
struct Pokemon *currentPokemon = &gPlayerParty[slot];
|
||||||
u16 item = gSpecialVar_ItemId;
|
enum Item item = gSpecialVar_ItemId;
|
||||||
|
|
||||||
if (gPartyMenu.action == PARTY_ACTION_MOVE_TUTOR)
|
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);
|
GetMonNickname(mon, gStringVar1);
|
||||||
CopyItemName(item, gStringVar2);
|
CopyItemName(item, gStringVar2);
|
||||||
|
|
@ -2008,7 +2008,7 @@ static void DisplayGaveHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep
|
||||||
ScheduleBgCopyTilemapToVram(2);
|
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);
|
GetMonNickname(mon, gStringVar1);
|
||||||
CopyItemName(item, gStringVar2);
|
CopyItemName(item, gStringVar2);
|
||||||
|
|
@ -2017,7 +2017,7 @@ static void DisplayTookHeldItemMessage(struct Pokemon *mon, u16 item, bool8 keep
|
||||||
ScheduleBgCopyTilemapToVram(2);
|
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);
|
GetMonNickname(mon, gStringVar1);
|
||||||
CopyItemName(item, gStringVar2);
|
CopyItemName(item, gStringVar2);
|
||||||
|
|
@ -2026,7 +2026,7 @@ static void DisplayAlreadyHoldingItemSwitchMessage(struct Pokemon *mon, u16 item
|
||||||
ScheduleBgCopyTilemapToVram(2);
|
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(item, gStringVar1);
|
||||||
CopyItemName(item2, gStringVar2);
|
CopyItemName(item2, gStringVar2);
|
||||||
|
|
@ -2035,7 +2035,7 @@ static void DisplaySwitchedHeldItemMessage(u16 item, u16 item2, bool8 keepOpen)
|
||||||
ScheduleBgCopyTilemapToVram(2);
|
ScheduleBgCopyTilemapToVram(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GiveItemToMon(struct Pokemon *mon, u16 item)
|
static void GiveItemToMon(struct Pokemon *mon, enum Item item)
|
||||||
{
|
{
|
||||||
u8 itemBytes[2];
|
u8 itemBytes[2];
|
||||||
|
|
||||||
|
|
@ -2052,7 +2052,7 @@ static void GiveItemToMon(struct Pokemon *mon, u16 item)
|
||||||
|
|
||||||
static u8 TryTakeMonItem(struct Pokemon *mon)
|
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)
|
if (item == ITEM_NONE)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -2999,7 +2999,7 @@ static u8 GetPartyMenuActionsType(struct Pokemon *mon)
|
||||||
static bool8 CreateSelectionWindow(u8 taskId)
|
static bool8 CreateSelectionWindow(u8 taskId)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
||||||
u16 item;
|
enum Item item;
|
||||||
|
|
||||||
GetMonNickname(mon, gStringVar1);
|
GetMonNickname(mon, gStringVar1);
|
||||||
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]);
|
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[1]);
|
||||||
|
|
@ -3446,7 +3446,7 @@ static void CB2_GiveHoldItem(void)
|
||||||
|
|
||||||
static void Task_GiveHoldItem(u8 taskId)
|
static void Task_GiveHoldItem(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 item;
|
enum Item item;
|
||||||
|
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
|
|
@ -3537,7 +3537,7 @@ static void CB2_WriteMailToGiveMon(void)
|
||||||
static void CB2_ReturnToPartyMenuFromWritingMail(void)
|
static void CB2_ReturnToPartyMenuFromWritingMail(void)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
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
|
// Canceled writing mail
|
||||||
if (gSpecialVar_Result == FALSE)
|
if (gSpecialVar_Result == FALSE)
|
||||||
|
|
@ -3589,7 +3589,7 @@ static void Task_UpdateHeldItemSprite(u8 taskId)
|
||||||
static void CursorCb_TakeItem(u8 taskId)
|
static void CursorCb_TakeItem(u8 taskId)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
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);
|
PlaySE(SE_SELECT);
|
||||||
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
|
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
|
||||||
|
|
@ -3616,7 +3616,7 @@ static void CursorCb_TakeItem(u8 taskId)
|
||||||
static void CursorCb_Toss(u8 taskId)
|
static void CursorCb_Toss(u8 taskId)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
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);
|
PlaySE(SE_SELECT);
|
||||||
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
|
PartyMenuRemoveWindow(&sPartyMenuInternal->windowId[0]);
|
||||||
|
|
@ -3673,7 +3673,7 @@ static void Task_TossHeldItem(u8 taskId)
|
||||||
|
|
||||||
if (IsPartyMenuTextPrinterActive() != TRUE)
|
if (IsPartyMenuTextPrinterActive() != TRUE)
|
||||||
{
|
{
|
||||||
u16 item = ITEM_NONE;
|
enum Item item = ITEM_NONE;
|
||||||
|
|
||||||
SetMonData(mon, MON_DATA_HELD_ITEM, &item);
|
SetMonData(mon, MON_DATA_HELD_ITEM, &item);
|
||||||
UpdatePartyMonHeldItemSprite(mon, &sPartyMenuBoxes[gPartyMenu.slotId]);
|
UpdatePartyMonHeldItemSprite(mon, &sPartyMenuBoxes[gPartyMenu.slotId]);
|
||||||
|
|
@ -3767,7 +3767,7 @@ static void Task_LoseMailMessageYesNo(u8 taskId)
|
||||||
|
|
||||||
static void Task_HandleLoseMailMessageYesNoInput(u8 taskId)
|
static void Task_HandleLoseMailMessageYesNoInput(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 item;
|
enum Item item;
|
||||||
|
|
||||||
switch (Menu_ProcessInputNoWrapClearOnChoose())
|
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)
|
if (species != SPECIES_NONE)
|
||||||
{
|
{
|
||||||
|
|
@ -4429,7 +4429,7 @@ static void UpdatePartyMonHeldItemSprite(struct Pokemon *mon, struct PartyMenuBo
|
||||||
ShowOrHideHeldItemSprite(GetMonData(mon, MON_DATA_HELD_ITEM), menuBox);
|
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)
|
if (item == ITEM_NONE)
|
||||||
{
|
{
|
||||||
|
|
@ -4454,7 +4454,7 @@ void LoadHeldItemIcons(void)
|
||||||
void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty)
|
void DrawHeldItemIconsForTrade(u8 *partyCounts, u8 *partySpriteIds, u8 whichParty)
|
||||||
{
|
{
|
||||||
u16 i;
|
u16 i;
|
||||||
u16 item;
|
enum Item item;
|
||||||
|
|
||||||
switch (whichParty)
|
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);
|
const u8 *effect = GetItemEffect(item);
|
||||||
|
|
||||||
|
|
@ -4697,7 +4697,7 @@ static bool8 IsHPRecoveryItem(u16 item)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void GetMedicineItemEffectMessage(u16 item, u32 statusCured)
|
static void GetMedicineItemEffectMessage(enum Item item, u32 statusCured)
|
||||||
{
|
{
|
||||||
switch (GetItemEffectType(item))
|
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)
|
if (GetItemEffectType(item) == ITEM_EFFECT_HP_EV && GetMonData(mon, MON_DATA_SPECIES) == SPECIES_SHEDINJA)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
return TRUE;
|
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)
|
if (item == ITEM_BLUE_FLUTE || item == ITEM_RED_FLUTE || item == ITEM_YELLOW_FLUTE)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
@ -4815,7 +4815,7 @@ void ItemUseCB_Medicine(u8 taskId, TaskFunc task)
|
||||||
{
|
{
|
||||||
u16 hp = 0;
|
u16 hp = 0;
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
||||||
u16 item = gSpecialVar_ItemId;
|
enum Item item = gSpecialVar_ItemId;
|
||||||
bool8 canHeal, cannotUse;
|
bool8 canHeal, cannotUse;
|
||||||
u32 oldStatus = GetMonData(mon, MON_DATA_STATUS);
|
u32 oldStatus = GetMonData(mon, MON_DATA_STATUS);
|
||||||
|
|
||||||
|
|
@ -5194,7 +5194,7 @@ static void Task_ClosePartyMenuAfterText(u8 taskId)
|
||||||
void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task)
|
void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
||||||
u16 item = gSpecialVar_ItemId;
|
enum Item item = gSpecialVar_ItemId;
|
||||||
bool8 cannotUseEffect = ExecuteTableBasedItemEffect(mon, item, gPartyMenu.slotId, 0);
|
bool8 cannotUseEffect = ExecuteTableBasedItemEffect(mon, item, gPartyMenu.slotId, 0);
|
||||||
|
|
||||||
if (cannotUseEffect)
|
if (cannotUseEffect)
|
||||||
|
|
@ -5221,7 +5221,7 @@ void ItemUseCB_ResetEVs(u8 taskId, TaskFunc task)
|
||||||
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task)
|
void ItemUseCB_ReduceEV(u8 taskId, TaskFunc task)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
||||||
u16 item = gSpecialVar_ItemId;
|
enum Item item = gSpecialVar_ItemId;
|
||||||
u8 effectType = GetItemEffectType(item);
|
u8 effectType = GetItemEffectType(item);
|
||||||
u16 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP);
|
u16 friendship = GetMonData(mon, MON_DATA_FRIENDSHIP);
|
||||||
u16 ev = ItemEffectToMonEv(mon, effectType);
|
u16 ev = ItemEffectToMonEv(mon, effectType);
|
||||||
|
|
@ -5409,7 +5409,7 @@ static void TryUseItemOnMove(u8 taskId)
|
||||||
{
|
{
|
||||||
enum Move move = MOVE_NONE;
|
enum Move move = MOVE_NONE;
|
||||||
s16 *moveSlot = &gPartyMenu.data1;
|
s16 *moveSlot = &gPartyMenu.data1;
|
||||||
u16 item = gSpecialVar_ItemId;
|
enum Item item = gSpecialVar_ItemId;
|
||||||
|
|
||||||
if (ExecuteTableBasedItemEffect(mon, item, ptr->slotId, *moveSlot))
|
if (ExecuteTableBasedItemEffect(mon, item, ptr->slotId, *moveSlot))
|
||||||
{
|
{
|
||||||
|
|
@ -5442,7 +5442,7 @@ void ItemUseCB_PPUp(u8 taskId, TaskFunc task)
|
||||||
gTasks[taskId].func = Task_HandleWhichMoveInput;
|
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;
|
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)
|
void ItemUseCB_TMHM(u8 taskId, TaskFunc task)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon;
|
struct Pokemon *mon;
|
||||||
u16 item = gSpecialVar_ItemId;
|
enum Item item = gSpecialVar_ItemId;
|
||||||
enum Move move = ItemIdToBattleMoveId(item);
|
enum Move move = ItemIdToBattleMoveId(item);
|
||||||
|
|
||||||
gPartyMenu.data1 = move;
|
gPartyMenu.data1 = move;
|
||||||
|
|
@ -5526,7 +5526,7 @@ static void Task_LearnedMove(u8 taskId)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
||||||
s16 *move = &gPartyMenu.data1;
|
s16 *move = &gPartyMenu.data1;
|
||||||
u16 item = gSpecialVar_ItemId;
|
enum Item item = gSpecialVar_ItemId;
|
||||||
|
|
||||||
if (move[1] == 0)
|
if (move[1] == 0)
|
||||||
{
|
{
|
||||||
|
|
@ -6923,7 +6923,7 @@ void TryItemHoldFormChange(struct Pokemon *mon, s8 slotId)
|
||||||
#undef tAnimWait
|
#undef tAnimWait
|
||||||
#undef tNextFunc
|
#undef tNextFunc
|
||||||
|
|
||||||
u8 GetItemEffectType(u16 item)
|
u8 GetItemEffectType(enum Item item)
|
||||||
{
|
{
|
||||||
u32 statusCure;
|
u32 statusCure;
|
||||||
const u8 *itemEffect = GetItemEffect(item);
|
const u8 *itemEffect = GetItemEffect(item);
|
||||||
|
|
@ -7067,7 +7067,7 @@ static void GiveItemOrMailToSelectedMon(u8 taskId)
|
||||||
|
|
||||||
static void GiveItemToSelectedMon(u8 taskId)
|
static void GiveItemToSelectedMon(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 item;
|
enum Item item;
|
||||||
|
|
||||||
if (!gPaletteFade.active)
|
if (!gPaletteFade.active)
|
||||||
{
|
{
|
||||||
|
|
@ -7106,7 +7106,7 @@ static void CB2_WriteMailToGiveMonFromBag(void)
|
||||||
static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void)
|
static void CB2_ReturnToPartyOrBagMenuFromWritingMail(void)
|
||||||
{
|
{
|
||||||
struct Pokemon *mon = &gPlayerParty[gPartyMenu.slotId];
|
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
|
// Canceled writing mail
|
||||||
if (gSpecialVar_Result == FALSE)
|
if (gSpecialVar_Result == FALSE)
|
||||||
|
|
@ -7147,7 +7147,7 @@ static void Task_SwitchItemsFromBagYesNo(u8 taskId)
|
||||||
|
|
||||||
static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId)
|
static void Task_HandleSwitchItemsFromBagYesNoInput(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 item;
|
enum Item item;
|
||||||
|
|
||||||
switch (Menu_ProcessInputNoWrapClearOnChoose())
|
switch (Menu_ProcessInputNoWrapClearOnChoose())
|
||||||
{
|
{
|
||||||
|
|
@ -7191,7 +7191,7 @@ static void DisplayItemMustBeRemovedFirstMessage(u8 taskId)
|
||||||
|
|
||||||
// Returns FALSE if there was no space to return the item
|
// Returns FALSE if there was no space to return the item
|
||||||
// but there always should be, and the return is ignored in all uses
|
// 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)
|
if (gPartyMenu.action == PARTY_ACTION_GIVE_ITEM)
|
||||||
return AddBagItem(item, 1);
|
return AddBagItem(item, 1);
|
||||||
|
|
@ -7300,7 +7300,7 @@ static u8 CheckBattleEntriesAndGetMessage(void)
|
||||||
for (i = 0; i < maxBattlers - 1; i++)
|
for (i = 0; i < maxBattlers - 1; i++)
|
||||||
{
|
{
|
||||||
u16 species = GetMonData(&party[order[i] - 1], MON_DATA_SPECIES);
|
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++)
|
for (j = i + 1; j < maxBattlers; j++)
|
||||||
{
|
{
|
||||||
if (species == GetMonData(&party[order[j] - 1], MON_DATA_SPECIES))
|
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)
|
void CursorCb_MoveItemCallback(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 item1, item2;
|
enum Item item1, item2;
|
||||||
u8 buffer[100];
|
u8 buffer[100];
|
||||||
|
|
||||||
if (gPaletteFade.active || MenuHelpers_ShouldWaitForLinkRecv())
|
if (gPaletteFade.active || MenuHelpers_ShouldWaitForLinkRecv())
|
||||||
|
|
|
||||||
|
|
@ -66,19 +66,6 @@ enum {
|
||||||
// When showing the main list, the first window to this window are drawn
|
// When showing the main list, the first window to this window are drawn
|
||||||
#define ITEMPC_WIN_LIST_END ITEMPC_WIN_TITLE
|
#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_ITEM_ICON 5110
|
||||||
#define TAG_SCROLL_ARROW 5112
|
#define TAG_SCROLL_ARROW 5112
|
||||||
|
|
||||||
|
|
@ -161,8 +148,7 @@ static void ItemStorage_HandleRemoveItem(u8);
|
||||||
static void ItemStorage_HandleErrorMessageInput(u8);
|
static void ItemStorage_HandleErrorMessageInput(u8);
|
||||||
static void ItemStorage_ReturnToListInput(u8);
|
static void ItemStorage_ReturnToListInput(u8);
|
||||||
|
|
||||||
static const u8 *ItemStorage_GetMessage(u16);
|
static void CopyItemName_PlayerPC(u8 *, enum Item);
|
||||||
static void CopyItemName_PlayerPC(u8 *, u16);
|
|
||||||
|
|
||||||
static void ItemStorage_Init(void);
|
static void ItemStorage_Init(void);
|
||||||
static void ItemStorage_DrawSwapArrow(u8, u8, u8);
|
static void ItemStorage_DrawSwapArrow(u8, u8, u8);
|
||||||
|
|
@ -170,7 +156,7 @@ static void ItemStorage_RemoveWindow(u8);
|
||||||
static void ItemStorage_UpdateSwapLinePos(u8);
|
static void ItemStorage_UpdateSwapLinePos(u8);
|
||||||
static void ItemStorage_ProcessItemSwapInput(u8);
|
static void ItemStorage_ProcessItemSwapInput(u8);
|
||||||
static void ItemStorage_EraseItemIcon(void);
|
static void ItemStorage_EraseItemIcon(void);
|
||||||
static void ItemStorage_DrawItemIcon(u16);
|
static void ItemStorage_DrawItemIcon(enum Item);
|
||||||
static void ItemStorage_PrintDescription(s32);
|
static void ItemStorage_PrintDescription(s32);
|
||||||
static void ItemStorage_EraseMainMenu(u8);
|
static void ItemStorage_EraseMainMenu(u8);
|
||||||
static void ItemStorage_MoveCursor(s32, bool8, struct ListMenu *);
|
static void ItemStorage_MoveCursor(s32, bool8, struct ListMenu *);
|
||||||
|
|
@ -1018,7 +1004,7 @@ void ItemStorage_RefreshListMenu(void)
|
||||||
gMultiuseListMenuTemplate.maxShowed = gPlayerPCItemPageInfo.pageItems;
|
gMultiuseListMenuTemplate.maxShowed = gPlayerPCItemPageInfo.pageItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CopyItemName_PlayerPC(u8 *string, u16 itemId)
|
void CopyItemName_PlayerPC(u8 *string, enum Item itemId)
|
||||||
{
|
{
|
||||||
CopyItemName(itemId, string);
|
CopyItemName(itemId, string);
|
||||||
}
|
}
|
||||||
|
|
@ -1064,7 +1050,7 @@ static void ItemStorage_PrintDescription(s32 id)
|
||||||
if (id != LIST_CANCEL)
|
if (id != LIST_CANCEL)
|
||||||
description = (u8 *)GetItemDescription(gSaveBlock1Ptr->pcItems[id].itemId);
|
description = (u8 *)GetItemDescription(gSaveBlock1Ptr->pcItems[id].itemId);
|
||||||
else
|
else
|
||||||
description = ItemStorage_GetMessage(MSG_GO_BACK_TO_PREV);
|
description = gText_GoBackPrevMenu;
|
||||||
|
|
||||||
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
FillWindowPixelBuffer(windowId, PIXEL_FILL(1));
|
||||||
AddTextPrinterParameterized(windowId, FONT_NORMAL, description, 0, 1, 0, NULL);
|
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);
|
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 spriteId;
|
||||||
u8 *spriteIdLoc = &sItemStorageMenu->spriteId;
|
u8 *spriteIdLoc = &sItemStorageMenu->spriteId;
|
||||||
|
|
@ -1172,46 +1158,6 @@ static void ItemStorage_CreateListMenu(u8 taskId)
|
||||||
gTasks[taskId].func = ItemStorage_ProcessInput;
|
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)
|
static void ItemStorage_PrintMessage(const u8 *string)
|
||||||
{
|
{
|
||||||
u8 windowId = sItemStorageMenu->windowIds[ITEMPC_WIN_MESSAGE];
|
u8 windowId = sItemStorageMenu->windowIds[ITEMPC_WIN_MESSAGE];
|
||||||
|
|
@ -1289,7 +1235,7 @@ static void ItemStorage_StartItemSwap(u8 taskId)
|
||||||
ItemStorage_SetSwapArrow(tListTaskId, 0, 0);
|
ItemStorage_SetSwapArrow(tListTaskId, 0, 0);
|
||||||
ItemStorage_UpdateSwapLinePos(sItemStorageMenu->toSwapPos);
|
ItemStorage_UpdateSwapLinePos(sItemStorageMenu->toSwapPos);
|
||||||
CopyItemName(gSaveBlock1Ptr->pcItems[sItemStorageMenu->toSwapPos].itemId, gStringVar1);
|
CopyItemName(gSaveBlock1Ptr->pcItems[sItemStorageMenu->toSwapPos].itemId, gStringVar1);
|
||||||
ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_SWITCH_WHICH_ITEM));
|
ItemStorage_PrintMessage(gText_MoveVar1Where);
|
||||||
gTasks[taskId].func = ItemStorage_ProcessItemSwapInput;
|
gTasks[taskId].func = ItemStorage_ProcessItemSwapInput;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1380,7 +1326,7 @@ static void ItemStorage_DoItemAction(u8 taskId)
|
||||||
// Withdrawing multiple items, show "how many" message
|
// Withdrawing multiple items, show "how many" message
|
||||||
end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, 2);
|
end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, 2);
|
||||||
WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6);
|
WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6);
|
||||||
ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_HOW_MANY_TO_WITHDRAW));
|
ItemStorage_PrintMessage(sText_WithdrawHowManyItems);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -1394,7 +1340,7 @@ static void ItemStorage_DoItemAction(u8 taskId)
|
||||||
// Tossing multiple items, show "how many" message
|
// Tossing multiple items, show "how many" message
|
||||||
end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, 2);
|
end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, 2);
|
||||||
WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6);
|
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
|
// Set up "how many" prompt
|
||||||
|
|
@ -1428,7 +1374,7 @@ static void ItemStorage_HandleQuantityRolling(u8 taskId)
|
||||||
// Canceled action
|
// Canceled action
|
||||||
PlaySE(SE_SELECT);
|
PlaySE(SE_SELECT);
|
||||||
ItemStorage_RemoveWindow(ITEMPC_WIN_QUANTITY);
|
ItemStorage_RemoveWindow(ITEMPC_WIN_QUANTITY);
|
||||||
ItemStorage_PrintMessage(ItemStorage_GetMessage(gSaveBlock1Ptr->pcItems[pos].itemId));
|
ItemStorage_PrintMessage(GetItemDescription(gSaveBlock1Ptr->pcItems[pos].itemId));
|
||||||
ItemStorage_ReturnToListInput(taskId);
|
ItemStorage_ReturnToListInput(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1445,14 +1391,14 @@ static void ItemStorage_DoItemWithdraw(u8 taskId)
|
||||||
u8 *end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, tQuantity);
|
u8 *end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, tQuantity);
|
||||||
WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6);
|
WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6);
|
||||||
ConvertIntToDecimalStringN(gStringVar2, tQuantity, STR_CONV_MODE_LEFT_ALIGN, 3);
|
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;
|
gTasks[taskId].func = ItemStorage_HandleRemoveItem;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// No room to withdraw items
|
// No room to withdraw items
|
||||||
tQuantity = 0;
|
tQuantity = 0;
|
||||||
ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_NO_MORE_ROOM));
|
ItemStorage_PrintMessage(sText_NoRoomInBag);
|
||||||
gTasks[taskId].func = ItemStorage_HandleErrorMessageInput;
|
gTasks[taskId].func = ItemStorage_HandleErrorMessageInput;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1468,27 +1414,27 @@ static void ItemStorage_DoItemToss(u8 taskId)
|
||||||
u8 *end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, tQuantity);
|
u8 *end = CopyItemNameHandlePlural(gSaveBlock1Ptr->pcItems[pos].itemId, gStringVar1, tQuantity);
|
||||||
WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6);
|
WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(ITEMPC_WIN_MESSAGE) - 6);
|
||||||
ConvertIntToDecimalStringN(gStringVar2, tQuantity, STR_CONV_MODE_LEFT_ALIGN, 3);
|
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);
|
CreateYesNoMenuWithCallbacks(taskId, &sWindowTemplates_ItemStorage[ITEMPC_WIN_YESNO], 1, 0, 1, 0x214, 0xE, &ItemTossYesNoFuncs);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Can't toss important items
|
// Can't toss important items
|
||||||
tQuantity = 0;
|
tQuantity = 0;
|
||||||
ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_TOO_IMPORTANT));
|
ItemStorage_PrintMessage(sText_TooImportantToToss);
|
||||||
gTasks[taskId].func = ItemStorage_HandleErrorMessageInput;
|
gTasks[taskId].func = ItemStorage_HandleErrorMessageInput;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ItemStorage_TossItemYes(u8 taskId)
|
static void ItemStorage_TossItemYes(u8 taskId)
|
||||||
{
|
{
|
||||||
ItemStorage_PrintMessage(ItemStorage_GetMessage(MSG_THREW_AWAY_ITEM));
|
ItemStorage_PrintMessage(gText_ThrewAwayVar2Var1s);
|
||||||
gTasks[taskId].func = ItemStorage_HandleRemoveItem;
|
gTasks[taskId].func = ItemStorage_HandleRemoveItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ItemStorage_TossItemNo(u8 taskId)
|
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);
|
ItemStorage_ReturnToListInput(taskId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1512,7 +1458,7 @@ static void ItemStorage_HandleErrorMessageInput(u8 taskId)
|
||||||
{
|
{
|
||||||
if (JOY_NEW(A_BUTTON | B_BUTTON))
|
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);
|
ItemStorage_ReturnToListInput(taskId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -596,7 +596,7 @@ static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum);
|
||||||
u32 GetSpeciesNameFontId(u32 nameWidth);
|
u32 GetSpeciesNameFontId(u32 nameWidth);
|
||||||
u32 GetSpeciesNameWidthInChars(const u8 *speciesName);
|
u32 GetSpeciesNameWidthInChars(const u8 *speciesName);
|
||||||
bool32 IsSpeciesAlcremie(u32 targetSpecies);
|
bool32 IsSpeciesAlcremie(u32 targetSpecies);
|
||||||
bool32 IsItemSweet(u32 item);
|
bool32 IsItemSweet(enum Item item);
|
||||||
|
|
||||||
//Stat bars by DizzyEgg
|
//Stat bars by DizzyEgg
|
||||||
#define TAG_STAT_BAR 4097
|
#define TAG_STAT_BAR 4097
|
||||||
|
|
@ -5104,7 +5104,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId)
|
||||||
u8 moves_x = 5;
|
u8 moves_x = 5;
|
||||||
u8 moves_y = 3;
|
u8 moves_y = 3;
|
||||||
|
|
||||||
u32 item = ITEM_MASTER_BALL;
|
enum Item item = ITEM_MASTER_BALL;
|
||||||
u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
|
u32 species = NationalPokedexNumToSpeciesHGSS(sPokedexListItem->dexNum);
|
||||||
u32 selected = sPokedexView->moveSelected;
|
u32 selected = sPokedexView->moveSelected;
|
||||||
enum Move move = GetSelectedMove(species, selected);
|
enum Move move = GetSelectedMove(species, selected);
|
||||||
|
|
@ -5130,7 +5130,7 @@ static void PrintStatsScreen_Moves_Top(u8 taskId)
|
||||||
}
|
}
|
||||||
else if (move)
|
else if (move)
|
||||||
{
|
{
|
||||||
u32 TMHMItemId = ITEM_NONE;
|
enum Item TMHMItemId = ITEM_NONE;
|
||||||
for (u32 i = 0; i < NUM_ALL_MACHINES; i++)
|
for (u32 i = 0; i < NUM_ALL_MACHINES; i++)
|
||||||
{
|
{
|
||||||
if (move == GetTMHMMoveId(i + 1))
|
if (move == GetTMHMMoveId(i + 1))
|
||||||
|
|
@ -6399,7 +6399,7 @@ bool32 IsSpeciesAlcremie(u32 targetSpecies)
|
||||||
return GET_BASE_SPECIES_ID(targetSpecies) == SPECIES_ALCREMIE;
|
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;
|
return item >= ITEM_STRAWBERRY_SWEET && item <= ITEM_RIBBON_SWEET;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@
|
||||||
struct SpeciesItem
|
struct SpeciesItem
|
||||||
{
|
{
|
||||||
u16 species;
|
u16 species;
|
||||||
u16 item;
|
enum Item item;
|
||||||
};
|
};
|
||||||
|
|
||||||
static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
|
static u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
|
||||||
|
|
@ -3599,7 +3599,7 @@ void CopyPartyMonToBattleData(u32 battler, u32 partyIndex)
|
||||||
ClearTemporarySpeciesSpriteData(battler, FALSE, FALSE);
|
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);
|
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
|
// 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;
|
u32 dataUnsigned;
|
||||||
s32 dataSigned, evCap;
|
s32 dataSigned, evCap;
|
||||||
|
|
@ -3644,7 +3644,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
|
||||||
enum HoldEffect holdEffect;
|
enum HoldEffect holdEffect;
|
||||||
u8 battler = MAX_BATTLERS_COUNT;
|
u8 battler = MAX_BATTLERS_COUNT;
|
||||||
bool32 friendshipOnly = FALSE;
|
bool32 friendshipOnly = FALSE;
|
||||||
u16 heldItem;
|
enum Item heldItem;
|
||||||
u8 effectFlags;
|
u8 effectFlags;
|
||||||
s8 evChange;
|
s8 evChange;
|
||||||
u16 evCount;
|
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 *temp;
|
||||||
const u8 *itemEffect;
|
const u8 *itemEffect;
|
||||||
|
|
@ -4244,7 +4244,7 @@ static void BufferStatRoseMessage(enum Stat statIdx)
|
||||||
BattleStringExpandPlaceholdersToDisplayedString(gText_DefendersStatRose);
|
BattleStringExpandPlaceholdersToDisplayedString(gText_DefendersStatRose);
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 *UseStatIncreaseItem(u16 itemId)
|
u8 *UseStatIncreaseItem(enum Item itemId)
|
||||||
{
|
{
|
||||||
const u8 *itemEffect;
|
const u8 *itemEffect;
|
||||||
|
|
||||||
|
|
@ -5483,7 +5483,7 @@ u32 GetRelearnerTMMovesBox(struct BoxPokemon *boxMon, u16 *moves)
|
||||||
|
|
||||||
for (u32 i = 0; i < NUM_ALL_MACHINES; i++)
|
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);
|
enum Move move = GetTMHMMoveId(i + 1);
|
||||||
|
|
||||||
if (move == MOVE_NONE)
|
if (move == MOVE_NONE)
|
||||||
|
|
@ -5622,7 +5622,7 @@ bool32 HasRelearnerTMMovesBox(struct BoxPokemon *boxMon)
|
||||||
|
|
||||||
for (u32 i = 0; i < NUM_ALL_MACHINES; i++)
|
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);
|
enum Move move = GetTMHMMoveId(i + 1);
|
||||||
|
|
||||||
if (move == MOVE_NONE)
|
if (move == MOVE_NONE)
|
||||||
|
|
|
||||||
|
|
@ -339,7 +339,7 @@ static u16 GetPrizeData(void);
|
||||||
static void UnpackPrizeData(u16, u16 *, u16 *);
|
static void UnpackPrizeData(u16, u16 *, u16 *);
|
||||||
static u16 GetPrizeItemId(void);
|
static u16 GetPrizeItemId(void);
|
||||||
static u16 GetPrizeQuantity(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_Star(struct Sprite *);
|
||||||
static void SpriteCB_MonHitShake(struct Sprite *);
|
static void SpriteCB_MonHitShake(struct Sprite *);
|
||||||
static void SpriteCB_MonHitFlash(struct Sprite *);
|
static void SpriteCB_MonHitFlash(struct Sprite *);
|
||||||
|
|
@ -352,9 +352,9 @@ static void SetUpPokeJumpGfxFuncById(int);
|
||||||
static bool32 IsPokeJumpGfxFuncFinished(void);
|
static bool32 IsPokeJumpGfxFuncFinished(void);
|
||||||
static void SetUpResetVineGfx(void);
|
static void SetUpResetVineGfx(void);
|
||||||
static bool32 ResetVineGfx(void);
|
static bool32 ResetVineGfx(void);
|
||||||
static void PrintPrizeMessage(u16, u16);
|
static void PrintPrizeMessage(enum Item, u16);
|
||||||
static void PrintPrizeFilledBagMessage(u16);
|
static void PrintPrizeFilledBagMessage(enum Item);
|
||||||
static void PrintNoRoomForPrizeMessage(u16);
|
static void PrintNoRoomForPrizeMessage(enum Item);
|
||||||
static bool32 DoPrizeMessageAndFanfare(void);
|
static bool32 DoPrizeMessageAndFanfare(void);
|
||||||
static void ClearMessageWindow(void);
|
static void ClearMessageWindow(void);
|
||||||
static void SetMonSpriteY(u32, s16);
|
static void SetMonSpriteY(u32, s16);
|
||||||
|
|
@ -2153,7 +2153,7 @@ static bool32 HasEnoughScoreForPrize(void)
|
||||||
|
|
||||||
static u16 GetPrizeData(void)
|
static u16 GetPrizeData(void)
|
||||||
{
|
{
|
||||||
u16 itemId = GetPrizeItemId();
|
enum Item itemId = GetPrizeItemId();
|
||||||
u16 quantity = GetPrizeQuantity();
|
u16 quantity = GetPrizeQuantity();
|
||||||
return (quantity << 12) | (itemId & 0xFFF);
|
return (quantity << 12) | (itemId & 0xFFF);
|
||||||
}
|
}
|
||||||
|
|
@ -2186,7 +2186,7 @@ static u16 GetPrizeQuantity(void)
|
||||||
return quantity;
|
return quantity;
|
||||||
}
|
}
|
||||||
|
|
||||||
static u16 GetQuantityLimitedByBag(u16 item, u16 quantity)
|
static u16 GetQuantityLimitedByBag(enum Item item, u16 quantity)
|
||||||
{
|
{
|
||||||
while (quantity && !CheckBagHasSpace(item, quantity))
|
while (quantity && !CheckBagHasSpace(item, quantity))
|
||||||
quantity--;
|
quantity--;
|
||||||
|
|
@ -3331,7 +3331,7 @@ static bool32 ResetVineGfx(void)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PrintPrizeMessage(u16 itemId, u16 quantity)
|
static void PrintPrizeMessage(enum Item itemId, u16 quantity)
|
||||||
{
|
{
|
||||||
CopyItemNameHandlePlural(itemId, sPokemonJumpGfx->itemName, quantity);
|
CopyItemNameHandlePlural(itemId, sPokemonJumpGfx->itemName, quantity);
|
||||||
ConvertIntToDecimalStringN(sPokemonJumpGfx->itemQuantityStr, quantity, STR_CONV_MODE_LEFT_ALIGN, 1);
|
ConvertIntToDecimalStringN(sPokemonJumpGfx->itemQuantityStr, quantity, STR_CONV_MODE_LEFT_ALIGN, 1);
|
||||||
|
|
@ -3346,7 +3346,7 @@ static void PrintPrizeMessage(u16 itemId, u16 quantity)
|
||||||
sPokemonJumpGfx->msgWindowState = 0;
|
sPokemonJumpGfx->msgWindowState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PrintPrizeFilledBagMessage(u16 itemId)
|
static void PrintPrizeFilledBagMessage(enum Item itemId)
|
||||||
{
|
{
|
||||||
CopyItemName(itemId, sPokemonJumpGfx->itemName);
|
CopyItemName(itemId, sPokemonJumpGfx->itemName);
|
||||||
DynamicPlaceholderTextUtil_Reset();
|
DynamicPlaceholderTextUtil_Reset();
|
||||||
|
|
@ -3359,7 +3359,7 @@ static void PrintPrizeFilledBagMessage(u16 itemId)
|
||||||
sPokemonJumpGfx->msgWindowState = 0;
|
sPokemonJumpGfx->msgWindowState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PrintNoRoomForPrizeMessage(u16 itemId)
|
static void PrintNoRoomForPrizeMessage(enum Item itemId)
|
||||||
{
|
{
|
||||||
CopyItemName(itemId, sPokemonJumpGfx->itemName);
|
CopyItemName(itemId, sPokemonJumpGfx->itemName);
|
||||||
DynamicPlaceholderTextUtil_Reset();
|
DynamicPlaceholderTextUtil_Reset();
|
||||||
|
|
|
||||||
|
|
@ -703,7 +703,7 @@ static void CreateItemIconSprites(void);
|
||||||
static void TryLoadItemIconAtPos(u8, u8);
|
static void TryLoadItemIconAtPos(u8, u8);
|
||||||
static void TryHideItemIconAtPos(u8, u8);
|
static void TryHideItemIconAtPos(u8, u8);
|
||||||
static void TakeItemFromMon(u8, u8);
|
static void TakeItemFromMon(u8, u8);
|
||||||
static void InitItemIconInCursor(u16);
|
static void InitItemIconInCursor(enum Item);
|
||||||
static void SwapItemsWithMon(u8, u8);
|
static void SwapItemsWithMon(u8, u8);
|
||||||
static void GiveItemToMon(u8, u8);
|
static void GiveItemToMon(u8, u8);
|
||||||
static void MoveItemFromMonToBag(u8, u8);
|
static void MoveItemFromMonToBag(u8, u8);
|
||||||
|
|
@ -3781,7 +3781,7 @@ static void Task_ChangeScreen(u8 taskId)
|
||||||
|
|
||||||
static void GiveChosenBagItem(void)
|
static void GiveChosenBagItem(void)
|
||||||
{
|
{
|
||||||
u16 itemId = gSpecialVar_ItemId;
|
enum Item itemId = gSpecialVar_ItemId;
|
||||||
|
|
||||||
if (itemId != ITEM_NONE)
|
if (itemId != ITEM_NONE)
|
||||||
{
|
{
|
||||||
|
|
@ -6521,7 +6521,7 @@ static bool8 TryHideReleaseMon(void)
|
||||||
static void ReleaseMon(void)
|
static void ReleaseMon(void)
|
||||||
{
|
{
|
||||||
u8 boxId;
|
u8 boxId;
|
||||||
u16 item = ITEM_NONE;
|
enum Item item = ITEM_NONE;
|
||||||
|
|
||||||
DestroyReleaseMonIcon();
|
DestroyReleaseMonIcon();
|
||||||
if (sIsMonBeingMoved)
|
if (sIsMonBeingMoved)
|
||||||
|
|
@ -8916,7 +8916,7 @@ static void TryHideItemIconAtPos(u8 cursorArea, u8 cursorPos)
|
||||||
static void TakeItemFromMon(u8 cursorArea, u8 cursorPos)
|
static void TakeItemFromMon(u8 cursorArea, u8 cursorPos)
|
||||||
{
|
{
|
||||||
u8 id;
|
u8 id;
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
|
|
||||||
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
|
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
|
||||||
return;
|
return;
|
||||||
|
|
@ -8945,7 +8945,7 @@ static void TakeItemFromMon(u8 cursorArea, u8 cursorPos)
|
||||||
sStorage->movingItemId = sStorage->displayMonItemId;
|
sStorage->movingItemId = sStorage->displayMonItemId;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InitItemIconInCursor(u16 itemId)
|
static void InitItemIconInCursor(enum Item itemId)
|
||||||
{
|
{
|
||||||
const u32 *tiles = GetItemIconPic(itemId);
|
const u32 *tiles = GetItemIconPic(itemId);
|
||||||
const u16 *pal = GetItemIconPalette(itemId);
|
const u16 *pal = GetItemIconPalette(itemId);
|
||||||
|
|
@ -8961,7 +8961,7 @@ static void InitItemIconInCursor(u16 itemId)
|
||||||
static void SwapItemsWithMon(u8 cursorArea, u8 cursorPos)
|
static void SwapItemsWithMon(u8 cursorArea, u8 cursorPos)
|
||||||
{
|
{
|
||||||
u8 id;
|
u8 id;
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
|
|
||||||
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
|
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
|
||||||
return;
|
return;
|
||||||
|
|
@ -9022,7 +9022,7 @@ static void GiveItemToMon(u8 cursorArea, u8 cursorPos)
|
||||||
static void MoveItemFromMonToBag(u8 cursorArea, u8 cursorPos)
|
static void MoveItemFromMonToBag(u8 cursorArea, u8 cursorPos)
|
||||||
{
|
{
|
||||||
u8 id;
|
u8 id;
|
||||||
u16 itemId;
|
enum Item itemId;
|
||||||
|
|
||||||
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
|
if (sStorage->boxOption != OPTION_MOVE_ITEMS)
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData
|
||||||
u8 metGame; // 0xB
|
u8 metGame; // 0xB
|
||||||
u32 pid; // 0xC
|
u32 pid; // 0xC
|
||||||
u32 exp; // 0x10
|
u32 exp; // 0x10
|
||||||
u16 moves[MAX_MON_MOVES]; // 0x14
|
enum Move moves[MAX_MON_MOVES]; // 0x14
|
||||||
u8 pp[MAX_MON_MOVES]; // 0x1C
|
u8 pp[MAX_MON_MOVES]; // 0x1C
|
||||||
u16 currentHP; // 0x20
|
u16 currentHP; // 0x20
|
||||||
u16 maxHP; // 0x22
|
u16 maxHP; // 0x22
|
||||||
|
|
@ -156,7 +156,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData
|
||||||
u16 spatk; // 0x28
|
u16 spatk; // 0x28
|
||||||
u16 spdef; // 0x2A
|
u16 spdef; // 0x2A
|
||||||
u16 speed; // 0x2C
|
u16 speed; // 0x2C
|
||||||
u16 item; // 0x2E
|
enum Item item; // 0x2E
|
||||||
u16 friendship; // 0x30
|
u16 friendship; // 0x30
|
||||||
u8 OTGender; // 0x32
|
u8 OTGender; // 0x32
|
||||||
u8 nature; // 0x33
|
u8 nature; // 0x33
|
||||||
|
|
|
||||||
|
|
@ -899,7 +899,7 @@ static void ReceiveDaycareMailData(struct RecordMixingDaycareMail *records, size
|
||||||
// Both daycare slots can hold an item, choose which one to use.
|
// 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 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.
|
// If both do or don't have associated mail, choose one randomly.
|
||||||
u32 itemId1, itemId2;
|
enum Item itemId1, itemId2;
|
||||||
idxs[j][MULTIPLAYER_ID] = i;
|
idxs[j][MULTIPLAYER_ID] = i;
|
||||||
itemId1 = GetDaycareMailItemId(&mixMail->mail[0]);
|
itemId1 = GetDaycareMailItemId(&mixMail->mail[0]);
|
||||||
itemId2 = GetDaycareMailItemId(&mixMail->mail[1]);
|
itemId2 = GetDaycareMailItemId(&mixMail->mail[1]);
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ struct GFRomHeader
|
||||||
const struct SpeciesInfo *speciesInfo;
|
const struct SpeciesInfo *speciesInfo;
|
||||||
const u8 (*abilityNames)[];
|
const u8 (*abilityNames)[];
|
||||||
const u8 *const *abilityDescriptions;
|
const u8 *const *abilityDescriptions;
|
||||||
const struct Item *items;
|
const struct ItemInfo *items;
|
||||||
const struct MoveInfo *moves;
|
const struct MoveInfo *moves;
|
||||||
const struct CompressedSpriteSheet *ballGfx;
|
const struct CompressedSpriteSheet *ballGfx;
|
||||||
const struct SpritePalette *ballPalettes;
|
const struct SpritePalette *ballPalettes;
|
||||||
|
|
|
||||||
24
src/scrcmd.c
24
src/scrcmd.c
|
|
@ -623,7 +623,7 @@ bool8 ScrCmd_random(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_additem(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));
|
u32 quantity = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
||||||
|
|
@ -634,7 +634,7 @@ bool8 ScrCmd_additem(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_removeitem(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));
|
u32 quantity = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
||||||
|
|
@ -645,7 +645,7 @@ bool8 ScrCmd_removeitem(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_checkitemspace(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));
|
u32 quantity = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1);
|
Script_RequestEffects(SCREFF_V1);
|
||||||
|
|
@ -656,7 +656,7 @@ bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_checkitem(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));
|
u32 quantity = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1);
|
Script_RequestEffects(SCREFF_V1);
|
||||||
|
|
@ -667,7 +667,7 @@ bool8 ScrCmd_checkitem(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
|
bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
|
||||||
{
|
{
|
||||||
u16 itemId = VarGet(ScriptReadHalfword(ctx));
|
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1);
|
Script_RequestEffects(SCREFF_V1);
|
||||||
|
|
||||||
|
|
@ -677,7 +677,7 @@ bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_addpcitem(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));
|
u16 quantity = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
||||||
|
|
@ -688,7 +688,7 @@ bool8 ScrCmd_addpcitem(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_checkpcitem(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));
|
u16 quantity = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1);
|
Script_RequestEffects(SCREFF_V1);
|
||||||
|
|
@ -2159,7 +2159,7 @@ bool8 ScrCmd_bufferpartymonnick(struct ScriptContext *ctx)
|
||||||
bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx)
|
bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx)
|
||||||
{
|
{
|
||||||
u8 stringVarIndex = ScriptReadByte(ctx);
|
u8 stringVarIndex = ScriptReadByte(ctx);
|
||||||
u16 itemId = VarGet(ScriptReadHalfword(ctx));
|
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1);
|
Script_RequestEffects(SCREFF_V1);
|
||||||
|
|
||||||
|
|
@ -2170,7 +2170,7 @@ bool8 ScrCmd_bufferitemname(struct ScriptContext *ctx)
|
||||||
bool8 ScrCmd_bufferitemnameplural(struct ScriptContext *ctx)
|
bool8 ScrCmd_bufferitemnameplural(struct ScriptContext *ctx)
|
||||||
{
|
{
|
||||||
u8 stringVarIndex = ScriptReadByte(ctx);
|
u8 stringVarIndex = ScriptReadByte(ctx);
|
||||||
u16 itemId = VarGet(ScriptReadHalfword(ctx));
|
enum Item itemId = VarGet(ScriptReadHalfword(ctx));
|
||||||
u16 quantity = VarGet(ScriptReadHalfword(ctx));
|
u16 quantity = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1);
|
Script_RequestEffects(SCREFF_V1);
|
||||||
|
|
@ -2514,10 +2514,10 @@ bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx)
|
||||||
{
|
{
|
||||||
u16 species = ScriptReadHalfword(ctx);
|
u16 species = ScriptReadHalfword(ctx);
|
||||||
u8 level = ScriptReadByte(ctx);
|
u8 level = ScriptReadByte(ctx);
|
||||||
u16 item = ScriptReadHalfword(ctx);
|
enum Item item = ScriptReadHalfword(ctx);
|
||||||
u16 species2 = ScriptReadHalfword(ctx);
|
u16 species2 = ScriptReadHalfword(ctx);
|
||||||
u8 level2 = ScriptReadByte(ctx);
|
u8 level2 = ScriptReadByte(ctx);
|
||||||
u16 item2 = ScriptReadHalfword(ctx);
|
enum Item item2 = ScriptReadHalfword(ctx);
|
||||||
|
|
||||||
Script_RequestEffects(SCREFF_V1);
|
Script_RequestEffects(SCREFF_V1);
|
||||||
|
|
||||||
|
|
@ -3070,7 +3070,7 @@ void ScriptSetDoubleBattleFlag(struct ScriptContext *ctx)
|
||||||
|
|
||||||
bool8 ScrCmd_removeallitem(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);
|
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,7 @@ void HasEnoughMonsForDoubleBattle(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool8 CheckPartyMonHasHeldItem(u16 item)
|
static bool32 CheckPartyMonHasHeldItem(enum Item item)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
@ -113,7 +113,7 @@ bool8 DoesPartyHaveEnigmaBerry(void)
|
||||||
return hasItem;
|
return hasItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateScriptedWildMon(u16 species, u8 level, u16 item)
|
void CreateScriptedWildMon(u16 species, u8 level, enum Item item)
|
||||||
{
|
{
|
||||||
u8 heldItem[2];
|
u8 heldItem[2];
|
||||||
|
|
||||||
|
|
@ -131,7 +131,7 @@ void CreateScriptedWildMon(u16 species, u8 level, u16 item)
|
||||||
SetMonData(&gEnemyParty[0], MON_DATA_HELD_ITEM, heldItem);
|
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 heldItem1[2];
|
||||||
u8 heldItem2[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 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
|
* 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;
|
struct Pokemon mon;
|
||||||
u32 i;
|
u32 i;
|
||||||
|
|
@ -460,7 +460,7 @@ static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u
|
||||||
return MON_GIVEN_TO_PARTY;
|
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;
|
struct Pokemon mon;
|
||||||
u8 heldItem[2];
|
u8 heldItem[2];
|
||||||
|
|
@ -504,7 +504,7 @@ void ScrCmd_createmon(struct ScriptContext *ctx)
|
||||||
u8 level = VarGet(ScriptReadHalfword(ctx));
|
u8 level = VarGet(ScriptReadHalfword(ctx));
|
||||||
|
|
||||||
u32 flags = ScriptReadWord(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 ball = PARSE_FLAG(1, ITEM_POKE_BALL);
|
||||||
u8 nature = PARSE_FLAG(2, NATURE_RANDOM);
|
u8 nature = PARSE_FLAG(2, NATURE_RANDOM);
|
||||||
u8 abilityNum = PARSE_FLAG(3, NUM_ABILITY_PERSONALITY);
|
u8 abilityNum = PARSE_FLAG(3, NUM_ABILITY_PERSONALITY);
|
||||||
|
|
|
||||||
12
src/shop.c
12
src/shop.c
|
|
@ -128,9 +128,9 @@ static void BuyMenuBuildListMenuTemplate(void);
|
||||||
static void BuyMenuInitBgs(void);
|
static void BuyMenuInitBgs(void);
|
||||||
static void BuyMenuInitWindows(void);
|
static void BuyMenuInitWindows(void);
|
||||||
static void BuyMenuDecompressBgGraphics(void);
|
static void BuyMenuDecompressBgGraphics(void);
|
||||||
static void BuyMenuSetListEntry(struct ListMenuItem *, u16, u8 *);
|
static void BuyMenuSetListEntry(struct ListMenuItem *, enum Item, u8 *);
|
||||||
static void BuyMenuAddItemIcon(u16, u8);
|
static void BuyMenuAddItemIcon(enum Item, u8);
|
||||||
static void BuyMenuRemoveItemIcon(u16, 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 BuyMenuPrint(u8 windowId, const u8 *text, u8 x, u8 y, s8 speed, u8 colorSet);
|
||||||
static void BuyMenuDrawMapGraphics(void);
|
static void BuyMenuDrawMapGraphics(void);
|
||||||
static void BuyMenuCopyMenuBgToBg1TilemapBuffer(void);
|
static void BuyMenuCopyMenuBgToBg1TilemapBuffer(void);
|
||||||
|
|
@ -580,7 +580,7 @@ static void BuyMenuBuildListMenuTemplate(void)
|
||||||
sShopData->itemsShowed = gMultiuseListMenuTemplate.maxShowed;
|
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)
|
if (sMartInfo.martType == MART_TYPE_NORMAL)
|
||||||
CopyItemName(item, name);
|
CopyItemName(item, name);
|
||||||
|
|
@ -683,7 +683,7 @@ static void BuyMenuPrintCursor(u8 scrollIndicatorsTaskId, u8 colorSet)
|
||||||
BuyMenuPrint(WIN_ITEM_LIST, gText_SelectorArrow2, 0, y, 0, 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 spriteId;
|
||||||
u8 *spriteIdPtr = &sShopData->itemSpriteIds[iconSlot];
|
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];
|
u8 *spriteIdPtr = &sShopData->itemSpriteIds[iconSlot];
|
||||||
if (*spriteIdPtr == SPRITE_NONE)
|
if (*spriteIdPtr == SPRITE_NONE)
|
||||||
|
|
|
||||||
|
|
@ -446,7 +446,7 @@ static void GetOwnerState(void)
|
||||||
static void GiveChallengePrize(void)
|
static void GiveChallengePrize(void)
|
||||||
{
|
{
|
||||||
#if FREE_TRAINER_HILL == FALSE
|
#if FREE_TRAINER_HILL == FALSE
|
||||||
u16 itemId = GetPrizeItemId();
|
enum Item itemId = GetPrizeItemId();
|
||||||
|
|
||||||
if (sHillData->challenge.numFloors != NUM_TRAINER_HILL_FLOORS || gSaveBlock1Ptr->trainerHill.receivedPrize)
|
if (sHillData->challenge.numFloors != NUM_TRAINER_HILL_FLOORS || gSaveBlock1Ptr->trainerHill.receivedPrize)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
2
src/tv.c
2
src/tv.c
|
|
@ -1109,7 +1109,7 @@ void TryPutPokemonTodayOnAir(void)
|
||||||
u16 ballsUsed;
|
u16 ballsUsed;
|
||||||
TVShow *show;
|
TVShow *show;
|
||||||
u32 language2;
|
u32 language2;
|
||||||
u16 itemLastUsed;
|
enum Item itemLastUsed;
|
||||||
|
|
||||||
ballsUsed = 0;
|
ballsUsed = 0;
|
||||||
TryPutRandomPokeNewsOnAir();
|
TryPutRandomPokeNewsOnAir();
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ u16 WonderNews_GetRewardInfo(void)
|
||||||
|
|
||||||
static u32 GetRewardItem(struct WonderNewsMetadata *data)
|
static u32 GetRewardItem(struct WonderNewsMetadata *data)
|
||||||
{
|
{
|
||||||
u32 itemId;
|
enum Item itemId;
|
||||||
data->newsType = WONDER_NEWS_NONE;
|
data->newsType = WONDER_NEWS_NONE;
|
||||||
itemId = data->berry + FIRST_BERRY_INDEX - 1;
|
itemId = data->berry + FIRST_BERRY_INDEX - 1;
|
||||||
data->berry = 0;
|
data->berry = 0;
|
||||||
|
|
|
||||||
|
|
@ -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")
|
SINGLE_BATTLE_TEST("Aerilate doesn't affect Judgment / Techno Blast / Multi-Attack's type")
|
||||||
{
|
{
|
||||||
enum Move move;
|
enum Move move;
|
||||||
u32 item;
|
enum Item item;
|
||||||
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
||||||
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
||||||
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_POKE_BALL; }
|
||||||
PARAMETRIZE { item = ITEM_GREAT_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")
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_NUGGET; }
|
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")
|
WILD_BATTLE_TEST("Ball Fetch only picks up the first failed ball, once per battle")
|
||||||
{
|
{
|
||||||
u32 item = 0;
|
enum Item item = ITEM_NONE;
|
||||||
u32 item2 = 0;
|
enum Item item2 = ITEM_NONE;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_X_ACCURACY; }
|
PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_X_ACCURACY; }
|
||||||
PARAMETRIZE { item = ITEM_GREAT_BALL; item2 = ITEM_ULTRA_BALL; }
|
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")
|
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_POKE_BALL; }
|
||||||
PARAMETRIZE { item = ITEM_GREAT_BALL; }
|
PARAMETRIZE { item = ITEM_GREAT_BALL; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_ABSORB_BULB; }
|
||||||
PARAMETRIZE { item = ITEM_LUMINOUS_MOSS; }
|
PARAMETRIZE { item = ITEM_LUMINOUS_MOSS; }
|
||||||
GIVEN {
|
GIVEN {
|
||||||
|
|
|
||||||
|
|
@ -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")
|
SINGLE_BATTLE_TEST("Galvanize doesn't affect Judgment / Techno Blast / Multi-Attack's type")
|
||||||
{
|
{
|
||||||
enum Move move;
|
enum Move move;
|
||||||
u32 item;
|
enum Item item;
|
||||||
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_SPLASH_PLATE; }
|
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_SPLASH_PLATE; }
|
||||||
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_DOUSE_DRIVE; }
|
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_DOUSE_DRIVE; }
|
||||||
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_WATER_MEMORY; }
|
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_WATER_MEMORY; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
SINGLE_BATTLE_TEST("Intimidate activates when it's no longer affected by Neutralizing Gas - opponent caused switches")
|
||||||
{
|
{
|
||||||
enum Move move;
|
enum Move move;
|
||||||
u32 item;
|
enum Item item;
|
||||||
PARAMETRIZE { move = MOVE_SCRATCH; item = ITEM_EJECT_BUTTON; }
|
PARAMETRIZE { move = MOVE_SCRATCH; item = ITEM_EJECT_BUTTON; }
|
||||||
PARAMETRIZE { move = MOVE_GROWL; item = ITEM_EJECT_PACK; }
|
PARAMETRIZE { move = MOVE_GROWL; item = ITEM_EJECT_PACK; }
|
||||||
PARAMETRIZE { move = MOVE_ROAR; item = ITEM_NONE; }
|
PARAMETRIZE { move = MOVE_ROAR; item = ITEM_NONE; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_FLAME_ORB; }
|
||||||
PARAMETRIZE { item = ITEM_TOXIC_ORB; }
|
PARAMETRIZE { item = ITEM_TOXIC_ORB; }
|
||||||
GIVEN {
|
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")
|
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_FLAME_ORB; species = SPECIES_GOLDUCK; ability = ABILITY_CLOUD_NINE; }
|
||||||
PARAMETRIZE { item = ITEM_TOXIC_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; }
|
PARAMETRIZE { item = ITEM_FLAME_ORB; species = SPECIES_RAYQUAZA; ability = ABILITY_AIR_LOCK; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_OWN_TEMPO, item = ITEM_NONE ; }
|
||||||
PARAMETRIZE { ability = ABILITY_MOLD_BREAKER, item = ITEM_NONE ; }
|
PARAMETRIZE { ability = ABILITY_MOLD_BREAKER, item = ITEM_NONE ; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
SINGLE_BATTLE_TEST("Normalize doesn't affect Judgment / Techno Blast / Multi-Attack's type")
|
||||||
{
|
{
|
||||||
enum Move move;
|
enum Move move;
|
||||||
u32 item;
|
enum Item item;
|
||||||
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
||||||
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
||||||
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
SINGLE_BATTLE_TEST("Pixilate doesn't affect Judgment / Techno Blast / Multi-Attack's type")
|
||||||
{
|
{
|
||||||
enum Move move;
|
enum Move move;
|
||||||
u32 item;
|
enum Item item;
|
||||||
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
||||||
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
||||||
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
SINGLE_BATTLE_TEST("Refrigerate doesn't affect Judgment / Techno Blast / Multi-Attack's type")
|
||||||
{
|
{
|
||||||
enum Move move;
|
enum Move move;
|
||||||
u32 item;
|
enum Item item;
|
||||||
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
PARAMETRIZE { move = MOVE_JUDGMENT; item = ITEM_ZAP_PLATE; }
|
||||||
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
PARAMETRIZE { move = MOVE_TECHNO_BLAST; item = ITEM_SHOCK_DRIVE; }
|
||||||
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
PARAMETRIZE { move = MOVE_MULTI_ATTACK; item = ITEM_ELECTRIC_MEMORY; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_PECHA_BERRY; }
|
||||||
PARAMETRIZE { item = ITEM_LUM_BERRY; }
|
PARAMETRIZE { item = ITEM_LUM_BERRY; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_ABSORB_BULB; }
|
||||||
PARAMETRIZE { item = ITEM_LUMINOUS_MOSS; }
|
PARAMETRIZE { item = ITEM_LUMINOUS_MOSS; }
|
||||||
GIVEN {
|
GIVEN {
|
||||||
|
|
|
||||||
|
|
@ -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")
|
AI_SINGLE_BATTLE_TEST("AI avoids contact moves against rocky helmet")
|
||||||
{
|
{
|
||||||
u32 item;
|
enum Item item;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
PARAMETRIZE { item = ITEM_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_ROCKY_HELMET; }
|
PARAMETRIZE { item = ITEM_ROCKY_HELMET; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_BUTTON; move = MOVE_TACKLE; }
|
||||||
PARAMETRIZE { item = ITEM_EJECT_PACK; move = MOVE_TAIL_WHIP; }
|
PARAMETRIZE { item = ITEM_EJECT_PACK; move = MOVE_TAIL_WHIP; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; move = MOVE_ROAR; }
|
PARAMETRIZE { item = ITEM_NONE; move = MOVE_ROAR; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_CHOICE_BAND; }
|
PARAMETRIZE { item = ITEM_CHOICE_BAND; }
|
||||||
GIVEN {
|
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")
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_FOCUS_SASH; }
|
PARAMETRIZE { item = ITEM_FOCUS_SASH; }
|
||||||
GIVEN {
|
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")
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_CHOICE_BAND; }
|
PARAMETRIZE { item = ITEM_CHOICE_BAND; }
|
||||||
GIVEN {
|
GIVEN {
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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;
|
bool32 alreadyOwned;
|
||||||
u32 catchingChance;
|
u32 catchingChance;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
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_LUCKY_EGG; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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")
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_EXP_SHARE; }
|
PARAMETRIZE { item = ITEM_EXP_SHARE; }
|
||||||
|
|
|
||||||
|
|
@ -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")
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_RUSTED_SWORD; }
|
PARAMETRIZE { item = ITEM_RUSTED_SWORD; }
|
||||||
GIVEN {
|
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")
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_RUSTED_SHIELD; }
|
PARAMETRIZE { item = ITEM_RUSTED_SHIELD; }
|
||||||
GIVEN {
|
GIVEN {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
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_CHOICE_BAND; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
PARAMETRIZE { item = ITEM_NONE; }
|
||||||
GIVEN {
|
GIVEN {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ ASSUMPTIONS
|
||||||
|
|
||||||
SINGLE_BATTLE_TEST("Ability Shield protects against Neutralizing Gas")
|
SINGLE_BATTLE_TEST("Ability Shield protects against Neutralizing Gas")
|
||||||
{
|
{
|
||||||
u32 item;
|
enum Item item;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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)")
|
SINGLE_BATTLE_TEST("Ability Shield protects against Mold Breaker (no message)")
|
||||||
{
|
{
|
||||||
u32 item;
|
enum Item item;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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)")
|
SINGLE_BATTLE_TEST("Ability Shield protects against Mycelium Might (no message)")
|
||||||
{
|
{
|
||||||
u32 item;
|
enum Item item;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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)")
|
SINGLE_BATTLE_TEST("Ability Shield protects against Sunsteel Strike (no message)")
|
||||||
{
|
{
|
||||||
u32 item;
|
enum Item item;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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")
|
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_ABILITY_SHIELD; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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")
|
SINGLE_BATTLE_TEST("Ability Shield protects against Skill Swap")
|
||||||
{
|
{
|
||||||
u32 item;
|
enum Item item;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
PARAMETRIZE { item = ITEM_ABILITY_SHIELD; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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")
|
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_ABILITY_SHIELD; }
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
PARAMETRIZE { item = ITEM_NONE; }
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ ASSUMPTIONS
|
||||||
|
|
||||||
SINGLE_BATTLE_TEST("Berserk Gene sharply raises attack at the start of a single battle", s16 damage)
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
||||||
GIVEN {
|
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)
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
||||||
GIVEN {
|
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)
|
SINGLE_BATTLE_TEST("Berserk Gene activates on switch in", s16 damage)
|
||||||
{
|
{
|
||||||
u16 item;
|
enum Item item;
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
PARAMETRIZE { item = ITEM_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
||||||
GIVEN {
|
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)
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
PARAMETRIZE { item = ITEM_BERSERK_GENE; }
|
||||||
GIVEN {
|
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)
|
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;
|
bool8 positionLeft = FALSE;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_NONE; }
|
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")
|
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_FULL_HEAL; }
|
||||||
PARAMETRIZE { item = ITEM_HEAL_POWDER; }
|
PARAMETRIZE { item = ITEM_HEAL_POWDER; }
|
||||||
PARAMETRIZE { item = ITEM_PEWTER_CRUNCHIES; }
|
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")
|
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_PERSIM_BERRY; }
|
||||||
PARAMETRIZE { item = ITEM_LUM_BERRY; }
|
PARAMETRIZE { item = ITEM_LUM_BERRY; }
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ ASSUMPTIONS
|
||||||
|
|
||||||
SINGLE_BATTLE_TEST("Big Root increases healing from absorbing moves", s16 damage, s16 heal)
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_BIG_ROOT; }
|
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)
|
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;
|
enum Move move;
|
||||||
|
|
||||||
PARAMETRIZE { item = ITEM_NONE; move = MOVE_LEECH_SEED; }
|
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)
|
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_NONE; }
|
||||||
PARAMETRIZE { item = ITEM_BIG_ROOT; }
|
PARAMETRIZE { item = ITEM_BIG_ROOT; }
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user