Fix Status1 icon not being registered for recorded partner in tests (#8520)

This commit is contained in:
Eduardo Quezada 2025-12-26 20:36:42 -03:00 committed by GitHub
parent ccd6e31767
commit 6e12b35287
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 28 additions and 3 deletions

View File

@ -43,6 +43,7 @@ static void RecordedPartnerHandleIntroTrainerBallThrow(u32 battler);
static void RecordedPartnerHandleDrawPartyStatusSummary(u32 battler); static void RecordedPartnerHandleDrawPartyStatusSummary(u32 battler);
static void RecordedPartnerHandleEndLinkBattle(u32 battler); static void RecordedPartnerHandleEndLinkBattle(u32 battler);
static void RecordedPartnerBufferRunCommand(u32 battler); static void RecordedPartnerBufferRunCommand(u32 battler);
static void RecordedPartnerHandleStatusIconUpdate(u32 battler);
static void (*const sRecordedPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(u32 battler) = static void (*const sRecordedPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(u32 battler) =
{ {
@ -72,7 +73,7 @@ static void (*const sRecordedPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(u32 b
[CONTROLLER_23] = BtlController_Empty, [CONTROLLER_23] = BtlController_Empty,
[CONTROLLER_HEALTHBARUPDATE] = BtlController_HandleHealthBarUpdate, [CONTROLLER_HEALTHBARUPDATE] = BtlController_HandleHealthBarUpdate,
[CONTROLLER_EXPUPDATE] = PlayerHandleExpUpdate, // Partner's player gets experience the same way as the player. [CONTROLLER_EXPUPDATE] = PlayerHandleExpUpdate, // Partner's player gets experience the same way as the player.
[CONTROLLER_STATUSICONUPDATE] = BtlController_HandleStatusIconUpdate, [CONTROLLER_STATUSICONUPDATE] = RecordedPartnerHandleStatusIconUpdate,
[CONTROLLER_STATUSANIMATION] = BtlController_HandleStatusAnimation, [CONTROLLER_STATUSANIMATION] = BtlController_HandleStatusAnimation,
[CONTROLLER_STATUSXOR] = BtlController_Empty, [CONTROLLER_STATUSXOR] = BtlController_Empty,
[CONTROLLER_DATATRANSFER] = BtlController_Empty, [CONTROLLER_DATATRANSFER] = BtlController_Empty,
@ -267,3 +268,13 @@ static void RecordedPartnerHandleEndLinkBattle(u32 battler)
BtlController_Complete(battler); BtlController_Complete(battler);
gBattlerControllerFuncs[battler] = SetBattleEndCallbacks; gBattlerControllerFuncs[battler] = SetBattleEndCallbacks;
} }
static void RecordedPartnerHandleStatusIconUpdate(u32 battler)
{
if (!IsBattleSEPlaying(battler))
{
DoStatusIconUpdate(battler);
if (gTestRunnerEnabled)
TestRunner_Battle_RecordStatus1(battler, GetMonData(GetBattlerMon(battler), MON_DATA_STATUS));
}
}

View File

@ -80,3 +80,17 @@ SINGLE_BATTLE_TEST("Changing forms doesn't overwrite set stats (HP)")
EXPECT_EQ(player->maxHP, 10); EXPECT_EQ(player->maxHP, 10);
} }
} }
MULTI_BATTLE_TEST("Multi Battle Tests register partner's status1")
{
GIVEN {
MULTI_PLAYER(SPECIES_WOBBUFFET);
MULTI_PARTNER(SPECIES_WOBBUFFET);
MULTI_OPPONENT_A(SPECIES_WOBBUFFET);
MULTI_OPPONENT_B(SPECIES_WOBBUFFET);
} WHEN {
TURN { MOVE(playerLeft, MOVE_WILL_O_WISP, target: playerRight); }
} SCENE {
STATUS_ICON(playerRight, STATUS1_BURN);
}
}