Skip to content
25 changes: 25 additions & 0 deletions include/constants/move.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,29 @@ enum TargetingFlag
TARGETING_FLAG_EXPOSE = 0x600,
};

enum MoveTarget
{
TARGET_ENEMIES = 0,
TARGET_PARTY = 1, // including the user
TARGET_ALL = 2, // including the user
TARGET_USER = 3,
TARGET_ENEMIES_AFTER_CHARGING = 4, // in some sense the user while charging, then enemies
TARGET_ALL_EXCEPT_USER = 5,
TARGET_TEAMMATES = 6, // excluding the user
TARGET_SPECIAL = 15, // for weird moves
};

enum MoveAiCondition
{
AI_CONDITION_NONE = 0,
// The AI will consider a target elegible wirh a chance equal to the
// move's "ai_condition_random_chance" value
AI_CONDITION_RANDOM = 0x100,
AI_CONDITION_HP_25 = 0x200, // Target has HP <= 25%
AI_CONDITION_STATUS = 0x300, // Target has a negative status condition
AI_CONDITION_ASLEEP = 0x400, // Target is asleep, napping or in a nightmare
AI_CONDITION_HP_25_OR_STATUS = 0x500, // Target has HP <= 25% or a negative status condition
AI_CONDITION_GHOST = 0x600, // Target is ghost-type and not exposed
};

#endif // GUARD_CONSTANTS_MOVE_H
31 changes: 16 additions & 15 deletions include/dungeon_8041AD0.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@

#include "structs/dungeon_entity.h"
#include "structs/str_damage.h"
#include "structs/str_stat_index.h"

s32 sub_80416E0(PixelPos *pos, u32 param_2, bool8 param_3);
void sub_804178C(u8 param_1);
u32 EntityGetStatusSprites(Entity *entity);
void sub_8041888(u8 param_1);
void EntityUpdateStatusSprites(Entity *entity);
void UpdateStatusIconFlags(Entity *entity);
void sub_8041AD0(Entity *pokemon);
void sub_8041AE0(Entity *pokemon);
void sub_8041AF4(Entity *pokemon);
Expand Down Expand Up @@ -36,7 +37,7 @@ void sub_8041BD0(Entity *pokemon, u8 r1);
void sub_8041BE8(Entity *pokemon);
void sub_8041BF8(Entity *pokemon);
void sub_8041C08(Entity *pokemon);
void sub_8041C1C(Entity *pokemon);
void PlayParalysisEffect(Entity *pokemon);
void nullsub_69(Entity *pokemon, Entity *target);
void sub_8041C34(Entity *pokemon);
void nullsub_70(Entity *pokemon);
Expand All @@ -49,8 +50,8 @@ void nullsub_72(Entity *pokemon);
void nullsub_73(Entity *pokemon);
void sub_8041C94(Entity *pokemon);
void sub_8041CA8(Entity *pokemon);
void sub_8041CB8(Entity *pokemon);
void sub_8041CCC(Entity *pokemon);
void PlaySpeedUpEffect(Entity *pokemon);
void PlaySpeedDownEffect(Entity *pokemon);
void sub_8041CDC(Entity *pokemon);
void sub_8041CEC(Entity *pokemon);
void nullsub_74(Entity *pokemon);
Expand Down Expand Up @@ -93,18 +94,18 @@ void sub_8041EE8(Entity *pokemon);
void sub_8041EF8(Entity *pokemon);
void sub_8041F08(Entity *pokemon);
void nullsub_90(Entity *pokemon);
void sub_8041F28(Entity *pokemon, u32 r1);
void sub_8041F4C(Entity *pokemon, u32 r1);
void sub_8041F70(Entity *pokemon, u32 r1);
void sub_8041F94(Entity *pokemon, u32 r1);
void sub_8041FB4(Entity *pokemon, u32 r1);
void sub_8041FD8(Entity *pokemon, u32 r1);
void sub_8041FFC(Entity *pokemon, u32 r1);
void sub_804201C(Entity *pokemon, u32 r1);
void sub_8042040(Entity *pokemon, u32 r1);
void sub_8042060(Entity *pokemon, u32 r1);
void PlayOffensiveStatDownEffect(Entity *pokemon, StatIndex stat);
void PlayDefensiveStatDownEffect(Entity *pokemon, StatIndex stat);
void PlayOffensiveStatUpEffect(Entity *pokemon, StatIndex stat);
void PlayDefensiveStatUpEffect(Entity *pokemon, StatIndex stat);
void PlayOffensiveStatMultiplierUpEffect(Entity *pokemon, StatIndex stat);
void PlayOffensiveStatMultiplierDownEffect(Entity *pokemon, StatIndex stat);
void PlayDefensiveStatMultiplierUpEffect(Entity *pokemon, StatIndex stat);
void PlayDefensiveStatMultiplierDownEffect(Entity *pokemon, StatIndex stat);
void PlayHitChanceUpEffect(Entity *pokemon, StatIndex stat);
void PlayHitChanceDownEffect(Entity *pokemon, u32 r1);
void sub_8042080(Entity *pokemon, u32 r1);
void sub_80420A0(Entity *pokemon);
void PlayCringeExclamationPointEffect(Entity *pokemon);
void nullsub_91(Entity *pokemon);
void sub_80420B8(Entity *pokemon);
void sub_80420C8(Entity *pokemon);
Expand Down
5 changes: 0 additions & 5 deletions include/dungeon_ai_attack.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,6 @@ struct AIPossibleMove

