From 3ea6bd18721ff53b52bd2d2fe2b493156388335f Mon Sep 17 00:00:00 2001 From: Alex <93446519+AlexOn1ine@users.noreply.github.com> Date: Fri, 20 Feb 2026 11:39:34 +0100 Subject: [PATCH] FRLG accuracy check clean up (#9224) --- src/battle_script_commands.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6982c7c086..cefe4f64ea 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1106,15 +1106,15 @@ static bool32 ShouldSkipAccuracyCalcPastFirstHit(enum BattlerId battlerAtk, enum return TRUE; // multiHitOn is set so skip Acc check for everything else } -static bool32 ShouldBypassAccuracyCheckFrlg(void) +static bool32 ShouldSkipFRLGAccuracyCheck(void) { if (!IS_FRLG) return FALSE; if ((gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE - && (!BtlCtrl_OakOldMan_TestState2Flag(1) || !BtlCtrl_OakOldMan_TestState2Flag(2)) - && gMovesInfo[gCurrentMove].power != 0 - && GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)) + && (!BtlCtrl_OakOldMan_TestState2Flag(1) || !BtlCtrl_OakOldMan_TestState2Flag(2)) + && GetMovePower(gCurrentMove) != 0 + && GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER)) { return TRUE; } @@ -1130,23 +1130,8 @@ static void AccuracyCheck(bool32 recalcDragonDarts, const u8 *nextInstr, const u enum Ability abilityAtk = GetBattlerAbility(gBattlerAttacker); enum HoldEffect holdEffectAtk = GetBattlerHoldEffect(gBattlerAttacker); - if (ShouldBypassAccuracyCheckFrlg()) - { - if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_MISSED) - { - gBattleStruct->moveResultFlags[gBattlerTarget] = MOVE_RESULT_MISSED; - gLastLandedMoves[gBattlerTarget] = 0; - gLastHitByType[gBattlerTarget] = 0; - gBattlescriptCurrInstr = failInstr; - } - else - { - gBattlescriptCurrInstr = nextInstr; - } - return; - } - - if (ShouldSkipAccuracyCalcPastFirstHit(gBattlerAttacker, abilityAtk, holdEffectAtk, GetMoveEffect(gCurrentMove)) + if (ShouldSkipFRLGAccuracyCheck() + || ShouldSkipAccuracyCalcPastFirstHit(gBattlerAttacker, abilityAtk, holdEffectAtk, GetMoveEffect(gCurrentMove)) || IsMaxMove(gCurrentMove) || IsZMove(gCurrentMove)) {