Fix ally targeting moves crashing in single battles (#9433)
Some checks are pending
CI / build (push) Waiting to run
CI / docs_validate (push) Waiting to run
CI / allcontributors (push) Waiting to run
Docs / deploy (push) Waiting to run

This commit is contained in:
PhallenTree 2026-03-06 08:27:58 +00:00 committed by GitHub
parent f2af06983a
commit 8dd4135b46
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 0 deletions

View File

@ -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;

View File

@ -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);