summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-02 05:05:35 +0800
committerjiangzhengwenjz <jiangzhengwenjzw@qq.com>2019-08-02 05:05:35 +0800
commitc2964e818143757ca5586b1a811669a1c287e870 (patch)
treea0e7eed74397995d6e7f4970d43a40f6e9a97b9c /include
parent3eb1f1bc783308dac445eaacc05c9f14e9b78822 (diff)
ported battle_util from pokeem
Diffstat (limited to 'include')
-rw-r--r--include/battle.h4
-rw-r--r--include/battle_scripts.h75
-rw-r--r--include/battle_util.h50
-rw-r--r--include/constants/pokemon.h6
4 files changed, 34 insertions, 101 deletions
diff --git a/include/battle.h b/include/battle.h
index 7db128430..357bbbd8c 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -987,6 +987,8 @@ extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT];
extern u8 gMoveResultFlags;
extern s32 gTakenDmg[MAX_BATTLERS_COUNT];
extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT];
-
+extern u8 gCurrentActionFuncId;
+extern u8 gCurrMovePos;
+extern u8 gChosenMovePos;
#endif // GUARD_BATTLE_H
diff --git a/include/battle_scripts.h b/include/battle_scripts.h
index 185f6228d..c592ba6b8 100644
--- a/include/battle_scripts.h
+++ b/include/battle_scripts.h
@@ -28,16 +28,8 @@ extern const u8 BattleScript_LocalBattleLost[];
extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[];
extern const u8 BattleScript_LocalBattleLostEnd[];
extern const u8 BattleScript_CheckDomeDrew[];
-extern const u8 BattleScript_82DAA0B[];
-extern const u8 BattleScript_82DAA31[];
extern const u8 BattleScript_LinkBattleWonOrLost[];
-extern const u8 BattleScript_82DAA5C[];
-extern const u8 BattleScript_82DAA83[];
extern const u8 BattleScript_FrontierTrainerBattleWon[];
-extern const u8 BattleScript_82DAAAB[];
-extern const u8 BattleScript_82DAAAE[];
-extern const u8 BattleScript_82DAACB[];
-extern const u8 BattleScript_82DAADA[];
extern const u8 BattleScript_SmokeBallEscape[];
extern const u8 BattleScript_RanAwayUsingMonAbility[];
extern const u8 BattleScript_GotAwaySafely[];
@@ -47,11 +39,6 @@ extern const u8 BattleScript_PrintFailedToRunString[];
extern const u8 BattleScript_PrintCantEscapeFromBattle[];
extern const u8 BattleScript_PrintFullBox[];
extern const u8 BattleScript_ActionSwitch[];
-extern const u8 BattleScript_82DAB35[];
-extern const u8 BattleScript_82DAB37[];
-extern const u8 BattleScript_82DAB44[];
-extern const u8 BattleScript_82DAB77[];
-extern const u8 BattleScript_82DABB8[];
extern const u8 BattleScript_Pausex20[];
extern const u8 BattleScript_LevelUp[];
extern const u8 BattleScript_RainContinuesOrEnds[];
@@ -64,13 +51,10 @@ extern const u8 BattleScript_SideStatusWoreOff[];
extern const u8 BattleScript_SafeguardProtected[];
extern const u8 BattleScript_SafeguardEnds[];
extern const u8 BattleScript_LeechSeedTurnDrain[];
-extern const u8 BattleScript_82DAD47[];
-extern const u8 BattleScript_82DAD4D[];
extern const u8 BattleScript_BideStoringEnergy[];
extern const u8 BattleScript_BideAttack[];
extern const u8 BattleScript_BideNoEnergyToAttack[];
extern const u8 BattleScript_SuccessForceOut[];
-extern const u8 BattleScript_82DADF1[];
extern const u8 BattleScript_MistProtected[];
extern const u8 BattleScript_RageIsBuilding[];
extern const u8 BattleScript_MoveUsedIsDisabled[];
@@ -81,32 +65,16 @@ extern const u8 BattleScript_SelectingUnusableMoveInPalace[];
extern const u8 BattleScript_EncoredNoMore[];
extern const u8 BattleScript_DestinyBondTakesLife[];
extern const u8 BattleScript_SpikesOnAttacker[];
-extern const u8 BattleScript_82DAE7A[];
extern const u8 BattleScript_SpikesOnTarget[];
-extern const u8 BattleScript_82DAEB1[];
extern const u8 BattleScript_SpikesOngBank1[];
-extern const u8 BattleScript_82DAEE8[];
-extern const u8 BattleScript_82DAEFE[];
extern const u8 BattleScript_PerishSongTakesLife[];
extern const u8 BattleScript_PerishSongCountGoesDown[];
extern const u8 BattleScript_AllStatsUp[];
-extern const u8 BattleScript_82DAF54[];
-extern const u8 BattleScript_82DAF72[];
-extern const u8 BattleScript_82DAF86[];
-extern const u8 BattleScript_82DAF9A[];
-extern const u8 BattleScript_82DAFAE[];
-extern const u8 BattleScript_82DAFC2[];
extern const u8 BattleScript_RapidSpinAway[];
extern const u8 BattleScript_WrapFree[];
extern const u8 BattleScript_LeechSeedFree[];
extern const u8 BattleScript_SpikesFree[];
extern const u8 BattleScript_MonTookFutureAttack[];
-extern const u8 BattleScript_82DB001[];
-extern const u8 BattleScript_82DB008[];
-extern const u8 BattleScript_82DB020[];
-extern const u8 BattleScript_82DB027[];
-extern const u8 BattleScript_82DB03F[];
-extern const u8 BattleScript_82DB058[];
extern const u8 BattleScript_NoMovesLeft[];
extern const u8 BattleScript_SelectingMoveWithNoPP[];
extern const u8 BattleScript_NoPPForMove[];
@@ -119,8 +87,6 @@ extern const u8 BattleScript_SelectingNotAllowedMoveTauntInPalace[];
extern const u8 BattleScript_WishComesTrue[];
extern const u8 BattleScript_IngrainTurnHeal[];
extern const u8 BattleScript_AtkDefDown[];
-extern const u8 BattleScript_82DB144[];
-extern const u8 BattleScript_82DB167[];
extern const u8 BattleScript_KnockedOff[];
extern const u8 BattleScript_MoveUsedIsImprisoned[];
extern const u8 BattleScript_SelectingImprisonedMove[];
@@ -131,15 +97,11 @@ extern const u8 BattleScript_SnatchedMove[];
extern const u8 BattleScript_EnduredMsg[];
extern const u8 BattleScript_OneHitKOMsg[];
extern const u8 BattleScript_SAtkDown2[];
-extern const u8 BattleScript_82DB1FE[];
extern const u8 BattleScript_FocusPunchSetUp[];
extern const u8 BattleScript_MoveUsedIsAsleep[];
extern const u8 BattleScript_MoveUsedWokeUp[];
extern const u8 BattleScript_MonWokeUpInUproar[];
extern const u8 BattleScript_PoisonTurnDmg[];
-extern const u8 BattleScript_82DB243[];
-extern const u8 BattleScript_82DB245[];
-extern const u8 BattleScript_82DB25E[];
extern const u8 BattleScript_BurnTurnDmg[];
extern const u8 BattleScript_MoveUsedIsFrozen[];
extern const u8 BattleScript_MoveUsedUnfroze[];
@@ -149,8 +111,6 @@ extern const u8 BattleScript_MoveUsedFlinched[];
extern const u8 BattleScript_PrintUproarOverTurns[];
extern const u8 BattleScript_ThrashConfuses[];
extern const u8 BattleScript_MoveUsedIsConfused[];
-extern const u8 BattleScript_82DB2D4[];
-extern const u8 BattleScript_82DB2FF[];
extern const u8 BattleScript_MoveUsedIsConfusedNoMore[];
extern const u8 BattleScript_PrintPayDayMoneyString[];
extern const u8 BattleScript_WrapTurnDmg[];
@@ -162,7 +122,6 @@ extern const u8 BattleScript_NightmareTurnDmg[];
extern const u8 BattleScript_CurseTurnDmg[];
extern const u8 BattleScript_TargetPRLZHeal[];
extern const u8 BattleScript_MoveEffectSleep[];
-extern const u8 BattleScript_82DB374[];
extern const u8 BattleScript_YawnMakesAsleep[];
extern const u8 BattleScript_MoveEffectPoison[];
extern const u8 BattleScript_MoveEffectBurn[];
@@ -186,14 +145,6 @@ extern const u8 BattleScript_ShedSkinActivates[];
extern const u8 BattleScript_WeatherFormChanges[];
extern const u8 BattleScript_WeatherFormChangesLoop[];
extern const u8 BattleScript_CastformChange[];
-extern const u8 BattleScript_82DB4AF[];
-extern const u8 BattleScript_82DB4B8[];
-extern const u8 BattleScript_82DB4BE[];
-extern const u8 BattleScript_82DB4C1[];
-extern const u8 BattleScript_82DB4CD[];
-extern const u8 BattleScript_82DB510[];
-extern const u8 BattleScript_82DB51B[];
-extern const u8 BattleScript_82DB51C[];
extern const u8 BattleScript_DroughtActivates[];
extern const u8 BattleScript_TookAttack[];
extern const u8 BattleScript_SturdyPreventsOHKO[];
@@ -221,12 +172,9 @@ extern const u8 BattleScript_ApplySecondaryEffect[];
extern const u8 BattleScript_SynchronizeActivates[];
extern const u8 BattleScript_NoItemSteal[];
extern const u8 BattleScript_AbilityCuredStatus[];
-extern const u8 BattleScript_82DB695[];
extern const u8 BattleScript_IgnoresAndUsesRandomMove[];
extern const u8 BattleScript_MoveUsedLoafingAround[];
-extern const u8 BattleScript_82DB6C7[];
extern const u8 BattleScript_IgnoresAndFallsAsleep[];
-extern const u8 BattleScript_82DB6F0[];
extern const u8 BattleScript_SubstituteFade[];
extern const u8 BattleScript_BerryCurePrlzEnd2[];
extern const u8 BattleScript_BerryCureParRet[];
@@ -252,18 +200,8 @@ extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
extern const u8 BattleScript_HangedOnMsg[];
extern const u8 BattleScript_BerryConfuseHealEnd2[];
extern const u8 BattleScript_BerryStatRaiseEnd2[];
-extern const u8 BattleScript_82DB85B[];
extern const u8 BattleScript_BerryFocusEnergyEnd2[];
extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
-extern const u8 BattleScript_82DB87D[];
-extern const u8 BattleScript_82DB881[];
-extern const u8 BattleScript_82DB887[];
-extern const u8 BattleScript_82DB89D[];
-extern const u8 BattleScript_82DB8BE[];
-extern const u8 BattleScript_82DB8E0[];
-extern const u8 BattleScript_82DB8F3[];
-extern const u8 BattleScript_82DB973[];
-extern const u8 BattleScript_82DB992[];
extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
extern const u8 BattleScript_PrintPlayerForfeited[];
extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[];
@@ -271,27 +209,18 @@ extern const u8 BattleScript_BallThrow[];
extern const u8 BattleScript_BallThrowByWally[];
extern const u8 BattleScript_SafariBallThrow[];
extern const u8 BattleScript_SuccessBallThrow[];
-extern const u8 BattleScript_82DBD92[];
-extern const u8 BattleScript_82DBDA5[];
-extern const u8 BattleScript_82DBDC2[];
-extern const u8 BattleScript_82DBDC3[];
extern const u8 BattleScript_WallyBallThrow[];
extern const u8 BattleScript_ShakeBallThrow[];
-extern const u8 BattleScript_82DBE01[];
extern const u8 BattleScript_TrainerBallBlock[];
-extern const u8 BattleScript_82DBE12[];
-extern const u8 BattleScript_82DBE1C[];
-extern const u8 BattleScript_82DBE4B[];
-extern const u8 BattleScript_82DBE6F[];
-extern const u8 BattleScript_82DBE91[];
extern const u8 BattleScript_RunByUsingItem[];
extern const u8 BattleScript_ActionWatchesCarefully[];
extern const u8 BattleScript_ActionGetNear[];
extern const u8 BattleScript_ActionThrowPokeblock[];
-extern const u8 BattleScript_82DBEE3[];
extern const u8 gUnknown_81D9192[];
extern const u8 gUnknown_81D9180[];
extern const u8 BattleScript_IntimidateActivates[];
extern const u8 BattleScript_IntimidateActivatesEnd3[];
+extern const u8 BattleScript_IgnoresWhileAsleep[];
+extern const u8 BattleScript_IgnoresAndHitsItself[];
#endif // GUARD_BATTLE_SCRIPTS_H
diff --git a/include/battle_util.h b/include/battle_util.h
index dfe7be60a..797f0ef52 100644
--- a/include/battle_util.h
+++ b/include/battle_util.h
@@ -52,45 +52,41 @@
#define BS_GET_PLAYER2 13
#define BS_GET_OPPONENT2 14
-u8 GetBattleBank(u8 caseId);
-void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move);
-void PressurePPLoseOnUsingPerishSong(u8 bankAtk);
-void PressurePPLoseOnUsingImprison(u8 bankAtk);
-void MarkAllBattlersForControllerExec(void); // unused
-void MarkBattlerForControllerExec(u8 bank);
-void sub_803F850(u8 arg0);
-void CancelMultiTurnMoves(u8 bank);
-bool8 WasUnableToUseMove(u8 bank);
-void PrepareStringBattle(u16 stringId, u8 bank);
+u8 GetBattlerForBattleScript(u8 caseId);
+void PressurePPLose(u8 target, u8 attacker, u16 move);
+void PressurePPLoseOnUsingImprison(u8 attacker);
+void PressurePPLoseOnUsingPerishSong(u8 attacker);
+void MarkAllBattlersForControllerExec(void);
+void MarkBattlerForControllerExec(u8 battlerId);
+void sub_8017298(u8 arg0);
+void CancelMultiTurnMoves(u8 battler);
+bool8 WasUnableToUseMove(u8 battler);
+void PrepareStringBattle(u16 stringId, u8 battler);
void ResetSentPokesToOpponentValue(void);
-void sub_803F9EC(u8 bank);
-void sub_803FA70(u8 bank);
-void BattleScriptPush(const u8* bsPtr);
+void sub_8017434(u8 battler);
+void sub_80174B8(u8 battler);
+void BattleScriptPush(const u8 *bsPtr);
void BattleScriptPushCursor(void);
void BattleScriptPop(void);
u8 TrySetCantSelectMoveBattleScript(void);
-u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check);
+u8 CheckMoveLimitations(u8 battlerId, u8 unusableMoves, u8 check);
bool8 AreAllMovesUnusable(void);
-u8 GetImprisonedMovesCount(u8 bank, u16 move);
+u8 GetImprisonedMovesCount(u8 battlerId, u16 move);
u8 DoFieldEndTurnEffects(void);
u8 DoBattlerEndTurnEffects(void);
bool8 HandleWishPerishSongOnTurnEnd(void);
bool8 HandleFaintedMonActions(void);
void TryClearRageStatuses(void);
u8 AtkCanceller_UnableToUseMove(void);
-bool8 sub_80423F4(u8 bank, u8 r1, u8 r2);
-u8 CastformDataTypeChange(u8 bank);
-u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg);
-void BattleScriptExecute(const u8* BS_ptr);
-void BattleScriptPushCursorAndCallback(const u8* BS_ptr);
-u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn);
-void ClearFuryCutterDestinyBondGrudge(u8 bank);
+bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2);
+u8 CastformDataTypeChange(u8 battler);
+u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveArg);
+void BattleScriptExecute(const u8 *BS_ptr);
+void BattleScriptPushCursorAndCallback(const u8 *BS_ptr);
+u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn);
+void ClearFuryCutterDestinyBondGrudge(u8 battlerId);
void HandleAction_RunBattleScript(void);
-u8 GetMoveTarget(u16 move, u8 useMoveTarget);
+u8 GetMoveTarget(u16 move, u8 setTarget);
u8 IsMonDisobedient(void);
-void MarkBattlerForControllerExec(u8 battlerId);
-void sub_80174B8(u8 battlerId);
-void sub_8017298(u8 battlerId);
-bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2);
#endif // GUARD_BATTLE_UTIL_H
diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h
index 78c1583b4..6942fee83 100644
--- a/include/constants/pokemon.h
+++ b/include/constants/pokemon.h
@@ -77,4 +77,10 @@
#define STAT_ACC 6 // only in battles
#define STAT_EVASION 7 // only in battles
+#define NUM_STATS 6
+#define NUM_BATTLE_STATS 8
+
+// Shiny odds
+#define SHINY_ODDS 8 // Actual probability is SHINY_ODDS/65536
+
#endif // GUARD_CONSTANTS_POKEMON_H