summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2021-06-16 15:55:20 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2021-06-16 15:55:20 -0400
commitacb87f3f2feb5e87590148fd31c48abb8cfa42d2 (patch)
treede9f6492209e87b058d9d7906e32a17018f22f51 /src
parentad228098440bbb3f77609b6153b72a96d53f64b6 (diff)
Sync BattleStruct.multiBuffer from Em/FR
Diffstat (limited to 'src')
-rw-r--r--src/battle_bg.c20
-rw-r--r--src/battle_main.c69
-rw-r--r--src/battle_message.c4
-rw-r--r--src/choose_party.c2
-rw-r--r--src/party_menu.c2
5 files changed, 49 insertions, 48 deletions
diff --git a/src/battle_bg.c b/src/battle_bg.c
index 6aa22edf6..c3c08aa0e 100644
--- a/src/battle_bg.c
+++ b/src/battle_bg.c
@@ -416,7 +416,7 @@ static void sub_800DAF8(u8 taskId, u8 windowId, u8 *dest)
}
CpuSet(src, dest, 3);
} else {
- if (windowId == gBattleStruct->linkPlayerIndex) {
+ if (windowId == gBattleStruct->multiplayerId) {
r4 = gTasks[taskId].data[3];
} else {
r4 = gTasks[taskId].data[4];
@@ -468,7 +468,7 @@ static void PrintLinkBattleWinLossTie(void)
{
// id = player position?
- switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id)
+ switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
{
case 0:
case 2:
@@ -486,7 +486,7 @@ static void PrintLinkBattleWinLossTie(void)
else
{
- switch (gLinkPlayers[gBattleStruct->linkPlayerIndex].id)
+ switch (gLinkPlayers[gBattleStruct->multiplayerId].id)
{
case 1:
case 3:
@@ -508,7 +508,7 @@ static void PrintLinkBattleWinLossTie(void)
if (gBattleOutcome == 1)
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
{
PRINT_MESSAGE_RIGHT(BattleText_Win, TILE_OFFSET_WIN);
PRINT_MESSAGE_LEFT(BattleText_Loss, TILE_OFFSET_LOSS);
@@ -521,7 +521,7 @@ static void PrintLinkBattleWinLossTie(void)
}
else
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id != 0)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id != 0)
{
PRINT_MESSAGE_LEFT(BattleText_Win, TILE_OFFSET_WIN);
PRINT_MESSAGE_RIGHT(BattleText_Loss, TILE_OFFSET_LOSS);
@@ -535,7 +535,7 @@ static void PrintLinkBattleWinLossTie(void)
}
-void sub_800DE30(u8 taskId)
+void InitLinkBattleVsScreen(u8 taskId)
{
u8 palette;
int i;
@@ -559,11 +559,11 @@ void sub_800DE30(u8 taskId)
} else {
u8 windowId = 4;
- u8 playerId = gBattleStruct->linkPlayerIndex;
- u8 opponentId = gBattleStruct->linkPlayerIndex ^ 1;
+ u8 playerId = gBattleStruct->multiplayerId;
+ u8 opponentId = gBattleStruct->multiplayerId ^ 1;
if (gLinkPlayers[playerId].id) {
- opponentId = gBattleStruct->linkPlayerIndex;
- playerId = gBattleStruct->linkPlayerIndex ^ 1;
+ opponentId = gBattleStruct->multiplayerId;
+ playerId = gBattleStruct->multiplayerId ^ 1;
}
Text_InitWindow8002E4C(
diff --git a/src/battle_main.c b/src/battle_main.c
index e41b2a114..1a2b39ab0 100644
--- a/src/battle_main.c
+++ b/src/battle_main.c
@@ -76,7 +76,7 @@ extern const u8 gUnknown_Debug_821F7F3[];
extern const u8 BattleText_YesNo[];
extern u8 gStatStageRatios[][2];
extern u8 gActionsByTurnOrder[4];
-extern struct UnknownPokemonStruct2 gMultiPartnerParty[];
+extern struct MultiBattlePokemonTx gMultiPartnerParty[];
extern u8 gBattleBufferB[][0x200];
extern u8 gActiveBattler;
extern u32 gBattleControllerExecFlags;
@@ -283,7 +283,7 @@ void CB2_InitBattleInternal(void)
SetVBlankCallback(sub_800FCFC);
SetUpBattleVarsAndBirchPoochyena();
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
- SetMainCallback2(sub_800F298);
+ SetMainCallback2(CB2_HandleStartMultiBattle);
else
SetMainCallback2(CB2_HandleStartBattle);
if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)
@@ -301,7 +301,7 @@ void CB2_InitBattleInternal(void)
gBattleCommunication[0] = 0;
}
-void sub_800E9EC(void)
+void BufferPartyVsScreenHealth_AtStart(void)
{
u16 r6 = 0;
u16 species;
@@ -330,21 +330,21 @@ void sub_800E9EC(void)
if (species != SPECIES_EGG && hp == 0)
r6 |= 3 << i * 2;
}
- gBattleStruct->unk2 = r6;
- gBattleStruct->unk3 = r6 >> 8;
+ gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo = r6;
+ gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi = r6 >> 8;
}
static void SetPlayerBerryDataInBattleStruct(void)
{
s32 i;
- struct UnknownStruct8 *_ewram4 = &ewram4;
+ struct BattleEnigmaBerry * battleBerry = &gBattleStruct->multiBuffer.linkPartnerHeader.battleEnigmaBerry;
for (i = 0; i < 7; i++)
- _ewram4->unk0[i] = gSaveBlock1.enigmaBerry.berry.name[i];
+ battleBerry->name[i] = gSaveBlock1.enigmaBerry.berry.name[i];
for (i = 0; i < 18; i++)
- _ewram4->unk8[i] = gSaveBlock1.enigmaBerry.itemEffect[i];
- _ewram4->unk7 = gSaveBlock1.enigmaBerry.holdEffect;
- _ewram4->unk1A = gSaveBlock1.enigmaBerry.holdEffectParam;
+ battleBerry->itemEffect[i] = gSaveBlock1.enigmaBerry.itemEffect[i];
+ battleBerry->holdEffect = gSaveBlock1.enigmaBerry.holdEffect;
+ battleBerry->holdEffectParam = gSaveBlock1.enigmaBerry.holdEffectParam;
}
void SetAllPlayersBerryData(void)
@@ -419,7 +419,7 @@ void CB2_HandleStartBattle(void)
BuildOamBuffer();
playerId = GetMultiplayerId();
- ewram160CB = playerId;
+ gBattleStruct->multiplayerId = playerId;
enemyId = playerId ^ 1;
switch (gBattleCommunication[0])
@@ -429,9 +429,9 @@ void CB2_HandleStartBattle(void)
{
if (gReceivedRemoteLinkPlayers != 0 && IsLinkTaskFinished())
{
- gBattleStruct->unk0 = 1;
- gBattleStruct->unk1 = 1;
- sub_800E9EC();
+ gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo = 1;
+ gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi = 1;
+ BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
#if DEBUG
if (gUnknown_02023A14_50 & 8)
@@ -443,7 +443,7 @@ void CB2_HandleStartBattle(void)
}
}
#endif
- SendBlock(bitmask_all_link_players_but_self(), gBattleStruct, 32);
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader));
gBattleCommunication[0] = 1;
}
}
@@ -494,11 +494,11 @@ void CB2_HandleStartBattle(void)
}
}
SetAllPlayersBerryData();
- taskId = CreateTask(sub_800DE30, 0);
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 0;
- gTasks[taskId].data[3] = gBattleStruct->unk2 | (gBattleStruct->unk3 << 8);
+ gTasks[taskId].data[3] = gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsLo | (gBattleStruct->multiBuffer.linkPartnerHeader.vsScreenHealthFlagsHi << 8);
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyId][1];
gBattleCommunication[0]++;
}
@@ -576,7 +576,7 @@ void CB2_HandleStartBattle(void)
}
}
-void sub_800F02C(void)
+void PrepareOwnMultiPartnerBuffer(void)
{
s32 i;
@@ -598,7 +598,7 @@ void sub_800F02C(void)
if (gMultiPartnerParty[i].language != 1)
PadNameString(nickname, 0);
}
- memcpy(gSharedMem, gMultiPartnerParty, 0x60);
+ memcpy(gBattleStruct->multiBuffer.multiBattleMons, gMultiPartnerParty, 3 * sizeof(struct MultiBattlePokemonTx));
}
void sub_800F104(void)
@@ -609,7 +609,7 @@ void sub_800F104(void)
s32 i;
playerId = GetMultiplayerId();
- ewram160CB = playerId;
+ gBattleStruct->multiplayerId = playerId;
// Seriously, Game Freak?
pSavedCallback = ewram160C4_Callback;
pSavedBattleTypeFlags = ewram160C2_Flags;
@@ -634,8 +634,8 @@ void sub_800F104(void)
#endif
if (IsLinkTaskFinished())
{
- sub_800F02C();
- SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x60);
+ PrepareOwnMultiPartnerBuffer();
+ SendBlock(bitmask_all_link_players_but_self(), gBattleStruct->multiBuffer.multiBattleMons, 3 * sizeof(struct MultiBattlePokemonTx));
gBattleCommunication[0]++;
}
}
@@ -652,7 +652,7 @@ void sub_800F104(void)
{
if ((!(gLinkPlayers[i].id & 1) && !(gLinkPlayers[playerId].id & 1))
|| ((gLinkPlayers[i].id & 1) && (gLinkPlayers[playerId].id & 1)))
- memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 0x60);
+ memcpy(gMultiPartnerParty, gBlockRecvBuffer[i], 3 * sizeof(struct MultiBattlePokemonTx));
}
}
gBattleCommunication[0]++;
@@ -680,13 +680,13 @@ void sub_800F104(void)
}
}
-void sub_800F298(void)
+void CB2_HandleStartMultiBattle(void)
{
u8 playerId;
s32 id;
playerId = GetMultiplayerId();
- ewram160CB = playerId;
+ gBattleStruct->multiplayerId = playerId;
RunTasks();
AnimateSprites();
BuildOamBuffer();
@@ -707,11 +707,11 @@ void sub_800F298(void)
#endif
if (IsLinkTaskFinished())
{
- gBattleStruct->unk0 = 1;
- gBattleStruct->unk1 = 1;
- sub_800E9EC();
+ *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureLo) = 1;
+ *(&gBattleStruct->multiBuffer.linkPartnerHeader.versionSignatureHi) = 1;
+ BufferPartyVsScreenHealth_AtStart();
SetPlayerBerryDataInBattleStruct();
- SendBlock(bitmask_all_link_players_but_self(), gSharedMem, 0x20);
+ SendBlock(bitmask_all_link_players_but_self(), &gBattleStruct->multiBuffer.linkPartnerHeader, sizeof(gBattleStruct->multiBuffer.linkPartnerHeader));
gBattleCommunication[0]++;
}
}
@@ -722,6 +722,7 @@ void sub_800F298(void)
u8 taskId;
ResetBlockReceivedFlags();
+ // LinkBattleComputeBattleTypeFlags
id = 0;
if (gBlockRecvBuffer[0][0] == 0x100)
{
@@ -767,9 +768,9 @@ void sub_800F298(void)
}
SetAllPlayersBerryData();
memcpy(ewram1D000, gPlayerParty, sizeof(struct Pokemon) * 3);
- taskId = CreateTask(sub_800DE30, 0);
- gTasks[taskId].data[1] = 0x10E;
- gTasks[taskId].data[2] = 0x5A;
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
+ gTasks[taskId].data[1] = 270;
+ gTasks[taskId].data[2] = 90;
gTasks[taskId].data[5] = 0;
gTasks[taskId].data[3] = 0;
gTasks[taskId].data[4] = 0;
@@ -1195,7 +1196,7 @@ void sub_800FE40(u8 taskId)
{
struct Pokemon *sp4 = NULL;
struct Pokemon *sp8 = NULL;
- u8 r2 = ewram160CB;
+ u8 r2 = gBattleStruct->multiplayerId;
u32 r7;
s32 i;
@@ -1321,7 +1322,7 @@ void c2_8011A1C(void)
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 4;
SetVBlankCallback(sub_800FCFC);
- taskId = CreateTask(sub_800DE30, 0);
+ taskId = CreateTask(InitLinkBattleVsScreen, 0);
gTasks[taskId].data[1] = 0x10E;
gTasks[taskId].data[2] = 0x5A;
gTasks[taskId].data[5] = 1;
diff --git a/src/battle_message.c b/src/battle_message.c
index ce1e63edd..d28848f18 100644
--- a/src/battle_message.c
+++ b/src/battle_message.c
@@ -658,7 +658,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
{
if (gLastUsedItem == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id == gPotentialItemEffectBattler)
{
StringCopy(text, gEnigmaBerries[gPotentialItemEffectBattler].name);
#ifdef ENGLISH
@@ -949,7 +949,7 @@ void ExpandBattleTextBuffPlaceholders(u8* src, u8* dst)
{
if (hword == ITEM_ENIGMA_BERRY)
{
- if (gLinkPlayers[gBattleStruct->linkPlayerIndex].id == gPotentialItemEffectBattler)
+ if (gLinkPlayers[gBattleStruct->multiplayerId].id == gPotentialItemEffectBattler)
{
StringCopy(dst, gEnigmaBerries[gPotentialItemEffectBattler].name);
#ifdef ENGLISH
diff --git a/src/choose_party.c b/src/choose_party.c
index f1252f965..5ed637910 100644
--- a/src/choose_party.c
+++ b/src/choose_party.c
@@ -23,7 +23,7 @@
extern u8 gPlayerPartyCount;
extern u8 gLastFieldPokeMenuOpened;
extern u8 gUnknown_020384F0;
-extern struct UnknownPokemonStruct2 gMultiPartnerParty[3];
+extern struct MultiBattlePokemonTx gMultiPartnerParty[3];
extern u8 gUnknown_0202E8F6;
extern const u16 gBattleTowerBannedSpecies[];
diff --git a/src/party_menu.c b/src/party_menu.c
index b5b00c947..8a3ce81d1 100644
--- a/src/party_menu.c
+++ b/src/party_menu.c
@@ -2828,7 +2828,7 @@ void unref_sub_806D964(u8 taskId)
TryCreatePartyMenuMonIcon(taskId, i, &gPlayerParty[i]);
}
-void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct UnknownPokemonStruct2 *pokemon)
+void CreateMonIcon_LinkMultiBattle(u8 taskId, u8 monIndex, u8 menuType, struct MultiBattlePokemonTx *pokemon)
{
u8 x = gUnknown_08376678[menuType][monIndex].x;
u8 y = gUnknown_08376678[menuType][monIndex].y;