diff options
Diffstat (limited to 'src/recorded_battle.c')
-rw-r--r-- | src/recorded_battle.c | 265 |
1 files changed, 128 insertions, 137 deletions
diff --git a/src/recorded_battle.c b/src/recorded_battle.c index e843ff7cb..45b07ca7a 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -3,7 +3,7 @@ #include "recorded_battle.h" #include "main.h" #include "pokemon.h" -#include "rng.h" +#include "random.h" #include "event_data.h" #include "link.h" #include "string_util.h" @@ -13,23 +13,15 @@ #include "util.h" #include "task.h" #include "text.h" +#include "battle_setup.h" -#define BANK_RECORD_SIZE 664 +#define BATTLER_RECORD_SIZE 664 #define ILLEGAL_BATTLE_TYPES ((BATTLE_TYPE_LINK | BATTLE_TYPE_SAFARI | BATTLE_TYPE_FIRST_BATTLE \ | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \ | BATTLE_TYPE_KYOGRE_GROUDON | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI \ | BATTLE_TYPE_RECORDED | BATTLE_TYPE_x4000000 | BATTLE_TYPE_SECRET_BASE \ - | BATTLE_TYPE_GROUDON | BATTLE_TYPE_KYORGE | BATTLE_TYPE_RAYQUAZA)) - -extern u32 gBattleTypeFlags; -extern u16 gTrainerBattleOpponent_A; -extern u16 gTrainerBattleOpponent_B; -extern u16 gPartnerTrainerId; -extern u8 gActiveBank; -extern u8 gNoOfAllBanks; -extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; -extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; + | BATTLE_TYPE_GROUDON | BATTLE_TYPE_KYOGRE | BATTLE_TYPE_RAYQUAZA)) + extern u8 gUnknown_03001278; extern u8 gUnknown_03001279; @@ -38,7 +30,7 @@ struct PlayerInfo u32 trainerId; u8 name[PLAYER_NAME_LENGTH]; u8 gender; - u16 bank; + u16 battlerId; u16 language; }; @@ -52,13 +44,13 @@ struct RecordedBattleSave { struct Pokemon playerParty[PARTY_SIZE]; struct Pokemon opponentParty[PARTY_SIZE]; - u8 playersName[BATTLE_BANKS_COUNT][PLAYER_NAME_LENGTH]; - u8 playersGender[BATTLE_BANKS_COUNT]; - u32 playersTrainerId[BATTLE_BANKS_COUNT]; - u8 playersLanguage[BATTLE_BANKS_COUNT]; + u8 playersName[MAX_BATTLERS_COUNT][PLAYER_NAME_LENGTH]; + u8 playersGender[MAX_BATTLERS_COUNT]; + u32 playersTrainerId[MAX_BATTLERS_COUNT]; + u8 playersLanguage[MAX_BATTLERS_COUNT]; u32 rngSeed; u32 battleFlags; - u8 playersBank[BATTLE_BANKS_COUNT]; + u8 playersBattlers[MAX_BATTLERS_COUNT]; u16 opponentA; u16 opponentB; u16 partnerId; @@ -66,8 +58,8 @@ struct RecordedBattleSave u8 field_4FC; u8 field_4FD; u8 field_4FE; - u8 battleStyle : 1; - u8 textSpeed : 3; + u8 battleStyle:1; + u8 textSpeed:3; u32 AI_scripts; u8 field_504[8]; u8 field_50C; @@ -75,31 +67,31 @@ struct RecordedBattleSave u16 field_50E[6]; u8 field_51A; u8 field_51B; - u8 battleRecord[BATTLE_BANKS_COUNT][BANK_RECORD_SIZE]; + u8 battleRecord[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE]; u32 checksum; }; EWRAM_DATA u32 gRecordedBattleRngSeed = 0; EWRAM_DATA u32 gBattlePalaceMoveSelectionRngValue = 0; -EWRAM_DATA static u8 sBattleRecords[BATTLE_BANKS_COUNT][BANK_RECORD_SIZE] = {0}; -EWRAM_DATA static u16 sRecordedBytesNo[BATTLE_BANKS_COUNT] = {0}; +EWRAM_DATA static u8 sBattleRecords[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE] = {0}; +EWRAM_DATA static u16 sRecordedBytesNo[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA static u16 sUnknown_0203C79C[4] = {0}; EWRAM_DATA static u16 sUnknown_0203C7A4[4] = {0}; EWRAM_DATA static u8 sUnknown_0203C7AC = 0; EWRAM_DATA static u8 sUnknown_0203C7AD = 0; -EWRAM_DATA static u8 sUnknown_0203C7AE = 0; +EWRAM_DATA static u8 sFrontierFacility = 0; EWRAM_DATA static u8 sUnknown_0203C7AF = 0; EWRAM_DATA static MainCallback sCallback2_AfterRecordedBattle = NULL; EWRAM_DATA u8 gUnknown_0203C7B4 = 0; EWRAM_DATA static u8 sUnknown_0203C7B5 = 0; -EWRAM_DATA static u8 sRecordedBattle_BattleStyle = 0; -EWRAM_DATA static u8 sRecordedBattle_TextSpeed = 0; -EWRAM_DATA static u32 sRecordedBattle_BattleFlags = 0; -EWRAM_DATA static u32 sRecordedBattle_AI_Scripts = 0; +EWRAM_DATA static u8 sBattleStyle = 0; +EWRAM_DATA static u8 sTextSpeed = 0; +EWRAM_DATA static u32 sBattleFlags = 0; +EWRAM_DATA static u32 sAI_Scripts = 0; EWRAM_DATA static struct Pokemon sSavedPlayerParty[PARTY_SIZE] = {0}; EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0}; -EWRAM_DATA static u16 sRecordedBattle_PlayerMonMoves[2][4] = {0}; -EWRAM_DATA static struct PlayerInfo sRecordedBattle_Players[BATTLE_BANKS_COUNT] = {0}; +EWRAM_DATA static u16 sPlayerMonMoves[2][4] = {0}; +EWRAM_DATA static struct PlayerInfo sPlayers[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA static u8 sUnknown_0203CCD0 = 0; EWRAM_DATA static u8 sUnknown_0203CCD1[8] = {0}; EWRAM_DATA static u8 sUnknown_0203CCD9 = 0; @@ -108,7 +100,6 @@ EWRAM_DATA static u16 sUnknown_0203CCDC[6] = {0}; EWRAM_DATA static u8 sUnknown_0203CCE8 = 0; extern u32 sub_81A513C(void); -extern void PlayMapChosenOrBattleBGM(bool8); // this file's functions static u8 sub_8185278(u8 *arg0, u8 *arg1, u8 *arg2); @@ -123,7 +114,7 @@ void sub_8184DA4(u8 arg0) sUnknown_0203C7AC = arg0; sUnknown_0203CCD0 = 0; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { sRecordedBytesNo[i] = 0; sUnknown_0203C79C[i] = 0; @@ -131,12 +122,12 @@ void sub_8184DA4(u8 arg0) if (arg0 == 1) { - for (j = 0; j < BANK_RECORD_SIZE; j++) + for (j = 0; j < BATTLER_RECORD_SIZE; j++) { sBattleRecords[i][j] |= 0xFF; } - sRecordedBattle_BattleFlags = gBattleTypeFlags; - sRecordedBattle_AI_Scripts = gBattleResources->ai->aiFlags; + sBattleFlags = gBattleTypeFlags; + sAI_Scripts = gBattleResources->ai->aiFlags; } } } @@ -148,7 +139,7 @@ void sub_8184E58(void) if (sUnknown_0203C7AC == 1) { gRecordedBattleRngSeed = gRngValue; - sUnknown_0203C7AE = VarGet(VAR_FRONTIER_FACILITY); + sFrontierFacility = VarGet(VAR_FRONTIER_FACILITY); sUnknown_0203C7AF = sub_81A513C(); } else if (sUnknown_0203C7AC == 2) @@ -164,77 +155,77 @@ void sub_8184E58(void) gUnknown_0203C7B4 = GetMultiplayerId(); linkPlayersCount = GetLinkPlayerCount(); - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - sRecordedBattle_Players[i].trainerId = gLinkPlayers[i].trainerId; - sRecordedBattle_Players[i].gender = gLinkPlayers[i].gender; - sRecordedBattle_Players[i].bank = gLinkPlayers[i].lp_field_18; - sRecordedBattle_Players[i].language = gLinkPlayers[i].language; + sPlayers[i].trainerId = gLinkPlayers[i].trainerId; + sPlayers[i].gender = gLinkPlayers[i].gender; + sPlayers[i].battlerId = gLinkPlayers[i].id; + sPlayers[i].language = gLinkPlayers[i].language; if (i < linkPlayersCount) { StringCopy(text, gLinkPlayers[i].name); StripExtCtrlCodes(text); - StringCopy(sRecordedBattle_Players[i].name, text); + StringCopy(sPlayers[i].name, text); } else { for (j = 0; j < PLAYER_NAME_LENGTH; j++) - sRecordedBattle_Players[i].name[j] = gLinkPlayers[i].name[j]; + sPlayers[i].name[j] = gLinkPlayers[i].name[j]; } } } else { - sRecordedBattle_Players[0].trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) + sPlayers[0].trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8) | (gSaveBlock2Ptr->playerTrainerId[2] << 16) | (gSaveBlock2Ptr->playerTrainerId[3] << 24); - sRecordedBattle_Players[0].gender = gSaveBlock2Ptr->playerGender; - sRecordedBattle_Players[0].bank = 0; - sRecordedBattle_Players[0].language = gGameLanguage; + sPlayers[0].gender = gSaveBlock2Ptr->playerGender; + sPlayers[0].battlerId = 0; + sPlayers[0].language = gGameLanguage; for (i = 0; i < PLAYER_NAME_LENGTH; i++) - sRecordedBattle_Players[0].name[i] = gSaveBlock2Ptr->playerName[i]; + sPlayers[0].name[i] = gSaveBlock2Ptr->playerName[i]; } } -void RecordedBattle_SetBankAction(u8 bank, u8 action) +void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action) { - if (sRecordedBytesNo[bank] < BANK_RECORD_SIZE && sUnknown_0203C7AC != 2) + if (sRecordedBytesNo[battlerId] < BATTLER_RECORD_SIZE && sUnknown_0203C7AC != 2) { - sBattleRecords[bank][sRecordedBytesNo[bank]++] = action; + sBattleRecords[battlerId][sRecordedBytesNo[battlerId]++] = action; } } -void RecordedBattle_ClearBankAction(u8 bank, u8 bytesToClear) +void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear) { s32 i; for (i = 0; i < bytesToClear; i++) { - sRecordedBytesNo[bank]--; - sBattleRecords[bank][sRecordedBytesNo[bank]] |= 0xFF; - if (sRecordedBytesNo[bank] == 0) + sRecordedBytesNo[battlerId]--; + sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] |= 0xFF; + if (sRecordedBytesNo[battlerId] == 0) break; } } -u8 RecordedBattle_ReadBankAction(u8 bank) +u8 RecordedBattle_GetBattlerAction(u8 battlerId) { - // trying to read past array or invalid action byte, battle is over - if (sRecordedBytesNo[bank] >= BANK_RECORD_SIZE || sBattleRecords[bank][sRecordedBytesNo[bank]] == 0xFF) + // Trying to read past array or invalid action byte, battle is over. + if (sRecordedBytesNo[battlerId] >= BATTLER_RECORD_SIZE || sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] == 0xFF) { - gSpecialVar_Result = gBattleOutcome = BATTLE_PLAYER_TELEPORTED; // hah + gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah ResetPaletteFadeControl(); - BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0); SetMainCallback2(CB2_QuitRecordedBattle); return -1; } else { - return sBattleRecords[bank][sRecordedBytesNo[bank]++]; + return sBattleRecords[battlerId][sRecordedBytesNo[battlerId]++]; } } @@ -248,7 +239,7 @@ u8 sub_81850DC(u8 *arg0) u8 i, j; u8 ret = 0; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { if (sRecordedBytesNo[i] != sUnknown_0203C79C[i]) { @@ -350,41 +341,41 @@ u32 MoveRecordedBattleToSaveData(void) battleSave->opponentParty[i] = sSavedOpponentParty[i]; } - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { for (j = 0; j < PLAYER_NAME_LENGTH; j++) { - battleSave->playersName[i][j] = sRecordedBattle_Players[i].name[j]; + battleSave->playersName[i][j] = sPlayers[i].name[j]; } - battleSave->playersGender[i] = sRecordedBattle_Players[i].gender; - battleSave->playersLanguage[i] = sRecordedBattle_Players[i].language; - battleSave->playersBank[i] = sRecordedBattle_Players[i].bank; - battleSave->playersTrainerId[i] = sRecordedBattle_Players[i].trainerId; + battleSave->playersGender[i] = sPlayers[i].gender; + battleSave->playersLanguage[i] = sPlayers[i].language; + battleSave->playersBattlers[i] = sPlayers[i].battlerId; + battleSave->playersTrainerId[i] = sPlayers[i].trainerId; } battleSave->rngSeed = gRecordedBattleRngSeed; - if (sRecordedBattle_BattleFlags & BATTLE_TYPE_LINK) + if (sBattleFlags & BATTLE_TYPE_LINK) { - battleSave->battleFlags = (sRecordedBattle_BattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)); + battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)); battleSave->battleFlags |= BATTLE_TYPE_x2000000; - if (sRecordedBattle_BattleFlags & BATTLE_TYPE_WILD) + if (sBattleFlags & BATTLE_TYPE_WILD) { battleSave->battleFlags |= BATTLE_TYPE_x80000000; } - else if (sRecordedBattle_BattleFlags & BATTLE_TYPE_MULTI) + else if (sBattleFlags & BATTLE_TYPE_MULTI) { - switch (sRecordedBattle_Players[0].bank) + switch (sPlayers[0].battlerId) { case 0: case 2: - if (!(sRecordedBattle_Players[gUnknown_0203C7B4].bank & 1)) + if (!(sPlayers[gUnknown_0203C7B4].battlerId & 1)) battleSave->battleFlags |= BATTLE_TYPE_x80000000; break; case 1: case 3: - if ((sRecordedBattle_Players[gUnknown_0203C7B4].bank & 1)) + if ((sPlayers[gUnknown_0203C7B4].battlerId & 1)) battleSave->battleFlags |= BATTLE_TYPE_x80000000; break; } @@ -392,7 +383,7 @@ u32 MoveRecordedBattleToSaveData(void) } else { - battleSave->battleFlags = sRecordedBattle_BattleFlags; + battleSave->battleFlags = sBattleFlags; } battleSave->opponentA = gTrainerBattleOpponent_A; @@ -400,11 +391,11 @@ u32 MoveRecordedBattleToSaveData(void) battleSave->partnerId = gPartnerTrainerId; battleSave->field_4FA = gUnknown_0203C7B4; battleSave->field_4FC = gSaveBlock2Ptr->field_CA9_b; - battleSave->field_4FD = sUnknown_0203C7AE; + battleSave->field_4FD = sFrontierFacility; battleSave->field_4FE = sUnknown_0203C7AF; battleSave->battleStyle = gSaveBlock2Ptr->optionsBattleStyle; battleSave->textSpeed = gSaveBlock2Ptr->optionsTextSpeed; - battleSave->AI_scripts = sRecordedBattle_AI_Scripts; + battleSave->AI_scripts = sAI_Scripts; /* Can't match it without proper knowledge of the Saveblock 2. if (gTrainerBattleOpponent_A >= 300 && gTrainerBattleOpponent_A <= 399) @@ -484,7 +475,7 @@ u32 MoveRecordedBattleToSaveData(void) } #else -__attribute__((naked)) +NAKED u32 MoveRecordedBattleToSaveData(void) { asm(".syntax unified\n\ @@ -534,7 +525,7 @@ _0818535E:\n\ lsls r3, 3\n\ adds r3, r7, r3\n\ str r3, [sp, 0x8]\n\ - ldr r5, =sRecordedBattle_Players\n\ + ldr r5, =sPlayers\n\ mov r8, r6\n\ mov r12, r6\n\ movs r4, 0x96\n\ @@ -545,7 +536,7 @@ _0818535E:\n\ adds r4, r7, r0\n\ _081853AC:\n\ lsls r1, r6, 3\n\ - ldr r0, =sRecordedBattle_Players\n\ + ldr r0, =sPlayers\n\ adds r0, 0x4\n\ mov r3, r8\n\ adds r2, r3, r0\n\ @@ -587,7 +578,7 @@ _081853BA:\n\ ldr r5, =gRecordedBattleRngSeed\n\ ldr r0, [r5]\n\ str r0, [r1]\n\ - ldr r0, =sRecordedBattle_BattleFlags\n\ + ldr r0, =sBattleFlags\n\ ldr r2, [r0]\n\ movs r0, 0x2\n\ ands r0, r2\n\ @@ -617,7 +608,7 @@ _08185454:\n\ ands r2, r0\n\ cmp r2, 0\n\ beq _081854E2\n\ - ldr r2, =sRecordedBattle_Players\n\ + ldr r2, =sPlayers\n\ ldrh r0, [r2, 0xE]\n\ cmp r0, 0x1\n\ beq _081854A8\n\ @@ -639,7 +630,7 @@ _0818547E:\n\ lsls r0, r1, 2\n\ adds r0, r1\n\ lsls r0, 2\n\ - ldr r4, =sRecordedBattle_Players\n\ + ldr r4, =sPlayers\n\ adds r0, r4\n\ ldrh r1, [r0, 0xE]\n\ movs r0, 0x1\n\ @@ -656,7 +647,7 @@ _081854A8:\n\ lsls r0, r1, 2\n\ adds r0, r1\n\ lsls r0, 2\n\ - ldr r1, =sRecordedBattle_Players\n\ + ldr r1, =sPlayers\n\ adds r0, r1\n\ ldrh r1, [r0, 0xE]\n\ movs r0, 0x1\n\ @@ -709,7 +700,7 @@ _081854E2:\n\ ldr r5, =0x000004fc\n\ adds r1, r7, r5\n\ strb r0, [r1]\n\ - ldr r0, =sUnknown_0203C7AE\n\ + ldr r0, =sFrontierFacility\n\ ldrb r1, [r0]\n\ adds r2, 0x3\n\ adds r0, r7, r2\n\ @@ -744,7 +735,7 @@ _081854E2:\n\ movs r2, 0xA0\n\ lsls r2, 3\n\ adds r1, r7, r2\n\ - ldr r3, =sRecordedBattle_AI_Scripts\n\ + ldr r3, =sAI_Scripts\n\ ldr r0, [r3]\n\ str r0, [r1]\n\ ldr r4, =0xfffffed4\n\ @@ -1302,7 +1293,7 @@ static bool32 AllocTryCopyRecordedBattleSaveData(struct RecordedBattleSave *dst) static void CB2_RecordedBattleEnd(void) { - gSaveBlock2Ptr->frontierChosenLvl = sUnknown_0203C7AD; + gSaveBlock2Ptr->frontier.chosenLvl = sUnknown_0203C7AD; gBattleOutcome = 0; gBattleTypeFlags = 0; gTrainerBattleOpponent_A = 0; @@ -1339,7 +1330,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) gEnemyParty[i] = src->opponentParty[i]; } - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { for (var = FALSE, j = 0; j < PLAYER_NAME_LENGTH; j++) { @@ -1349,7 +1340,7 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) } gLinkPlayers[i].gender = src->playersGender[i]; gLinkPlayers[i].language = src->playersLanguage[i]; - gLinkPlayers[i].lp_field_18 = src->playersBank[i]; + gLinkPlayers[i].id = src->playersBattlers[i]; gLinkPlayers[i].trainerId = src->playersTrainerId[i]; if (var) @@ -1362,12 +1353,12 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) gTrainerBattleOpponent_B = src->opponentB; gPartnerTrainerId = src->partnerId; gUnknown_0203C7B4 = src->field_4FA; - sUnknown_0203C7AD = gSaveBlock2Ptr->frontierChosenLvl; - sUnknown_0203C7AE = src->field_4FD; + sUnknown_0203C7AD = gSaveBlock2Ptr->frontier.chosenLvl; + sFrontierFacility = src->field_4FD; sUnknown_0203C7AF = src->field_4FE; - sRecordedBattle_BattleStyle = src->battleStyle; - sRecordedBattle_TextSpeed = src->textSpeed; - sRecordedBattle_AI_Scripts = src->AI_scripts; + sBattleStyle = src->battleStyle; + sTextSpeed = src->textSpeed; + sAI_Scripts = src->AI_scripts; for (i = 0; i < 8; i++) { @@ -1384,11 +1375,11 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) sUnknown_0203CCDC[i] = src->field_50E[i]; } - gSaveBlock2Ptr->frontierChosenLvl = src->field_4FC; + gSaveBlock2Ptr->frontier.chosenLvl = src->field_4FC; - for (i = 0; i < BATTLE_BANKS_COUNT; i++) + for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - for (j = 0; j < BANK_RECORD_SIZE; j++) + for (j = 0; j < BATTLER_RECORD_SIZE; j++) { sBattleRecords[i][j] = src->battleRecord[i][j]; } @@ -1424,9 +1415,9 @@ static void CB2_RecordedBattle(void) RunTasks(); } -u8 sub_8185EA0(void) +u8 GetRecordedBattleFrontierFacility(void) { - return sUnknown_0203C7AE; + return sFrontierFacility; } u8 sub_8185EAC(void) @@ -1456,13 +1447,13 @@ static void RecordedBattle_RestoreSavedParties(void) } } -u8 GetActiveBankLinkPlayerGender(void) +u8 GetActiveBattlerLinkPlayerGender(void) { s32 i; for (i = 0; i < MAX_LINK_PLAYERS; i++) { - if (gLinkPlayers[i].lp_field_18 == gActiveBank) + if (gLinkPlayers[i].id == gActiveBattler) break; } @@ -1489,19 +1480,19 @@ u8 sub_8185FAC(void) u8 GetBattleStyleInRecordedBattle(void) { - return sRecordedBattle_BattleStyle; + return sBattleStyle; } u8 GetTextSpeedInRecordedBattle(void) { - return sRecordedBattle_TextSpeed; + return sTextSpeed; } -void RecordedBattle_CopyBankMoves(void) +void RecordedBattle_CopyBattlerMoves(void) { s32 i; - if (GetBankSide(gActiveBank) == SIDE_OPPONENT) + if (GetBattlerSide(gActiveBattler) == B_SIDE_OPPONENT) return; if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return; @@ -1510,7 +1501,7 @@ void RecordedBattle_CopyBankMoves(void) for (i = 0; i < 4; i++) { - sRecordedBattle_PlayerMonMoves[gActiveBank / 2][i] = gBattleMons[gActiveBank].moves[i]; + sPlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i]; } } @@ -1518,32 +1509,32 @@ void RecordedBattle_CopyBankMoves(void) void sub_818603C(u8 arg0) { - s32 bank, j, k; + s32 battlerId, j, k; if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) return; - for (bank = 0; bank < gNoOfAllBanks; bank++) + for (battlerId = 0; battlerId < gBattlersCount; battlerId++) { - if (GetBankSide(bank) != SIDE_OPPONENT) // player's side only + if (GetBattlerSide(battlerId) != B_SIDE_OPPONENT) // player's side only { if (arg0 == 1) { for (j = 0; j < 4; j++) { - if (gBattleMons[bank].moves[j] != sRecordedBattle_PlayerMonMoves[bank / 2][j]) + if (gBattleMons[battlerId].moves[j] != sPlayerMonMoves[battlerId / 2][j]) break; } if (j != 4) // player's mon's move has been changed { - RecordedBattle_SetBankAction(bank, ACTION_MOVE_CHANGE); + RecordedBattle_SetBattlerAction(battlerId, ACTION_MOVE_CHANGE); for (j = 0; j < 4; j++) { for (k = 0; k < 4; k++) { - if (gBattleMons[bank].moves[j] == sRecordedBattle_PlayerMonMoves[bank / 2][k]) + if (gBattleMons[battlerId].moves[j] == sPlayerMonMoves[battlerId / 2][k]) { - RecordedBattle_SetBankAction(bank, k); + RecordedBattle_SetBattlerAction(battlerId, k); break; } } @@ -1552,7 +1543,7 @@ void sub_818603C(u8 arg0) } else { - if (sBattleRecords[bank][sRecordedBytesNo[bank]] == ACTION_MOVE_CHANGE) + if (sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] == ACTION_MOVE_CHANGE) { u8 ppBonuses[4]; u8 array1[4]; @@ -1561,58 +1552,58 @@ void sub_818603C(u8 arg0) u8 array3[8]; u8 var; - RecordedBattle_ReadBankAction(bank); + RecordedBattle_GetBattlerAction(battlerId); for (j = 0; j < 4; j++) { - ppBonuses[j] = ((gBattleMons[bank].ppBonuses & ((3 << (j << 1)))) >> (j << 1)); + ppBonuses[j] = ((gBattleMons[battlerId].ppBonuses & ((3 << (j << 1)))) >> (j << 1)); } for (j = 0; j < 4; j++) { - array1[j] = RecordedBattle_ReadBankAction(bank); - movePp.moves[j] = gBattleMons[bank].moves[array1[j]]; - movePp.pp[j] = gBattleMons[bank].pp[array1[j]]; + array1[j] = RecordedBattle_GetBattlerAction(battlerId); + movePp.moves[j] = gBattleMons[battlerId].moves[array1[j]]; + movePp.pp[j] = gBattleMons[battlerId].pp[array1[j]]; array3[j] = ppBonuses[array1[j]]; - array2[j] = (gDisableStructs[bank].unk18_b & gBitTable[j]) >> j; + array2[j] = (gDisableStructs[battlerId].unk18_b & gBitTable[j]) >> j; } for (j = 0; j < 4; j++) { - gBattleMons[bank].moves[j] = movePp.moves[j]; - gBattleMons[bank].pp[j] = movePp.pp[j]; + gBattleMons[battlerId].moves[j] = movePp.moves[j]; + gBattleMons[battlerId].pp[j] = movePp.pp[j]; } - gBattleMons[bank].ppBonuses = 0; - gDisableStructs[bank].unk18_b = 0; + gBattleMons[battlerId].ppBonuses = 0; + gDisableStructs[battlerId].unk18_b = 0; for (j = 0; j < 4; j++) { - gBattleMons[bank].ppBonuses |= (array3[j]) << (j << 1); - gDisableStructs[bank].unk18_b |= (array2[j]) << (j); + gBattleMons[battlerId].ppBonuses |= (array3[j]) << (j << 1); + gDisableStructs[battlerId].unk18_b |= (array2[j]) << (j); } - if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED)) + if (!(gBattleMons[battlerId].status2 & STATUS2_TRANSFORMED)) { for (j = 0; j < 4; j++) { - ppBonuses[j] = ((GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1)); + ppBonuses[j] = ((GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP_BONUSES, NULL) & ((3 << (j << 1)))) >> (j << 1)); } for (j = 0; j < 4; j++) { - movePp.moves[j] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_MOVE1 + array1[j], NULL); - movePp.pp[j] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP1 + array1[j], NULL); + movePp.moves[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + array1[j], NULL); + movePp.pp[j] = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP1 + array1[j], NULL); array3[j] = ppBonuses[array1[j]]; } for (j = 0; j < 4; j++) { - SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_MOVE1 + j, &movePp.moves[j]); - SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP1 + j, &movePp.pp[j]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_MOVE1 + j, &movePp.moves[j]); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP1 + j, &movePp.pp[j]); } var = 0; for (j = 0; j < 4; j++) { var |= (array3[j]) << (j << 1); } - SetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_PP_BONUSES, &var); + SetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerId]], MON_DATA_PP_BONUSES, &var); } - gChosenMovesByBanks[bank] = gBattleMons[bank].moves[*(gBattleStruct->chosenMovePositions + bank)]; + gChosenMoveByBattler[battlerId] = gBattleMons[battlerId].moves[*(gBattleStruct->chosenMovePositions + battlerId)]; } } } @@ -1621,7 +1612,7 @@ void sub_818603C(u8 arg0) u32 GetAiScriptsInRecordedBattle(void) { - return sRecordedBattle_AI_Scripts; + return sAI_Scripts; } void sub_8186444(void) |