void ChooseAIMove(Entity *pokemon);
s32 AIConsiderMove(struct AIPossibleMove *aiPossibleMove, Entity *pokemon, Move *move);
bool8 IsTargetInLineRange(Entity *user, Entity *target, s32 range);
s32 TryAddTargetToAITargetList(s32 numPotentialTargets, s32 targetingFlags, Entity *user, Entity *target, Move *move, u32 hasStatusChecker);
bool8 IsAITargetEligible(s32 targetingFlags, Entity *user, Entity *target, Move *move, bool32 hasStatusChecker);
s32 WeightMove(Entity *user, s32 targetingFlags, Entity *target, u32 moveType);
bool8 TargetRegularAttack(Entity *pokemon, u32 *targetDir, bool8 checkPetrified);
bool8 IsTargetInRange(Entity *pokemon, Entity *targetPokemon, s32 direction, s32 maxRange);
void HandleUseMoveAIAction(Entity *target);
void HandleUseOrbAction(Entity *pokemon);
Expand Down
5 changes: 0 additions & 5 deletions include/dungeon_ai_movement.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,6 @@
#include "structs/dungeon_entity.h"

void AIMovement(Entity *pokemon, bool8 showRunAwayEffect);
bool8 CanTakeItem(Entity *pokemon);
bool8 ChooseTargetPosition(Entity *pokemon);
void DecideMovement(Entity *pokemon, bool8 showRunAwayEffect);
bool8 AvoidEnemies(Entity *pokemon);
bool8 Wander(Entity *pokemon);
void sub_807BB78(Entity *pokemon);

