diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_bg.c | 20 | ||||
-rw-r--r-- | src/battle_main.c | 69 | ||||
-rw-r--r-- | src/battle_message.c | 4 | ||||
-rw-r--r-- | src/choose_party.c | 2 | ||||
-rw-r--r-- | src/party_menu.c | 2 |
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; |