Merge branch 'master' into link
This commit is contained in:
+71
-79
@@ -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_KYOGRE | 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];
|
||||
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;
|
||||
@@ -75,14 +67,14 @@ 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;
|
||||
@@ -99,7 +91,7 @@ EWRAM_DATA static u32 sRecordedBattle_AI_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 struct PlayerInfo sRecordedBattle_Players[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;
|
||||
@@ -123,7 +115,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,7 +123,7 @@ 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;
|
||||
}
|
||||
@@ -164,11 +156,11 @@ 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].battlerId = gLinkPlayers[i].lp_field_18;
|
||||
sRecordedBattle_Players[i].language = gLinkPlayers[i].language;
|
||||
|
||||
if (i < linkPlayersCount)
|
||||
@@ -192,7 +184,7 @@ void sub_8184E58(void)
|
||||
| (gSaveBlock2Ptr->playerTrainerId[3] << 24);
|
||||
|
||||
sRecordedBattle_Players[0].gender = gSaveBlock2Ptr->playerGender;
|
||||
sRecordedBattle_Players[0].bank = 0;
|
||||
sRecordedBattle_Players[0].battlerId = 0;
|
||||
sRecordedBattle_Players[0].language = gGameLanguage;
|
||||
|
||||
for (i = 0; i < PLAYER_NAME_LENGTH; i++)
|
||||
@@ -200,33 +192,33 @@ void sub_8184E58(void)
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
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);
|
||||
SetMainCallback2(CB2_QuitRecordedBattle);
|
||||
@@ -234,7 +226,7 @@ u8 RecordedBattle_ReadBankAction(u8 bank)
|
||||
}
|
||||
else
|
||||
{
|
||||
return sBattleRecords[bank][sRecordedBytesNo[bank]++];
|
||||
return sBattleRecords[battlerId][sRecordedBytesNo[battlerId]++];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,7 +240,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,7 +342,7 @@ 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++)
|
||||
{
|
||||
@@ -358,7 +350,7 @@ u32 MoveRecordedBattleToSaveData(void)
|
||||
}
|
||||
battleSave->playersGender[i] = sRecordedBattle_Players[i].gender;
|
||||
battleSave->playersLanguage[i] = sRecordedBattle_Players[i].language;
|
||||
battleSave->playersBank[i] = sRecordedBattle_Players[i].bank;
|
||||
battleSave->playersBattlers[i] = sRecordedBattle_Players[i].battlerId;
|
||||
battleSave->playersTrainerId[i] = sRecordedBattle_Players[i].trainerId;
|
||||
}
|
||||
|
||||
@@ -375,16 +367,16 @@ u32 MoveRecordedBattleToSaveData(void)
|
||||
}
|
||||
else if (sRecordedBattle_BattleFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
switch (sRecordedBattle_Players[0].bank)
|
||||
switch (sRecordedBattle_Players[0].battlerId)
|
||||
{
|
||||
case 0:
|
||||
case 2:
|
||||
if (!(sRecordedBattle_Players[gUnknown_0203C7B4].bank & 1))
|
||||
if (!(sRecordedBattle_Players[gUnknown_0203C7B4].battlerId & 1))
|
||||
battleSave->battleFlags |= BATTLE_TYPE_x80000000;
|
||||
break;
|
||||
case 1:
|
||||
case 3:
|
||||
if ((sRecordedBattle_Players[gUnknown_0203C7B4].bank & 1))
|
||||
if ((sRecordedBattle_Players[gUnknown_0203C7B4].battlerId & 1))
|
||||
battleSave->battleFlags |= BATTLE_TYPE_x80000000;
|
||||
break;
|
||||
}
|
||||
@@ -1339,7 +1331,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 +1341,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].lp_field_18 = src->playersBattlers[i];
|
||||
gLinkPlayers[i].trainerId = src->playersTrainerId[i];
|
||||
|
||||
if (var)
|
||||
@@ -1386,9 +1378,9 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src)
|
||||
|
||||
gSaveBlock2Ptr->frontierChosenLvl = 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];
|
||||
}
|
||||
@@ -1456,13 +1448,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].lp_field_18 == gActiveBattler)
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1497,11 +1489,11 @@ u8 GetTextSpeedInRecordedBattle(void)
|
||||
return sRecordedBattle_TextSpeed;
|
||||
}
|
||||
|
||||
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 +1502,7 @@ void RecordedBattle_CopyBankMoves(void)
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
sRecordedBattle_PlayerMonMoves[gActiveBank / 2][i] = gBattleMons[gActiveBank].moves[i];
|
||||
sRecordedBattle_PlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1518,32 +1510,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] != sRecordedBattle_PlayerMonMoves[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] == sRecordedBattle_PlayerMonMoves[battlerId / 2][k])
|
||||
{
|
||||
RecordedBattle_SetBankAction(bank, k);
|
||||
RecordedBattle_SetBattlerAction(battlerId, k);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1552,7 +1544,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 +1553,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)];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user