summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/battle.h27
-rw-r--r--include/ewram.h1
-rw-r--r--src/battle_main.c24
3 files changed, 20 insertions, 32 deletions
diff --git a/include/battle.h b/include/battle.h
index 263bb3b0d..591a56a33 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -291,13 +291,15 @@ struct LinkPartnerHeader
struct BattleEnigmaBerry battleEnigmaBerry;
};
+union MultiBuffers
+{
+ struct LinkPartnerHeader linkPartnerHeader;
+ struct MultiBattlePokemonTx multiBattleMons[3];
+};
+
struct BattleStruct /* 0x2000000 */
{
- /*0x00000*/ union{
- struct LinkPartnerHeader linkPartnerHeader;
- struct MultiBattlePokemonTx multiBattleMons[3];
- } multiBuffer;
- u8 filler60[0x15FA0];
+ u8 filler00000[0x16000];
/*0x16000*/ u8 turnEffectsTracker;
/*0x16001*/ u8 turnEffectsBattlerId;
/*0x16002*/ u8 animTurn;
@@ -416,21 +418,6 @@ struct BattleStruct /* 0x2000000 */
/*0x16111*/ u8 wishPerishSongBattlerId;
/*0x16112*/ u8 multihitMoveEffect;
/*0x16113*/ u8 givenExpMons;
- /*0x16114*/ u8 unk16114;
- /*0x16115*/ u8 unk16115;
- /*0x16116*/ u8 unk16116;
- /*0x16117*/ u8 unk16117;
- /*0x16118*/ u8 unk16118;
- /*0x16119*/ u8 unk16119;
- /*0x1611A*/ u8 unk1611A;
- /*0x1611B*/ u8 unk1611B;
- /*0x1611C*/ u8 unk1611C;
- /*0x1611D*/ u8 unk1611D;
- /*0x1611E*/ u8 unk1611E;
- /*0x1611F*/ u8 unk1611F;
-
- //u8 filler2[0x72E];
- /* 0x16A00 */ struct BattleHistory unk_2016A00_2;
};
struct ResourceFlags
diff --git a/include/ewram.h b/include/ewram.h
index 6e3ba6751..8aa244907 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -22,6 +22,7 @@ extern u8 gSharedMem[];
// battle etc.
// This overlaps with so many things it's not even funny
// The actual data starts at 0x02016000
+#define eMultiTxBuffer (*(union MultiBuffers *)gSharedMem)
#define gBattleStruct ((struct BattleStruct *) (gSharedMem + 0x0))
#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0))
#define ewramBerryPic (gSharedMem + 0x0)
diff --git a/src/battle_main.c b/src/battle_main.c
index 6920b19bf..bc53dad78 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -330,14 +330,14 @@ void BufferPartyVsScreenHealth_AtStart(void)
if (species != SPECIES_EGG && hp == 0)
r6 |= 3 << i * 2;
}
- gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo = r6;
- gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi = r6 >> 8;
+ eMultiTxBuffer.linkPartnerHeader.vsScreenHealthFlagsLo = r6;
+ eMultiTxBuffer.linkPartnerHeader.vsScreenHealthFlagsHi = r6 >> 8;
}
static void SetPlayerBerryDataInBattleStruct(void)
{
s32 i;
- struct BattleEnigmaBerry * battleBerry = &gBattleStruct->multiBuffer.linkPartnerHeader.battleEnigmaBerry;
+ struct BattleEnigmaBerry * battleBerry = &eMultiTxBuffer.linkPartnerHeader.battleEnigmaBerry;
for (i = 0; i < 7; i++)
battleBerry->name[i] = gSaveBlock1.enigmaBerry.berry.name[i];
@@ -429,8 +429,8 @@ void CB2_HandleStartBattle(void)
{
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
{
- gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo = 1;
- gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi = 1;
+ eMultiTxBuffer.linkPartnerHeader.versionSignatureLo = 1;
+ eMultiTxBuffer.linkPartnerHeader.versionSignatureHi = 1;
BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
#if DEBUG
@@ -443,7 +443,7 @@ void CB2_HandleStartBattle(void)
}
}
#endif
- SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader));
+ SendBlock(bitmask_all_link_players_but_self(), &eMultiTxBuffer.linkPartnerHeader, sizeof(eMultiTxBuffer.linkPartnerHeader));
gBattleCommunication[0] = 1;
}
}
@@ -498,7 +498,7 @@ void CB2_HandleStartBattle(void)
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 0;
- gTasks[taskId].data[3] = gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi << 8);
+ gTasks[taskId].data[3] = eMultiTxBuffer.linkPartnerHeader.vsScreenHealthFlagsLo | (eMultiTxBuffer.linkPartnerHeader.vsScreenHealthFlagsHi << 8);
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1];
gBattleCommunication[0]++;
}
@@ -598,7 +598,7 @@ void PrepareOwnMultiPartnerBuffer(void)
if (gMultiPartnerParty[i].language != 1)
PadNameString(nickname, 0);
}
- memcpy(gBattleStruct->multiBuffer.multiBattleMons, gMultiPartnerParty, 3 * sizeof(struct MultiBattlePokemonTx));
+ memcpy(eMultiTxBuffer.multiBattleMons, gMultiPartnerParty, 3 * sizeof(struct MultiBattlePokemonTx));
}
void sub_800F104(void)
@@ -635,7 +635,7 @@ void sub_800F104(void)
if (IsLinkTaskFinished())
{
PrepareOwnMultiPartnerBuffer();
- SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, 3 * sizeof(struct MultiBattlePokemonTx));
+ SendBlock(bitmask_all_link_players_but_self(), eMultiTxBuffer.multiBattleMons, 3 * sizeof(struct MultiBattlePokemonTx));
gBattleCommunication[0]++;
}
}
@@ -707,11 +707,11 @@ void CB2_HandleStartMultiBattle(void)
#endif
if (IsLinkTaskFinished())
{
- *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo) = 1;
- *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi) = 1;
+ *(&eMultiTxBuffer.linkPartnerHeader.versionSignatureLo) = 1;
+ *(&eMultiTxBuffer.linkPartnerHeader.versionSignatureHi) = 1;
BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
- SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader));
+ SendBlock(bitmask_all_link_players_but_self(), &eMultiTxBuffer.linkPartnerHeader, sizeof(eMultiTxBuffer.linkPartnerHeader));
gBattleCommunication[0]++;
}
}