summaryrefslogtreecommitdiff
path: root/src/battle_ai_script_commands.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-12-31 00:40:45 -0500
committerGitHub <noreply@github.com>2020-12-31 00:40:45 -0500
commitec85c01e7c6d15060eddcc653db33a4b317646d2 (patch)
tree4266c43bcdc1c80c52def44e1470182d3f1c665c /src/battle_ai_script_commands.c
parent093610b46e99b517a416ccd5a572054dff09801b (diff)
parent0c74e2097ffbe8395d6f3659c2a49fc829d69b99 (diff)
Merge branch 'master' into doc-factscreen
Diffstat (limited to 'src/battle_ai_script_commands.c')
-rw-r--r--src/battle_ai_script_commands.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c
index 748e4729a..b7679429c 100644
--- a/src/battle_ai_script_commands.c
+++ b/src/battle_ai_script_commands.c
@@ -14,7 +14,6 @@
#include "constants/battle_ai.h"
#include "constants/battle_move_effects.h"
#include "constants/moves.h"
-#include "constants/species.h"
#define AI_ACTION_DONE 0x0001
#define AI_ACTION_FLEE 0x0002
@@ -451,7 +450,16 @@ static u8 ChooseMoveOrAction_Doubles(void)
{
s32 i;
s32 j;
+#ifndef BUGFIX
s32 scriptsToRun;
+#else
+ // the value assigned to this is a u32 (aiFlags)
+ // this becomes relevant because aiFlags can have bit 31 set
+ // and scriptsToRun is shifted
+ // this never happens in the vanilla game because bit 31 is
+ // only set when it's the first battle
+ u32 scriptsToRun;
+#endif
s16 bestMovePointsForTarget[MAX_BATTLERS_COUNT];
s8 mostViableTargetsArray[MAX_BATTLERS_COUNT];
u8 actionOrMoveIndex[MAX_BATTLERS_COUNT];
@@ -616,8 +624,8 @@ static void RecordLastUsedMoveByTarget(void)
{
if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == gLastMoves[gBattlerTarget])
break;
- if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] != gLastMoves[gBattlerTarget] // HACK: This redundant condition is a hack to make the asm match.
- && BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == MOVE_NONE)
+
+ if (BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] == MOVE_NONE)
{
BATTLE_HISTORY->usedMoves[gBattlerTarget].moves[i] = gLastMoves[gBattlerTarget];
break;
@@ -1605,8 +1613,10 @@ static void Cmd_if_status_not_in_party(void)
if (species != SPECIES_NONE && species != SPECIES_EGG && hp != 0 && status == statusToCompareTo)
{
- gAIScriptPtr += 10; // UB: Still bugged in Emerald. Uncomment the return statement to fix.
- // return;
+ gAIScriptPtr += 10;
+ #ifdef UBFIX
+ return;
+ #endif
}
}