From b77dec123417ca057f66cf745496a592f8f7de6e Mon Sep 17 00:00:00 2001 From: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Date: Sat, 23 Sep 2023 04:44:30 -0400 Subject: [PATCH] Transform updates AI_PARTY data (#3295) * Cmd_transformdataexecution overwrite AI_PARTY data * remove whitespace * add RecordAllMoves --------- Co-authored-by: ghoulslash --- include/battle_ai_util.h | 1 + src/battle_ai_util.c | 5 +++++ src/battle_script_commands.c | 8 ++++++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 5f077fe0cc..cec3241379 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -14,6 +14,7 @@ bool32 BattlerHasAi(u32 battlerId); bool32 IsAiBattlerAware(u32 battlerId); void ClearBattlerMoveHistory(u8 battlerId); void RecordLastUsedMoveBy(u32 battlerId, u32 move); +void RecordAllMoves(u32 battler); void RecordKnownMove(u8 battlerId, u32 move); void RecordAbilityBattle(u8 battlerId, u16 abilityId); void ClearBattlerAbilityHistory(u8 battlerId); diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index ed75fbad24..10668e07dd 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -507,6 +507,11 @@ void RecordKnownMove(u8 battlerId, u32 move) } } +void RecordAllMoves(u32 battler) +{ + memcpy(AI_PARTY->mons[GetBattlerSide(battler)][gBattlerPartyIndexes[battler]].moves, gBattleMons[battler].moves, MAX_MON_MOVES * sizeof(u16)); +} + void RecordAbilityBattle(u8 battlerId, u16 abilityId) { BATTLE_HISTORY->abilities[battlerId] = abilityId; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 61bd528b65..36327515c6 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -12439,7 +12439,7 @@ static void Cmd_transformdataexecution(void) { s32 i; u8 *battleMonAttacker, *battleMonTarget; - + gBattleMons[gBattlerAttacker].status2 |= STATUS2_TRANSFORMED; gDisableStructs[gBattlerAttacker].disabledMove = MOVE_NONE; gDisableStructs[gBattlerAttacker].disableTimer = 0; @@ -12464,7 +12464,11 @@ static void Cmd_transformdataexecution(void) else gBattleMons[gBattlerAttacker].pp[i] = 5; } - + + // update AI knowledge + RecordAllMoves(gBattlerAttacker); + RecordAbilityBattle(gBattlerAttacker, gBattleMons[gBattlerAttacker].ability); + BtlController_EmitResetActionMoveSelection(gBattlerAttacker, BUFFER_A, RESET_MOVE_SELECTION); MarkBattlerForControllerExec(gBattlerAttacker); gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TRANSFORMED;