diff --git a/include/dungeon_move.h b/include/dungeon_move.h index fc68e057e..8da10c6f8 100644 --- a/include/dungeon_move.h +++ b/include/dungeon_move.h @@ -22,7 +22,7 @@ extern s32 gUnknown_202F224; extern s32 gMetronomeCalledArrayId; void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move *move, s32 itemId, bool32 isLinkedMove); -bool32 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId); +bool8 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId); s32 HandleDamagingMove(Entity *attacker, Entity *target, Move *move, s24_8 modifier, s32 itemId); s32 sub_80556BC(Entity *attacker, Entity *target, u8 moveType, Move *move, s24_8 modifier, s32 itemId); s32 sub_8055864(Entity *attacker, Entity *target, Move *move, s32 param_4, s32 itemId); diff --git a/include/move_orb_actions_1.h b/include/move_orb_actions_1.h new file mode 100644 index 000000000..a11bd053a --- /dev/null +++ b/include/move_orb_actions_1.h @@ -0,0 +1,83 @@ +#ifndef MOVE_ORB_ACTIONS_1_H +#define MOVE_ORB_ACTIONS_1_H + +#include "structs/dungeon_entity.h" + +bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_805768C(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 YawnMoveAction(Entity * pokemon, Entity *target, Move *move, s32 param_4); +bool8 BasicSleepMoveAction(Entity * pokemon, Entity *target, Move *move, s32 param_4); +bool8 NightmareMoveAction(Entity * pokemon, Entity *target, Move *move, s32 param_4); +bool8 MorningSunMoveAction(Entity * pokemon,Entity * target, Move *move, s32 param_4); +bool8 VitalThrowMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4); +bool8 DigMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4); +bool8 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4); +bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 PainSplitMoveAction(Entity *attacker, Entity *target, Move *move, s32 param_4); +bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 StringShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4); +bool8 ScreechMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4); +bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4); +bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4); +bool8 FakeTearsMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4); +bool8 SpiteMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4); +bool8 FocusEnergyMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4); +bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MirrorMoveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MementoMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FlatterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ReturnMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4); +bool8 GrudgeMoveAction(Entity *pokemon, Entity * target, Move *move, s32 param_4); +bool8 CounterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4); +bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4); +bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4); +bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4); +bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4); +bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); + + +#endif /* ifndef MOVE_ORB_ACTIONS_1_H */ diff --git a/include/move_orb_actions_2.h b/include/move_orb_actions_2.h new file mode 100644 index 000000000..be911e692 --- /dev/null +++ b/include/move_orb_actions_2.h @@ -0,0 +1,57 @@ +#ifndef MOVE_ORB_ACTIONS_2_H +#define MOVE_ORB_ACTIONS_2_H + +#include "structs/dungeon_entity.h" + +bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 AbsorbMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 DoubleEdgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 TwisterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 TwineedleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 HornDrillMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool32 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 PsychUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ConversionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 NaturePowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, s32 param_4, u32 param_5); +bool8 SonicboomMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ExplosionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 WaterSpoutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +void sub_80783C4(Entity * pokemon, Entity * target, bool8 param_3); +bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); + + +#endif /* ifndef MOVE_ORB_ACTIONS_2_H */ + diff --git a/include/move_orb_actions_3.h b/include/move_orb_actions_3.h new file mode 100644 index 000000000..eef01b29e --- /dev/null +++ b/include/move_orb_actions_3.h @@ -0,0 +1,39 @@ +#ifndef MOVE_ORB_ACTIONS_3_H +#define MOVE_ORB_ACTIONS_3_H + +#include "structs/dungeon_entity.h" + +bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 TrickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 TripleKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BeatUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 CrushClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 BlazeKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 EruptionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 GlareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 PoisonTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 RoarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MagnitudeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); + + +#endif /* ifndef MOVE_ORB_ACTIONS_3_H */ diff --git a/include/status_actions.h b/include/move_orb_actions_4.h similarity index 83% rename from include/status_actions.h rename to include/move_orb_actions_4.h index 74add8fdd..10107d46e 100644 --- a/include/status_actions.h +++ b/include/move_orb_actions_4.h @@ -1,5 +1,5 @@ -#ifndef GUARD_STATUS_ACTIONS_H -#define GUARD_STATUS_ACTIONS_H +#ifndef GUARD_MOVE_ORB_ACTIONS_4_H +#define GUARD_MOVE_ORB_ACTIONS_4_H #include "constants/move.h" #include "structs/dungeon_entity.h" @@ -43,6 +43,16 @@ bool8 ShockerOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) bool8 sub_805C208(Entity *pokemon, Entity *target, Move *move, u32 param_4); bool8 sub_805C288(Entity *pokemon, Entity *target, Move *move, s32 param_4); bool8 OneRoomOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MistBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FalseSwipeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 HiddenPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); + +// move_orb_actions_5 bool8 FillInOrbAction(Entity *pokemon,Entity *target, Move *move, s32 param_4); bool8 sub_805C3DC(Entity *pokemon, Entity *target, Move *move, s32 param_4); bool8 ItemizeOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); diff --git a/src/dungeon_config.c b/src/dungeon_config.c index a0b596cc1..18e5fec07 100644 --- a/src/dungeon_config.c +++ b/src/dungeon_config.c @@ -7,115 +7,11 @@ #include "constants/monster.h" #include "constants/dungeon_action.h" #include "constants/move_id.h" - -// TODO: move these to header files -extern bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 YawnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 NightmareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PainSplitMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WhirlpoolMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FakeTearsMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SpiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FlatterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ReturnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 GigaDrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ReversalMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SmellingSaltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AbsorbMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DoubleEdgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TwisterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TwineedleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HornDrillMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TrickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TripleKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BeatUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CrushClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BlazeKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 EruptionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 GlareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RoarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MagnitudeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MistBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FalseSwipeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HiddenPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DreamEaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LusterPurgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DragonRageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HandleRegularDamagingMove(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +#include "dungeon_move.h" +#include "move_orb_actions_1.h" +#include "move_orb_actions_2.h" +#include "move_orb_actions_3.h" +#include "move_orb_actions_4.h" // Huge list of various config variables for dungeon moves/music/abilities/items/etc. All in one file, because these are scattered all around the codebase with only one pksdir present. diff --git a/src/dungeon_move.c b/src/dungeon_move.c index ed7fb698b..f0b8bc963 100644 --- a/src/dungeon_move.c +++ b/src/dungeon_move.c @@ -31,12 +31,15 @@ #include "dungeon_util.h" #include "math.h" #include "move_effects_target.h" +#include "move_orb_actions_1.h" +#include "move_orb_actions_2.h" +#include "move_orb_actions_3.h" +#include "move_orb_actions_4.h" #include "move_util.h" #include "moves.h" #include "position_util.h" #include "sprite.h" #include "status.h" -#include "status_actions.h" #include "weather.h" #include "targeting_flags.h" #include "text_util.h" @@ -62,243 +65,79 @@ extern void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2); extern void sub_8041168(Entity *entity, Entity *entity2, Move *,DungeonPos *); extern Entity *sub_80696A8(Entity *a0); extern Entity *GetMonsterAtPos(DungeonPos *pos); -extern Entity *sub_80696FC(Entity *); -extern Entity *sub_806977C(Entity *); extern void sub_806F2BC(Entity *attacker, Entity *target, u8 moveType, s32 a2, struct DamageStruct *dmgStruct); -extern void MarkLastUsedMonMove(Entity *entity, Move *move); -extern s32 sub_8057070(Move *move); -extern bool8 MoveRequiresCharging(Entity* pokemon,u16 param_2); extern s32 sub_800ED20(u16 param_1); -extern bool32 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern void sub_8042930(Entity *r0); extern void sub_8041B48(Entity *pokemon); extern void sub_8041BA8(Entity *pokemon); extern void sub_8042950(Entity *r0); -extern void sub_80421C0(Entity *pokemon, u16 r1); -extern bool8 IronTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 YawnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 NightmareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PainSplitMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TormentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WhirlpoolMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); + +// move_orb_actions_4 +extern bool8 MetalClawMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5); + + +// move_orb_actions_3 extern bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FakeTearsMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SpiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SmokescreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FlatterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WillOWispMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ReturnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4); -extern bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4); -extern bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 GigaDrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ReversalMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SmellingSaltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AbsorbMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DoubleEdgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_80595EC(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 OneShotOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TwisterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TwineedleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8059A2C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HornDrillMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TriAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TrickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 TripleKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805A568(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FocusEnergyMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SecretPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805AC90(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BeatUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CrushClawMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BlazeKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PresentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 EruptionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 GlareMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PoisonTailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RoarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805B17C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WrapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MagnitudeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MistBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DestinyBondMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FalseSwipeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HiddenPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AttractMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MimicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FrustrationMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LeechSeedMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DreamEaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 LusterPurgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DragonRageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +extern bool8 PerishSongMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +extern bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); +extern bool8 BellyDrumMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5); extern bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5); -extern void SetShopkeeperAggression(Entity *, Entity *); -extern bool8 MoveCausesPaused(Move *move); -extern void sub_8069F9C(Entity *pokemon,Entity * target,Move *move); -extern void sub_806A120(Entity *pokemon,Entity * target,Move *move); -extern bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5); -extern bool8 MetalClawMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5); extern bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5); -extern bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SonicboomMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BasicSleepMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); + +// move_orb_actions_2 +extern bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, s32 param_4); +extern bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); + + + +extern void SetShopkeeperAggression(Entity *, Entity *); extern bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 TailGlowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 MinimizeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SwordsDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 CalmMindMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 GrowthMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 DefenseCurlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 GrowlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ScreechMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SolarBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SafeguardMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 MistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 LightScreenMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_805768C(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MementoMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 MoonlightMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 RestMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 sub_8058EE0(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 CounterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 TrapperOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 sub_805A450(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RazorWindMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 FocusPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 MagicCoatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MorningSunMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 MudWaterSportMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 IngrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SpikesMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 WishMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 WarpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 VitalThrowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 FlyMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 BounceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 DiveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DigMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 GrudgeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 AssistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 sub_805AAD0(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 sub_805B314(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 ProtectMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ExplosionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WaterSpoutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 InvisifyOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 MirrorCoatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PerishSongMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 WeatherBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BellyDrumMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 BubbleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 StringShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 TransformMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SplashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 ReboundOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 NaturePowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 MirrorMoveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 ConversionMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 SnatchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 HandleColorChange(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 PsychUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern bool8 MetronomeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); extern const s32 gUnknown_8106A50; extern const s32 gUnknown_8106A4C; @@ -1586,7 +1425,7 @@ void UseMoveAgainstTargets(Entity **targetsArray, Entity *attacker, Move *move, } } -bool32 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId) +bool8 HandleRegularDamagingMove(Entity *attacker, Entity *target, Move *move, s32 itemId) { return (HandleDamagingMove(attacker, target, move, IntToF248_2(1), itemId) != 0); } diff --git a/src/dungeon_move_util.c b/src/dungeon_move_util.c index 9bc5b5fe7..c8907f3ef 100644 --- a/src/dungeon_move_util.c +++ b/src/dungeon_move_util.c @@ -36,7 +36,7 @@ #include "position_util.h" #include "sprite.h" #include "status.h" -#include "status_actions.h" +#include "move_orb_actions_4.h" #include "weather.h" #include "targeting_flags.h" #include "text_util.h" @@ -45,9 +45,6 @@ extern void sub_80429C8(Entity *r0); extern bool8 sub_8045888(Entity *r0); extern void HandleDealingDamage(Entity *attacker, Entity *target, struct DamageStruct *dmgStruct, bool32 isFalseSwipe, bool32 giveExp, s16 arg4, bool32 arg8, s32 argC); extern void CalcDamage(Entity *, Entity *, u8, u32, u32, struct DamageStruct *dmgStruct, s24_8, u16, u32); -extern s16 sub_8057600(Move *move, s32 itemID); -extern void sub_803ED30(s32, Entity *r0, u8, s32); -extern void sub_8042238(Entity *pokemon, Entity *target); extern void sub_806A1E8(Entity *pokemon); extern bool8 sub_8044B28(void); extern void sub_804178C(u32); @@ -60,21 +57,8 @@ extern void sub_800EF10(u16 r0); extern s32 sub_800E710(s16 a0, u16 a1); extern void sub_800E3AC(s32 a0, DungeonPos *pos, s32 a2); extern void sub_8041168(Entity *entity, Entity *entity2, Move *,DungeonPos *); -extern Entity *sub_80696A8(Entity *a0); extern Entity *GetMonsterAtPos(DungeonPos *pos); -extern Entity *sub_80696FC(Entity *); -extern Entity *sub_806977C(Entity *); -extern void sub_806F2BC(Entity *attacker, Entity *target, u8 moveType, s32 a2, struct DamageStruct *dmgStruct); -extern void MarkLastUsedMonMove(Entity *entity, Move *move); -extern s32 sub_8057070(Move *move); -extern bool8 MoveRequiresCharging(Entity* pokemon,u16 param_2); extern s32 sub_800ED20(u16 param_1); -extern bool32 EarthquakeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4); -extern void sub_8042930(Entity *r0); -extern void sub_8041B48(Entity *pokemon); -extern void sub_8041BA8(Entity *pokemon); -extern void sub_8042950(Entity *r0); -extern void sub_80421C0(Entity *pokemon, u16 r1); extern s16 sub_8094828(u16, u8); struct UnkStruct_sub_800E308_1 { diff --git a/src/move_checks.c b/src/move_checks.c index 0b395bc22..d27db7b84 100644 --- a/src/move_checks.c +++ b/src/move_checks.c @@ -14,7 +14,6 @@ #include "moves.h" #include "number_util.h" #include "status.h" -#include "status_actions.h" #include "text_util.h" #include "trap.h" #include "weather.h" diff --git a/src/move_orb_actions_1.c b/src/move_orb_actions_1.c index 018b9f162..225197dfe 100644 --- a/src/move_orb_actions_1.c +++ b/src/move_orb_actions_1.c @@ -1,5 +1,6 @@ #include "global.h" #include "globaldata.h" +#include "move_orb_actions_1.h" #include "dungeon_move_util.h" #include "dungeon_vram.h" #include "code_803E724.h" @@ -23,7 +24,6 @@ #include "moves.h" #include "number_util.h" #include "pokemon.h" -#include "status_actions.h" #include "status.h" #include "structs/dungeon_entity.h" #include "structs/map.h" @@ -148,19 +148,19 @@ bool8 DigMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) return flag; } -bool32 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 SweetScentMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { LowerAccuracyStageTarget(pokemon,target,gUnknown_8106A50[0],TRUE); return TRUE; } -bool32 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 CharmMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { ChangeAttackMultiplierTarget(pokemon,target,gUnknown_8106A4C[0],FloatToF248(0.5),TRUE); return TRUE; } -bool32 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { gDungeon->weather.unkE267[WEATHER_RAIN] = gMoveWeatherDuration; if (sub_807EAA0(1,0) == 0) { @@ -170,7 +170,7 @@ bool32 RainDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 para return TRUE; } -bool32 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { gDungeon->weather.unkE267[WEATHER_HAIL] = gMoveWeatherDuration; if (sub_807EAA0(1,0) == 0) { @@ -180,15 +180,15 @@ bool32 HailMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) return TRUE; } -bool32 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 sub_80578EC(Entity *pokemon, Entity *target, Move *move, s32 param_4) { sub_8079F20(pokemon, target, 1, 0); return TRUE; } -bool32 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_4) +bool8 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4) { - bool32 flag; + bool8 flag; flag = FALSE; if (HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0) { @@ -200,20 +200,20 @@ bool32 BubbleMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_ return flag; } -bool32 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 EncoreMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { EncoreStatusTarget(pokemon, target); return TRUE; } -bool32 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 RageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { // {POKEMON_0} is enraged SetChargeStatusTarget(pokemon,target,STATUS_ENRAGED,move,gUnknown_80FAC88); return TRUE; } -bool32 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SuperFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 newHP; bool8 local_24; @@ -325,7 +325,7 @@ bool8 SwaggerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4 return TRUE; } -bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_4) +bool8 SnoreMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4) { bool8 flag; @@ -350,7 +350,7 @@ bool8 ScreechMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4 return TRUE; } -bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, u32 param_4) +bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, s32 param_4) { bool8 flag; @@ -364,7 +364,7 @@ bool8 RockSlideMoveAction(Entity *pokemon, Entity *target, Move * move, u32 para return flag; } -bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { u32 weather; s32 flag; @@ -378,7 +378,7 @@ bool32 WeatherBallMoveAction(Entity * pokemon, Entity * target, Move * move, u32 return flag; } -bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 WhirlpoolMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { s24_8 modifier; bool8 flag; @@ -449,7 +449,7 @@ bool8 MirrorMoveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 para return TRUE; } -bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { EntityInfo *entityInfo; bool8 flag; @@ -466,7 +466,7 @@ bool8 OverheatMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_ return flag; } -bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 AuroraBeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -493,7 +493,7 @@ bool8 MementoMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4 return TRUE; } -bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 OctazookaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -582,7 +582,7 @@ bool8 CounterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4 return TRUE; } -bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -599,7 +599,7 @@ bool8 FlameWheelMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para } // NOTE: Do we have a better name for this?? -bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -615,7 +615,7 @@ bool8 BasicFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param return flag; } -bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { u16 uVar1; uVar1 = (move->id == MOVE_FORESIGHT) ? 0x7A : 0x51; @@ -623,13 +623,13 @@ bool8 ExposeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return TRUE; } -bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 DoubleTeamMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseAccuracyStageTarget(pokemon, target, gUnknown_8106A50[0]); return TRUE; } -bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; s32 modifierInt; @@ -644,26 +644,26 @@ bool8 GustMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) } // NOTE: Is there a better name for this? -bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BasicRaiseDefenseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A4C[0], 1); return TRUE; } -bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 DisableMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { ParalyzeStatusTarget(pokemon, target, TRUE); return TRUE; } // NOTE: Is there a better name for this? -bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BasicRaiseAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseAttackStageTarget(pokemon, target, gUnknown_8106A4C[0], 1); return TRUE; } -bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { bool8 flag; @@ -678,13 +678,13 @@ bool8 RazorWindMoveAction(Entity * pokemon, Entity * target, Move * move, u32 pa return flag; } -bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BideMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { SetChargeStatusTarget(pokemon, target, STATUS_BIDE, move, gUnknown_80FAC74); return TRUE; } -bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 iVar2; bool8 local_18; @@ -700,7 +700,7 @@ bool8 Bide2MoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return local_18; } -bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -715,7 +715,7 @@ bool8 ShadowBallMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para return flag; } -bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -730,7 +730,7 @@ bool8 BiteMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -745,7 +745,7 @@ bool8 ThunderMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4 return flag; } -bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 diffHP; bool8 local_24; @@ -766,7 +766,7 @@ bool8 EndeavorMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_ return local_24; } -bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; s24_8 modifier; @@ -778,7 +778,7 @@ bool8 FacadeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -793,7 +793,7 @@ bool8 sub_8058580(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -808,7 +808,7 @@ bool8 BrickBreakMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para return flag; } -bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -823,7 +823,7 @@ bool8 RockTombMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_ return flag; } -bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { bool8 flag; @@ -838,7 +838,7 @@ bool8 FocusPunchMoveAction(Entity * pokemon, Entity * target, Move * move, u32 p return flag; } -bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { bool8 hasLiquidOoze; s32 uVar3; @@ -867,7 +867,7 @@ bool8 GigaDrainMoveAction(Entity * pokemon, Entity * target, Move * move, u32 pa return flag; } -bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { s32 index; bool8 flag; @@ -890,7 +890,7 @@ bool8 ReversalMoveAction(Entity * pokemon, Entity * target, Move * move, u32 par return flag; } -bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { bool8 flag; @@ -904,13 +904,13 @@ bool8 SmellingSaltMoveAction(Entity * pokemon, Entity * target, Move * move, u32 return flag; } -bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 MetalSoundMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { LowerDefenseStageTarget(pokemon, target, gUnknown_8106A50[0], 3, 1, TRUE); return TRUE; } -bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 index = gUnknown_8106A4C[0]; LowerAttackStageTarget(pokemon, target, index, 1, 1, TRUE); @@ -918,19 +918,19 @@ bool8 TickleMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return TRUE; } -bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_805889C(Entity *pokemon, Entity *target, Move *move, s32 param_4) { ImmobilizedStatusTarget(pokemon, target); return TRUE; } -bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 HazeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { sub_8079E34(pokemon, target, TRUE); return TRUE; } -bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag = FALSE; if(HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0) @@ -944,7 +944,7 @@ bool8 OutrageMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4 return flag; } -bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s24_8 weight; bool8 flag; @@ -955,7 +955,7 @@ bool8 LowKickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4 return flag; } -bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag = FALSE; EntityInfo *entityInfo; @@ -980,19 +980,19 @@ bool8 AncientPowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa return flag; } -bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SynthesisMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { HealTargetHP(pokemon, target, gSynthesisHealValueByWeather[GetApparentWeather(pokemon)], 0, TRUE); return TRUE; } -bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 AgilityMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseMovementSpeedTarget(pokemon, target, 0, TRUE); return TRUE; } -bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag = FALSE; if(HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0) @@ -1006,13 +1006,13 @@ bool8 RapidSpinMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param return flag; } -bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SureShotMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { SureShotStatusTarget(pokemon, target, CalculateStatusTurns(target, gSureShotTurnRange, FALSE)); return TRUE; } -bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 CosmicPowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A4C[0], 1); RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A50[0], 1); diff --git a/src/move_orb_actions_2.c b/src/move_orb_actions_2.c index 22c280086..a9494a6e0 100644 --- a/src/move_orb_actions_2.c +++ b/src/move_orb_actions_2.c @@ -1,5 +1,6 @@ #include "global.h" #include "globaldata.h" +#include "move_orb_actions_2.h" #include "dungeon_move_util.h" #include "dungeon_vram.h" #include "code_803E724.h" @@ -23,7 +24,7 @@ #include "moves.h" #include "number_util.h" #include "pokemon.h" -#include "status_actions.h" +#include "move_orb_actions_4.h" #include "status.h" #include "structs/dungeon_entity.h" #include "structs/map.h" @@ -33,15 +34,9 @@ #include "dungeon_misc.h" #include "dungeon_strings.h" -extern void sub_806A5B8(Entity *entity); -void sub_8075900(Entity *pokemon, u8 r1); extern u8 sub_8044B28(void); -extern void sub_807EC28(bool8); extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32); -extern void MudWaterSportEffect(u32); -extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32); -extern void sub_806A6E8(Entity *); extern void EndAbilityImmuneStatus(Entity *, Entity *); extern u8 sub_806F4A4(Entity *, u32); @@ -49,19 +44,12 @@ extern void HandleExplosion(Entity *pokemon, Entity *target, DungeonPos *pos, u3 extern void nullsub_92(Entity *); extern u8 sub_807EAA0(u32, u32); -// move_util.h -extern bool8 sub_805727C(Entity *, Entity *, s32); -bool8 RollSecondaryEffect(Entity *pokemon, s32 chance); -bool8 sub_80571F0(Entity * pokemon, Move *move); - -extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); extern void DealDamageToEntity(Entity *, s32, u32, u32); -extern s16 sub_8057600(Move *move, s32 itemID); extern u32 gUnknown_8106A4C; extern u32 gUnknown_8106A50; -bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag = FALSE; @@ -82,7 +70,7 @@ bool8 SkyAttackMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param } // NOTE: Is there a better name for this? -bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -97,7 +85,7 @@ bool8 BasicIceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_ return flag; } -bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; EntityInfo *entityInfo; @@ -115,19 +103,19 @@ bool8 MeteorMashMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para return flag; } -bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 EndureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { EndureStatusTarget(pokemon, pokemon); return TRUE; } -bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ScaryFaceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { LowerMovementSpeedTarget(pokemon, target, 1, TRUE); return TRUE; } -bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -142,7 +130,7 @@ bool8 sub_8058C00(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 rand; bool8 flag; @@ -159,7 +147,7 @@ bool8 PsywaveMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4 return flag; } -bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 param_5) +bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, s32 param_4, u32 param_5) { bool8 flag; @@ -174,7 +162,7 @@ bool8 sub_8058C98(Entity *pokemon, Entity *target, Move *move, u32 param_4, u32 return flag; } -bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag = FALSE; if(HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0) @@ -188,13 +176,13 @@ bool8 PsychoBoostMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par return flag; } -bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 UproarMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { SleeplessStatusTarget(pokemon, target); return TRUE; } -bool8 WaterSpoutMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 WaterSpoutMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { s32 index; bool8 flag; @@ -217,7 +205,7 @@ bool8 WaterSpoutMoveAction(Entity * pokemon, Entity * target, Move * move, u32 p return flag; } -bool8 PsychUpMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 PsychUpMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { s32 index; EntityInfo *iVar3; @@ -265,7 +253,7 @@ bool8 sub_8058E5C(Entity *pokemon, Entity *target, Move *move, s32 param_4) return flag; } -bool8 sub_8058EE0(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_8058EE0(Entity *pokemon, Entity *target, Move *move, s32 param_4) { HealTargetHP(pokemon, target, GetEntInfo(target)->maxHPStat / 2, 0, TRUE); return TRUE; @@ -309,7 +297,7 @@ bool8 NaturePowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 par return flag; } -bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -324,25 +312,25 @@ bool8 LickMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SelfDestructMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { HandleExplosion(pokemon, target, &target->pos, 1, GetMoveType(move), sub_8057600(move, param_4)); return TRUE; } -bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 StunSporeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { ParalyzeStatusTarget(pokemon, target, TRUE); return TRUE; } -bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ChargeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { SetChargeStatusTarget(pokemon, target, STATUS_CHARGING, move, gUnknown_80FAD6C); return TRUE; } -bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -357,7 +345,7 @@ bool8 ThunderboltMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par return flag; } -bool8 MistMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 MistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { MistStatusTarget(pokemon, target); return TRUE; @@ -387,7 +375,7 @@ bool8 FissureMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4 return flag; } -bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -402,7 +390,7 @@ bool8 ExtrasensoryMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa return flag; } -bool8 SafeguardMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SafeguardMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { SafeguardStatusTarget(pokemon, target); return TRUE; @@ -471,10 +459,10 @@ bool8 SkillSwapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param return flag; } -bool32 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) +bool8 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 i; - bool32 ret = FALSE; + bool8 ret = FALSE; EntityInfo *pokeInfo = GetEntInfo(pokemon); EntityInfo *targetInfo = GetEntInfo(target); bool32 moveFound = FALSE; @@ -510,7 +498,7 @@ bool32 SketchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4 return ret; } -bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -525,7 +513,7 @@ bool8 HeadbuttMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_ return flag; } -bool8 DoubleEdgeMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 DoubleEdgeMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { s32 HP; bool8 flag; @@ -548,7 +536,7 @@ bool8 DoubleEdgeMoveAction(Entity * pokemon,Entity * target,Move * move,u32 para return flag; } -bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { gDungeon->weather.unkE267[WEATHER_SANDSTORM] = gMoveWeatherDuration; if(sub_807EAA0(1, 0) == 0) @@ -558,13 +546,13 @@ bool8 SandstormMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param return TRUE; } -bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_8059528(Entity *pokemon, Entity *target, Move *move, s32 param_4) { LowerAccuracyStageTarget(pokemon, target, gUnknown_8106A4C, TRUE); return TRUE; } -bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -579,13 +567,13 @@ bool8 SmogMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 GrowthMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 GrowthMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseAttackStageTarget(pokemon, target, gUnknown_8106A50, 1); return TRUE; } -bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -600,7 +588,7 @@ bool8 SacredFireMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para return flag; } -bool8 sub_80595EC(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 sub_80595EC(Entity * pokemon,Entity * target,Move * move,s32 param_4) { u8 moveType; u8 local_20; @@ -618,7 +606,7 @@ bool8 sub_80595EC(Entity * pokemon,Entity * target,Move * move,u32 param_4) } } -bool8 SolarBeamMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 SolarBeamMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { u8 weather; // weather and flag are reused in same variable s24_8 modifier; @@ -640,7 +628,7 @@ bool8 SolarBeamMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param return weather; } -bool8 SonicboomMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 SonicboomMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { u8 local_20; @@ -650,7 +638,7 @@ bool8 SonicboomMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param return local_20; } -bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { bool8 flag; @@ -666,13 +654,13 @@ bool8 FlyMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) return flag; } -bool8 ExplosionMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 ExplosionMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { HandleExplosion(pokemon,target,&target->pos,2,GetMoveType(move),sub_8057600(move,param_4)); return TRUE; } -bool8 DiveMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4) +bool8 DiveMoveAction(Entity * pokemon, Entity * target, Move * move, s32 param_4) { bool8 flag; @@ -691,7 +679,7 @@ bool8 DiveMoveAction(Entity * pokemon, Entity * target, Move * move, u32 param_4 return flag; } -bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -706,13 +694,13 @@ bool8 MuddyWaterMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para return flag; } -bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 StockpileMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { HandleStockpile(pokemon, target); return TRUE; } -bool8 TwisterMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 TwisterMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { s32 modifierInt = 1; bool8 flag = FALSE; @@ -731,7 +719,7 @@ bool8 TwisterMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4 return flag; } -bool8 TwineedleMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 TwineedleMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { bool8 flag; @@ -747,7 +735,7 @@ bool8 TwineedleMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param return flag; } -bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 HP; @@ -758,13 +746,13 @@ bool8 sub_80599EC(Entity *pokemon, Entity *target, Move *move, u32 param_4) return TRUE; } -bool8 MinimizeMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 MinimizeMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseAccuracyStageTarget(pokemon, target, gUnknown_8106A50); return TRUE; } -bool8 sub_8059A2C(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 sub_8059A2C(Entity * pokemon,Entity * target,Move * move,s32 param_4) { u8 local_20; u32 level; @@ -776,25 +764,25 @@ bool8 sub_8059A2C(Entity * pokemon,Entity * target,Move * move,u32 param_4) return local_20; } -bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SupersonicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { ConfuseStatusTarget(pokemon, target, TRUE); return TRUE; } -bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 TauntMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { TauntStatusTarget(pokemon, target); return TRUE; } -bool8 MoonlightMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 MoonlightMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { HealTargetHP(pokemon, target, gMoonlightHealValueByWeather[GetApparentWeather(pokemon)], 0, TRUE); return TRUE; } -bool8 HornDrillMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 HornDrillMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { u8 local_20; @@ -810,13 +798,13 @@ bool8 HornDrillMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param } } -bool8 SwordsDanceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SwordsDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseAttackStageTarget(pokemon, target, gUnknown_8106A4C, 2); return TRUE; } -bool8 ConversionMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 ConversionMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { u8 moveType; Move *movePtr; @@ -860,13 +848,13 @@ bool8 ConversionMoveAction(Entity * pokemon,Entity * target,Move * move,u32 para } } -bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 Conversion2MoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { Conversion2StatusTarget(pokemon, target); return TRUE; } -bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; flag = FALSE; @@ -882,19 +870,19 @@ bool8 HelpingHandMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par return flag; } -bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_8059CD8(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A4C, 2); return TRUE; } -bool8 WarpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 WarpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { WarpTarget(pokemon, target, 0, NULL); return TRUE; } -bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -909,13 +897,13 @@ bool8 ThundershockMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa return flag; } -bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ThunderWaveMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { ParalyzeStatusTarget(pokemon, target, TRUE); return TRUE; } -bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -930,25 +918,25 @@ bool8 ZapCannonMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param return flag; } -bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BlockMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { ImmobilizedStatusTarget(pokemon, target); return TRUE; } -bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 PoisonGasMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { PoisonedStatusTarget(pokemon, target, TRUE); return TRUE; } -bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ToxicMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { BadlyPoisonedStatusTarget(pokemon, target, TRUE); return TRUE; } -bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 PoisonFangMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; diff --git a/src/move_orb_actions_3.c b/src/move_orb_actions_3.c index 077c54e98..1b126ef2c 100644 --- a/src/move_orb_actions_3.c +++ b/src/move_orb_actions_3.c @@ -1,6 +1,7 @@ #include "global.h" #include "globaldata.h" #include "dungeon_vram.h" +#include "move_orb_actions_3.h" #include "code_803E724.h" #include "code_806CD90.h" #include "code_8077274_1.h" @@ -12,6 +13,7 @@ #include "constants/targeting.h" #include "constants/type.h" #include "constants/weather.h" +#include "dungeon_ai.h" #include "dungeon_logic.h" #include "dungeon_config.h" #include "run_dungeon.h" @@ -30,7 +32,7 @@ #include "number_util.h" #include "pokemon.h" #include "status.h" -#include "status_actions.h" +#include "move_orb_actions_4.h" #include "structs/dungeon_entity.h" #include "structs/map.h" #include "structs/str_dungeon.h" @@ -38,36 +40,23 @@ #include "trap.h" #include "weather.h" -extern void sub_806A5B8(Entity *entity); -void sub_8075900(Entity *pokemon, u8 r1); extern u8 sub_8044B28(void); extern void sub_807EC28(bool8); extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32); static void sub_805A7D4(Entity *, Entity *, Item *, DungeonPos *); extern void MudWaterSportEffect(u32); -extern void CalcDamage(Entity *, Entity *, u8, u32, u32, s32 *, u32, u16, u32); extern void sub_806A6E8(Entity *); -extern void EndAbilityImmuneStatus(Entity *, Entity *); extern u8 sub_806F4A4(Entity *, u32); extern void HandleExplosion(Entity *pokemon, Entity *target, DungeonPos *pos, u32, u8 moveType, s16); extern void nullsub_92(Entity *); extern u8 sub_807EAA0(u32, u32); -// move_util.h -extern bool8 sub_805727C(Entity *, Entity *, s32); -bool8 RollSecondaryEffect(Entity *pokemon, s32 chance); -bool8 sub_80571F0(Entity * pokemon, Move *move); - -extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); -extern void DealDamageToEntity(Entity *, s32, u32, u32); -extern s16 sub_8057600(Move *move, s32 itemID); - extern u32 gUnknown_8106A4C; extern u32 gUnknown_8106A50; -bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -82,7 +71,7 @@ bool8 PoisonStingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 par return flag; } -bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5) +bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4,u8 param_5) { u8 moveType; u32 movePower; @@ -111,7 +100,7 @@ bool8 JumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_ return flag; } -bool8 BounceMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) +bool8 BounceMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4) { bool8 flag; @@ -132,7 +121,7 @@ bool8 BounceMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4) return flag; } -bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 param_4,u8 param_5) +bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,s32 param_4,u8 param_5) { u8 moveType; u32 movePower; @@ -161,7 +150,7 @@ bool8 HiJumpKickMoveAction(Entity * pokemon,Entity * target,Move * move,u32 para return flag; } -bool8 TriAttackMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 TriAttackMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -189,14 +178,14 @@ bool8 TriAttackMoveAction(Entity * pokemon, Entity * target, Move *move, u32 par return flag; } -bool8 TrickMoveAction(Entity * pokemon,Entity * target, Move *move, u32 param_4) +bool8 TrickMoveAction(Entity * pokemon,Entity * target, Move *move, s32 param_4) { EntityInfo *r9; EntityInfo *r8; EntityInfo *r7; EntityInfo *sp; Item item; - bool32 flag; + bool8 flag; Item *item1; Item *item2; @@ -245,7 +234,7 @@ bool8 TrickMoveAction(Entity * pokemon,Entity * target, Move *move, u32 param_4) } } -bool8 TripleKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 TripleKickMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -254,7 +243,7 @@ bool8 TripleKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 pa return flag; } -bool8 MudWaterSportMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 MudWaterSportMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { if(move->id == MOVE_MUD_SPORT) { @@ -267,7 +256,7 @@ bool8 MudWaterSportMoveAction(Entity * pokemon, Entity * target, Move *move, u32 return TRUE; } -bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -282,24 +271,24 @@ bool8 MudSlapMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4 return flag; } -bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ThiefMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { return ThiefAction(pokemon, target, move, param_4); } -bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 AmnesiaMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { RaiseDefenseStageTarget(pokemon, target, gUnknown_8106A50, 2); return TRUE; } -bool8 GrowlMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 GrowlMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 1, 1, TRUE); return TRUE; } -bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; s32 modifierInt; @@ -318,7 +307,7 @@ bool8 SurfMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { EntityInfo * entityInfo; EntityInfo * targetEntityInfo; @@ -341,7 +330,7 @@ bool8 RolePlayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_ } } -bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { gDungeon->weather.unkE267[WEATHER_SUNNY] = gMoveWeatherDuration; if (sub_807EAA0(1,0) == 0) { @@ -350,19 +339,19 @@ bool8 SunnyDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_ return TRUE; } -bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 LeerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { LowerDefenseStageTarget(pokemon, target, gUnknown_8106A4C, 1, 1, TRUE); return TRUE; } -bool8 WishMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 WishMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { WishStatusTarget(pokemon, target); return TRUE; } -bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -377,15 +366,15 @@ bool8 FakeOutMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4 return flag; } -bool8 sub_805A450(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 sub_805A450(Entity *pokemon, Entity *target, Move *move, s32 param_4) { TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FC730); return FALSE; } -bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { - bool32 flag; + bool8 flag; Item item; DungeonPos pos; @@ -404,25 +393,25 @@ bool8 PayDayMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return flag; } -bool8 AssistMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 AssistMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { TryDisplayDungeonLoggableMessage3(pokemon,target,gUnknown_80FC74C); return FALSE; } -bool8 RestMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 RestMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { NappingStatusTarget(pokemon, target, CalculateStatusTurns(target, gNappingTurnRange, FALSE)); return TRUE; } -bool8 IngrainMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 IngrainMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { IngrainedStatusTarget(pokemon, target); return TRUE; } -bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { u8 *stockpileStage; @@ -437,13 +426,13 @@ bool8 SwallowMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4 return TRUE; } -bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 CurseMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { CurseStatusTarget(pokemon, target); return TRUE; } -bool8 sub_805A568(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 sub_805A568(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -451,10 +440,10 @@ bool8 sub_805A568(Entity * pokemon, Entity * target, Move *move, u32 param_4) return flag; } -bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { u32 stat; - bool32 flag; + bool8 flag; flag = FALSE; if (HandleDamagingMove(pokemon, target, move, IntToF248_2(1), param_4) != 0) { @@ -471,7 +460,7 @@ bool8 SuperpowerMoveAction(Entity *pokemon, Entity *target, Move *move, u32 para bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 stat, u32 param_5) { EntityInfo *entityInfo; - bool32 flag; + bool8 flag; flag = FALSE; if (HandleDamagingMove(pokemon,target,move,IntToF248_2(1),param_5) != 0) { @@ -485,7 +474,7 @@ bool8 SteelWingMoveAction(Entity *pokemon, Entity *target, Move *move, u32 stat, return flag; } -bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { u8 *stockpileStage; @@ -500,7 +489,7 @@ bool8 SpitUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return TRUE; } -bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -515,7 +504,7 @@ bool8 DynamicPunchMoveAction(Entity *pokemon, Entity *target, Move *move, u32 pa return flag; } -bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 KnockOffMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { EntityInfo *entityInfo; EntityInfo *targetEntityInfo; @@ -579,7 +568,7 @@ static void sub_805A7D4(Entity * pokemon, Entity * target, Item *item, sub_804652C(pokemon,&stackEntity,item,1,0); } -bool8 SplashMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 SplashMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { int x; int y; @@ -677,13 +666,13 @@ _0805AA5E: return TRUE; } -bool8 sub_805AAD0(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 sub_805AAD0(Entity * pokemon, Entity * target, Move *move, s32 param_4) { FixedDamageStatusTarget(pokemon, pokemon); return TRUE; } -bool8 BellyDrumMoveAction(Entity * pokemon,Entity * target, Move *move, u32 param_4) +bool8 BellyDrumMoveAction(Entity * pokemon,Entity * target, Move *move, s32 param_4) { EntityInfo *info; bool8 flag; @@ -702,13 +691,13 @@ bool8 BellyDrumMoveAction(Entity * pokemon,Entity * target, Move *move, u32 para return flag; } -bool8 LightScreenMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 LightScreenMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { LightScreenStatusTarget(pokemon, target); return TRUE; } -bool8 SecretPowerMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 SecretPowerMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -751,7 +740,7 @@ bool8 SecretPowerMoveAction(Entity * pokemon, Entity * target, Move *move, u32 p return flag; } -bool8 sub_805AC90(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 sub_805AC90(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -765,7 +754,7 @@ bool8 sub_805AC90(Entity * pokemon, Entity * target, Move *move, u32 param_4) return flag; } -bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { s32 stat = gUnknown_8106A4C; RaiseAttackStageTarget(pokemon, target, stat, 1); @@ -773,24 +762,24 @@ bool8 BulkUpMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) return TRUE; } -bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 ObserverOrbAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { PausedStatusTarget(pokemon, target, 1, CalculateStatusTurns(target, gObserverOrbPausedTurnRange, TRUE), TRUE); return TRUE; } -bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 FeatherDanceMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { LowerAttackStageTarget(pokemon, target, gUnknown_8106A4C, 2, 1, TRUE); return TRUE; } -bool32 BeatUpMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 BeatUpMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { s32 numPossibleTargets; s32 i; Entity **possibleTargets; - bool32 flag = FALSE; + bool8 flag = FALSE; EntityInfo *info = GetEntInfo(pokemon); if (info->isNotTeamMember) { @@ -823,7 +812,7 @@ bool32 BeatUpMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param return flag; } -bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param_4) +bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, s32 param_4) { bool8 flag; @@ -832,7 +821,7 @@ bool8 BlastBurnMoveAction(Entity *pokemon, Entity *target, Move *move, u32 param return flag; } -bool8 CrushClawMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 CrushClawMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -846,7 +835,7 @@ bool8 CrushClawMoveAction(Entity * pokemon, Entity * target, Move *move, u32 par return flag; } -bool8 BlazeKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 BlazeKickMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -861,7 +850,7 @@ bool8 BlazeKickMoveAction(Entity * pokemon, Entity * target, Move *move, u32 par return flag; } -bool8 PresentMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 PresentMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { bool8 flag; @@ -888,7 +877,7 @@ bool8 PresentMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param } } -bool8 EruptionMoveAction(Entity * pokemon, Entity * target, Move *move, u32 param_4) +bool8 EruptionMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { EntityInfo *entityInfo; s32 maxHp; @@ -915,7 +904,7 @@ bool8 EruptionMoveAction(Entity * pokemon, Entity * target, Move *move, u32 para return flag; } -bool8 GlareMoveAction(Entity * pokemon,Entity * target,Move *move) +bool8 GlareMoveAction(Entity * pokemon,Entity * target,Move *move,s32 param_4) { ParalyzeStatusTarget(pokemon,target, TRUE); return TRUE; @@ -948,7 +937,7 @@ bool8 PoisonTailMoveAction(Entity * pokemon, Entity * target, Move *move, s32 pa return flag; } -bool8 RoarMoveAction(Entity * pokemon, Entity * target) +bool8 RoarMoveAction(Entity * pokemon, Entity * target, Move *move, s32 param_4) { BlowAwayTarget(pokemon, target, GetEntInfo(pokemon)->action.direction); return TRUE; diff --git a/src/move_orb_actions_4.c b/src/move_orb_actions_4.c index 169f6360c..96a8e6a53 100644 --- a/src/move_orb_actions_4.c +++ b/src/move_orb_actions_4.c @@ -1,6 +1,8 @@ #include "global.h" #include "globaldata.h" -#include "status_actions.h" +#include "move_orb_actions_4.h" +#include "move_orb_actions_2.h" +#include "dungeon_ai.h" #include "dungeon_move_util.h" #include "dungeon_message.h" #include "dungeon_move.h" @@ -20,6 +22,7 @@ #include "dungeon_map_access.h" #include "dungeon_misc.h" #include "dungeon_util.h" +#include "move_effects_target.h" #include "move_util.h" #include "moves.h" #include "number_util.h" @@ -35,15 +38,8 @@ extern void sub_807F43C(Entity *, Entity *); extern void HandleOneRoomOrb(Entity *, Entity *); -extern u32 GetRandomFloorItem(u32); -extern void sub_80464C8(Entity *, DungeonPos *, Item *); extern void sub_806F370(Entity *r0, Entity *r1, u32, u32, u8 *, u8, s32, u32, u32, u32); -extern void sub_807FC3C(DungeonPos *, u32, u32); -extern void sub_8042A64(DungeonPos *); extern void ShowWholeRevealedDungeonMap(void); -extern void sub_80498A8(s32, s32); -extern void sub_8042A54(DungeonPos *); -extern void sub_8049BB0(s32, s32); extern void HandleDroughtOrbAction(Entity *); extern void HandleLuminousOrbAction(Entity *pokemon); extern void HandleTrawlOrbAction(Entity *, Entity *); @@ -52,25 +48,8 @@ extern s16 sub_803D970(u32); extern bool8 sub_806AA0C(s32, u32); extern void sub_806BB6C(Entity *, s32); extern void HandleSwitcherOrb(Entity *, Entity *, u32); -extern void sub_806A6E8(Entity *); - -// TODO include dungeon_ai.h when SqueezedStatusTarget is figured out -extern void LowerDefenseStageTarget(Entity *, Entity *, s32, s32, u8, bool8); -extern void RaiseAttackStageTarget(Entity *, Entity *, s32, s32); -extern void PoisonedStatusTarget(Entity *, Entity *, bool8); -extern void RaiseDefenseStageTarget(Entity *, Entity *, s32, s32); -extern void InfatuateStatusTarget(Entity *, Entity *, bool8); -extern void LowerAttackStageTarget(Entity *, Entity *, s32, s32, u8, bool8); -extern void PetrifiedStatusTarget(Entity *, Entity *); -extern void WrapTarget(Entity *, Entity *); - -// TODO having matching issues when this isn't s32.. (move_effects_target.h) -extern void SqueezedStatusTarget(Entity *, Entity *, s32, bool32); -extern void SleepStatusTarget(Entity *, Entity *, s32, s32); extern void DealDamageToEntity(Entity *, s32, u32, u32); -extern bool8 MoveRequiresCharging(Entity* pokemon,u16 moveID); -extern void sub_80783C4(Entity *, Entity *, bool8); extern u32 gUnknown_8106A50; extern u32 gUnknown_8106A4C;