#endif
12 changes: 6 additions & 6 deletions include/dungeon_logic.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ s32 sub_8070828(Entity *pokemon, bool8 displayMessage);
void SetMessageArgument_2(u8 *buffer, EntityInfo *param_2, s32 colorNum);
void sub_8070968(u8 *buffer, EntityInfo *entityInfo, s32 colorNum);
void CopyEntityNameForDungeonExitSummary(u8 *buffer, EntityInfo *entityInfo);
bool8 HasNegativeStatus(Entity *pokemon);
bool8 IsSleeping(Entity *pokemon);
bool8 HasLowHealth(Entity *pokemon);
bool8 MonsterHasNegativeStatus(Entity *pokemon);
bool8 IsMonsterSleeping(Entity *pokemon);
bool8 MonsterHasQuarterHp(Entity *pokemon);
bool8 CheckVariousStatuses2(Entity *pokemon, bool8 checkBlinker);
bool8 sub_8070BC0(Entity* entity);
bool8 CheckVariousConditions(Entity *pokemon);
Expand All @@ -40,14 +40,14 @@ bool8 ShouldMonsterRunAwayAndShowEffect(Entity *pokemon, bool8 showRunAwayEffect
void CheckRunAwayVisualFlag(Entity *pokemon, bool8 showRunAwayEffect);
u8 GetTreatmentBetweenMonsters(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified);
u8 GetTreatmentBetweenMonstersIgnoreStatus(Entity * pokemon, Entity * target);
bool8 HasSafeguardStatus(Entity * pokemon, Entity * target, bool8 displayMessage);
bool8 sub_8071728(Entity * pokemon, Entity * target, bool8 displayMessage);
bool8 SafeguardIsActive(Entity * pokemon, Entity * target, bool8 displayMessage);
bool8 IsProtectedFromStatDrops(Entity * pokemon, Entity * target, bool8 displayMessage);
bool8 sub_80717A4(Entity *pokemon, u16 moveID);
bool8 AbilityIsActive(Entity *pokemon, u8 ability);
bool8 MonsterIsType(Entity *pokemon, u8 type);
bool8 CanSeeInvisibleMonsters(Entity *pokemon);
bool8 IsTacticSet(Entity *pokemon, u8 tactic);
bool8 IQSkillIsEnabled(Entity *pokemon, u8 IQSkill);
bool8 IqSkillIsEnabled(Entity *pokemon, u8 IQSkill);
void LoadIQSkills(Entity *pokemon);
bool8 CanSeeTeammate(Entity * pokemon);
u8 GetMoveTypeForMonster(Entity *pokemon, Move *pokeMove);
Expand Down
17 changes: 14 additions & 3 deletions include/dungeon_range.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,22 @@

#include "structs/str_position.h"
#include "structs/dungeon_entity.h"
#include "structs/str_dungeon.h"

bool8 IsPositionActuallyInSight(DungeonPos *pos1, DungeonPos *pos2);
bool8 IsPositionInSight(DungeonPos *pos1, DungeonPos *pos2);
// Actual function in Sky. TODO: Find other uses of it and sync with Sky.
static inline s32 GetVisibilityRange(void)
{
s32 visibilityRange = gDungeon->unk181e8.visibilityRange;
if (visibilityRange == 0)
return 2;

return visibilityRange;
}

bool8 IsPositionActuallyInSight(DungeonPos *origin, DungeonPos *target);
bool8 IsPositionInSight(DungeonPos *origin, DungeonPos *target);
void sub_80833E8(DungeonPos *param_1, s32 *param_2);
bool8 IsTargetTwoTilesAway(DungeonPos *pos1, DungeonPos *pos2);
bool8 IsPositionWithinTwoTiles(DungeonPos *pos1, DungeonPos *pos2);
bool8 sub_8083568(s32 inX, s32 inY, u8 index);
Entity* GetLeader(void);
EntityInfo* GetLeaderInfo(void);
Expand Down
2 changes: 1 addition & 1 deletion include/items.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ static inline bool8 ItemSticky(Item *item)

static inline bool8 ItemExists(Item *item)
{
return (item->flags & ITEM_FLAG_EXISTS);
return (item->flags & ITEM_FLAG_EXISTS) != 0; // != 0 is necessary for Blue matching
}

static inline bool8 ItemSet(Item *item)
Expand Down
45 changes: 12 additions & 33 deletions include/math.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,38 +51,17 @@ bool8 FP48_16_SLessThan(const s48_16 *a, const s48_16 *b);
void FP48_16_Add(s48_16 *dst, s48_16 *a, s48_16 *b);
void FP48_16_Subtract(s48_16 *dst, s48_16 *a, s48_16 *b);

//static inline bool8 F248Equal(s24_8 x, s24_8 y) {
// return x.raw == y.raw;
//}

#define F248LessThanInt(x, y) (x.raw < 0x100 * y)
#define F248LessThanFloat(x, y) (x.raw < (int)(y * 0x100))
#define FloatLessThanF248(x, y) ((int)(x * 0x100) < y.raw)
//static inline bool8 F248LessThanOne(s24_8 x) {
// return x.raw < 0x100;
//}
#define F248LessThan(x, y) (x.raw < y.raw)
#define F248GreaterThan(x, y) (x.raw > y.raw)
#define F248Equal(x, y) (x.raw == y.raw)
#define F248EqualsInt(x, y) (x.raw == 0x100 * y)

//static inline bool8 F248LessThan(s24_8 x, s24_8 y) {
// return x.raw < y.raw;
//}

#define F248_AddInt(x, y) ((s24_8){x.raw + 0x100 * y})
#define F248_SubInt(x, y) ((s24_8){x.raw - 0x100 * y})

static inline s24_8 F248_Add(s24_8 x, s24_8 y) {
return (s24_8){x.raw + y.raw};
}

static inline s24_8 F248_Sub(s24_8 x, s24_8 y) {
return (s24_8){x.raw - y.raw};
}

static inline s24_8 F248_MulInt(s24_8 x, s32 y) {
return (s24_8){x.raw * y};
}
#define F248LessThanInt(x, y) ((x) < 0x100 * (y))
#define F248LessThanFloat(x, y) ((x) < (int)((y) * 0x100))
#define FloatLessThanF248(x, y) ((int)((x) * 0x100) < (y))
#define F248LessThan(x, y) ((x) < (y))
#define F248GreaterThan(x, y) ((x) > (y))
#define F248Equal(x, y) ((x) == (y))
#define F248EqualsInt(x, y) ((x) == 0x100 * (y))
#define F248_AddInt(x, y) ((s24_8)((x) + 0x100 * (y))
#define F248_SubInt(x, y) ((s24_8)((x) - 0x100 * (y))
#define F248_Add(x, y)((x) + (y))
#define F248_Sub(x, y)((x) - (y))
#define F248_MulInt(x, y)((x) * (y))

#endif // GUARD_MATH_H
7 changes: 4 additions & 3 deletions include/move_orb_actions_1.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define GUARD_MOVE_ORB_ACTIONS_1_H

#include "structs/dungeon_entity.h"
#include "structs/str_stat_index.h"

bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 sub_805768C(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand All @@ -27,7 +28,7 @@ bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId)
bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move * move, s32 itemId);
bool8 ScreechMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, s32 itemId);
bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, s32 itemId);
bool8 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, s32 itemId);
bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, s32 itemId);
bool8 FakeTearsMoveAction(Entity * pokemon, Entity * target, Move *move, s32 itemId);
bool8 SpiteMoveAction(Entity * pokemon, Entity * target, Move *move, s32 itemId);
Expand Down Expand Up @@ -79,7 +80,7 @@ bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemI
bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);

