From 8dd4135b4661877be3df4409d5bda0f99829e521 Mon Sep 17 00:00:00 2001 From: PhallenTree <168426989+PhallenTree@users.noreply.github.com> Date: Fri, 6 Mar 2026 08:27:58 +0000 Subject: [PATCH] Fix ally targeting moves crashing in single battles (#9433) --- src/battle_controller_opponent.c | 7 +++++++ src/battle_controller_player.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 37eeecfd38..74e54c352b 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -465,6 +465,9 @@ static void OpponentHandleChooseMove(enum BattlerId battler) if (target == TARGET_USER) gBattlerTarget = battler; + if (target == TARGET_ALLY) + gBattlerTarget = BATTLE_PARTNER(battler); + if (target == TARGET_BOTH) { gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); @@ -500,6 +503,10 @@ static void OpponentHandleChooseMove(enum BattlerId battler) { BtlController_EmitTwoReturnValues(battler, B_COMM_TO_ENGINE, B_ACTION_EXEC_SCRIPT, (chosenMoveIndex) | (battler << 8)); } + else if (moveTarget == TARGET_ALLY) + { + BtlController_EmitTwoReturnValues(battler, B_COMM_TO_ENGINE, B_ACTION_EXEC_SCRIPT, (chosenMoveIndex) | (BATTLE_PARTNER(battler) << 8)); + } else if (IsDoubleBattle()) { enum BattlerId targetBattler; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index c43746a110..92e30e0f0e 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -718,6 +718,8 @@ void HandleInputChooseMove(enum BattlerId battler) if (isUserOrAlly) gMultiUsePlayerCursor = battler; + else if (moveTarget == TARGET_ALLY) + gMultiUsePlayerCursor = BATTLE_PARTNER(battler); else gMultiUsePlayerCursor = GetOpposingSideBattler(battler);