diff options
Diffstat (limited to 'src/union_room.c')
-rw-r--r-- | src/union_room.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/union_room.c b/src/union_room.c index 0512a1f5c..37d2434dd 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1532,13 +1532,15 @@ static void Task_ExchangeCards(u8 taskId) for (i = 0; i < GetLinkPlayerCount(); i++) { recvBuff = gBlockRecvBuffer[i]; - CopyTrainerCardData(&gTrainerCards[i], recvBuff, gLinkPlayers[i].version); + CopyTrainerCardData(&gTrainerCards[i], (struct TrainerCard *)recvBuff, gLinkPlayers[i].version); } if (GetLinkPlayerCount() == 2) { + // Note: hasAllFrontierSymbols is a re-used field. + // Here it is set by CreateTrainerCardInBuffer. recvBuff = gBlockRecvBuffer[GetMultiplayerId() ^ 1]; - MEventHandleReceivedWonderCard(recvBuff[48]); + MEventHandleReceivedWonderCard(((struct TrainerCard *)recvBuff)->hasAllFrontierSymbols); } else { @@ -1626,13 +1628,14 @@ static void CB2_TransitionToCableClub(void) static void CreateTrainerCardInBuffer(void *dest, bool32 setWonderCard) { - u16 *argAsU16Ptr = dest; + struct TrainerCard * card = (struct TrainerCard *)dest; + TrainerCard_GenerateCardForLinkPlayer(card); - TrainerCard_GenerateCardForPlayer((struct TrainerCard *)argAsU16Ptr); + // Below field is re-used, to be read by Task_ExchangeCards if (setWonderCard) - argAsU16Ptr[48] = GetWonderCardFlagID(); + card->hasAllFrontierSymbols = GetWonderCardFlagID(); else - argAsU16Ptr[48] = 0; + card->hasAllFrontierSymbols = 0; } static void Task_StartActivity(u8 taskId) |