extern const s32 gStatIndexAtkDef;
extern const s32 gStatIndexSpecial;
extern const StatIndex gStatIndexAtkDef;
extern const StatIndex gStatIndexSpecial;

#endif /* ifndef GUARD_MOVE_ORB_ACTIONS_1_H */
5 changes: 3 additions & 2 deletions include/move_orb_actions_2.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define GUARD_MOVE_ORB_ACTIONS_2_H

#include "structs/dungeon_entity.h"
#include "structs/str_stat_index.h"

bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand Down Expand Up @@ -32,7 +33,7 @@ bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool32 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand All @@ -42,7 +43,7 @@ bool8 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 NaturePowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, s32 itemId, u32 param_5);
bool8 DamageLowerDefMoveAction(Entity *pokemon, Entity *target, Move *move, StatIndex stat, u32 param_5);
bool8 SonicboomMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 ExplosionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand Down
3 changes: 2 additions & 1 deletion include/move_orb_actions_3.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define GUARD_MOVE_ORB_ACTIONS_3_H

#include "structs/dungeon_entity.h"
#include "structs/str_stat_index.h"

bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand Down Expand Up @@ -41,7 +42,7 @@ bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId
bool8 BellyDrumMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 itemId,u8 param_5);
bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 itemId,u8 param_5);
bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId, u32 param_5);
bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, StatIndex stat, u32 param_5);
bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 HandleColorChange(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand Down
3 changes: 2 additions & 1 deletion include/move_orb_actions_4.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define GUARD_MOVE_ORB_ACTIONS_4_H

#include "structs/dungeon_entity.h"
#include "structs/str_stat_index.h"

bool8 DreamEaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 sub_805B734(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand Down Expand Up @@ -50,7 +51,7 @@ bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId)
bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 MetalClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId, s32 param_5);
bool8 MetalClawMoveAction(Entity * pokemon,Entity * target,Move *move, StatIndex stat, s32 param_5);
bool8 InvisifyOrbAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 CalmMindMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
bool8 DefenseCurlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 itemId);
Expand Down
27 changes: 14 additions & 13 deletions include/move_orb_effects_1.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#define GUARD_MOVE_ORB_EFFECTS_1_H

