mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-27 19:40:01 -05:00
Decomped CanUseStatusMove()
This commit is contained in:
@@ -11,6 +11,18 @@ enum MoveFlags
|
||||
MOVE_FLAG_DISABLED = 1 << 5 // Disabled by an effect like Taunt.
|
||||
};
|
||||
|
||||
enum AccuracyType
|
||||
{
|
||||
// Accuracy used for all moves.
|
||||
ACCURACY_TYPE_GLOBAL,
|
||||
// Multiplied with the global accuracy for offensive moves (i.e., not status moves).
|
||||
ACCURACY_TYPE_OFFENSIVE,
|
||||
// Used by the AI to determine how often to use Spikes.
|
||||
// Values exist for all other moves, though they seem to be unused.
|
||||
ACCURACY_TYPE_USE_CHANCE,
|
||||
NUM_ACCURACY_TYPES
|
||||
};
|
||||
|
||||
struct MoveData
|
||||
{
|
||||
u8 *namePointer;
|
||||
@@ -22,10 +34,8 @@ struct MoveData
|
||||
// The AI consider certain moves to have different range than they actually do.
|
||||
/* 0xC */ u8 maxPP;
|
||||
/* 0xD */ u8 weight;
|
||||
/* 0xE */ u8 accuracy[2];
|
||||
// Used by the AI to determine how often to use Spikes.
|
||||
// Values exist for all other moves, though they seem to be unused.
|
||||
/* 0x10 */ u8 useChance;
|
||||
// There are multiple accuracy values. These are define with the AccuracyType enum.
|
||||
/* 0xE */ u8 accuracy[NUM_ACCURACY_TYPES];
|
||||
/* 0x11 */ u8 hitCount; // Maximum number of times the move will hit. Used for multi-hit moves like Fury Attack.
|
||||
u8 unk12;
|
||||
/* 0x13 */ u8 criticalHitChance;
|
||||
|
||||
@@ -5,5 +5,7 @@
|
||||
|
||||
// 0x7C580
|
||||
s32 WeightMoveIfUsable(s32 numPotentialTargets, s32 targetingFlags, struct DungeonEntity *user, struct DungeonEntity *target, struct PokemonMove *move, u32 hasStatusChecker);
|
||||
// 0x7C648
|
||||
bool8 CanUseStatusMove(s32 targetingFlags, struct DungeonEntity *user, struct DungeonEntity *target, struct PokemonMove *move, bool32 hasStatusChecker);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -11,6 +11,8 @@ u8 GetMoveType(struct PokemonMove *move);
|
||||
// 0x92B90
|
||||
u8 GetMoveWeight(struct PokemonMove *move);
|
||||
s32 GetMovePower(struct PokemonMove *move);
|
||||
// 0x92BD8
|
||||
s32 GetMoveAccuracy(struct PokemonMove *move, u32 accuracyType);
|
||||
// 0x92BF4
|
||||
u32 GetMoveMaxPP(struct PokemonMove *move);
|
||||
// 0x92C54
|
||||
|
||||
Reference in New Issue
Block a user