#include "structs/dungeon_entity.h"
#include "structs/str_stat_index.h"
#include "number_util.h"

#define FLASH_FIRE_STATUS_NONE 0
Expand All @@ -27,20 +28,20 @@ void IngrainedStatusTarget(Entity * pokemon, Entity * target);
void WrapTarget(Entity * pokemon, Entity * target);
void sub_8076CB4(s32 param_1);
void PetrifiedStatusTarget(Entity * pokemon, Entity * target);
void LowerAttackStageTarget(Entity * pokemon, Entity * target, s32 index, s32 decrement, u8 param_5, bool8 displayMessage);
void LowerDefenseStageTarget(Entity * pokemon, Entity * target, s32 index, s32 decrement, u8 param_5, bool8 displayMessage);
void RaiseAttackStageTarget(Entity * pokemon, Entity * target, s32 index, s32 increment);
void RaiseDefenseStageTarget(Entity * pokemon, Entity * target, s32 index, s32 increment);
void LowerOffensiveStat(Entity *user, Entity *target, StatIndex stat, s32 nStages, bool8 checkProtected, bool8 logMsgProtected);
void LowerDefensiveStat(Entity *user, Entity *target, StatIndex stat, s32 nStages, bool8 checkProtected, bool8 logMsgProtected);
void BoostOffensiveStat(Entity *user, Entity *target, StatIndex stat, s32 nStages);
void BoostDefensiveStat(Entity *user, Entity *target, StatIndex stat, s32 nStages);
u8 GetFlashFireStatus(Entity *pokemon);
void UpdateFlashFireBoost(Entity * pokemon, Entity *target);
void ChangeAttackMultiplierTarget(Entity *pokemon, Entity *target, u32 statStage, s24_8 param_4, bool8 displayMessage);
void ChangeDefenseMultiplierTarget(Entity *pokemon, Entity *target, u32 statStage, s24_8 param_4, bool8 displayMessage);
void RaiseAccuracyStageTarget(Entity * pokemon, Entity * target, s32 statStage);
void LowerAccuracyStageTarget(Entity * pokemon, Entity * target, s32 statStage, bool8 displayMessage);
void CringeStatusTarget(Entity * pokemon,Entity * target, bool8 displayMessage);
void ParalyzeStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessage);
void RaiseMovementSpeedTarget(Entity * pokemon, Entity * target, s32 turns, bool8 diplayMessage);
void LowerMovementSpeedTarget(Entity * pokemon, Entity * target, s32 levels, bool8 displayMessage);
void ActivateFlashFire(Entity * pokemon, Entity *target);
void ApplyOffensiveStatMultiplier(Entity *user, Entity *target, StatIndex stat, s24_8 multiplier, bool8 displayMessage);
void ApplyDefensiveStatMultiplier(Entity *user, Entity *target, StatIndex stat, s24_8 multiplier, bool8 displayMessage);
void BoostHitChanceStat(Entity *user, Entity *target, StatIndex stat);
void LowerHitChanceStat(Entity *user, Entity *target, StatIndex stat, bool8 displayMessage);
void TryInflictCringeStatus(Entity *user ,Entity *target, bool8 displayMessage);
void TryInflictParalysisStatus(Entity *user, Entity *target, bool8 displayMessage);
void BoostSpeed(Entity *user, Entity *target, s32 turns, bool8 displayMessage);
void LowerSpeed(Entity *user, Entity *target, s32 nStages, bool8 displayMessage);

#endif

2 changes: 1 addition & 1 deletion include/moves.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ bool8 FailsWhileMuzzled(u16 moveID);
const u8 *GetHMTMMoves(s16 species);
const u8 *GetLevelUpMoves(s16 species);
s32 GetLinkedSequence(s32 index, Move *moves, u16 *sequenceMoveIDs);
s32 GetMoveAccuracyOrAIChance(Move *move, u32 accuracyType);
s32 GetMoveAccuracyOrAiChance(Move *move, u32 accuracyType);
u8 GetMoveAIWeight(Move *move);
s32 GetMoveBasePower(Move *move);
u32 GetMoveBasePP(Move *move);
Expand Down
Loading