Finish documenting berry blender
This commit is contained in:
104
src/link_rfu_2.c
104
src/link_rfu_2.c
@@ -930,7 +930,7 @@ static void HandleSendFailure(u8 unused, u32 flags)
|
||||
{
|
||||
if (!(flags & 1))
|
||||
{
|
||||
sResendBlock16[0] = RFU_COMMAND_0x8900 | i;
|
||||
sResendBlock16[0] = RFUCMD_0x8900 | i;
|
||||
for (j = 0; j < 7; j++)
|
||||
{
|
||||
sResendBlock16[j + 1] = (r10[12 * i + (j << 1) + 1] << 8) | r10[12 * i + (j << 1) + 0];
|
||||
@@ -984,7 +984,7 @@ static void RfuFunc_SendKeysToRfu(void)
|
||||
{
|
||||
sHeldKeyCount++;
|
||||
gHeldKeyCodeToSend |= (sHeldKeyCount << 8);
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0xBE00);
|
||||
RfuPrepareSendBuffer(RFUCMD_SEND_HELD_KEYS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1008,18 +1008,18 @@ void ClearLinkRfuCallback(void)
|
||||
Rfu.callback = NULL;
|
||||
}
|
||||
|
||||
void sub_800F820(void)
|
||||
static void Rfu_BerryBlenderSendHeldKeys(void)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0x4400);
|
||||
RfuPrepareSendBuffer(RFUCMD_BLENDER_SEND_KEYS);
|
||||
if (GetMultiplayerId() == 0)
|
||||
gSendCmd[6] = GetBlenderArrowPosition();
|
||||
gUnknown_020223C0++;
|
||||
gSendCmd[BLENDER_COMM_ARROW_POS] = GetBlenderArrowPosition();
|
||||
gBerryBlenderKeySendAttempts++;
|
||||
}
|
||||
|
||||
void sub_800F850(void)
|
||||
void Rfu_SetBerryBlenderLinkCallback(void)
|
||||
{
|
||||
if (Rfu.callback == NULL)
|
||||
Rfu.callback = sub_800F820;
|
||||
Rfu.callback = Rfu_BerryBlenderSendHeldKeys;
|
||||
}
|
||||
|
||||
static void RfuHandleReceiveCommand(u8 unused)
|
||||
@@ -1031,18 +1031,18 @@ static void RfuHandleReceiveCommand(u8 unused)
|
||||
{
|
||||
switch (gRecvCmds[i][0] & 0xff00)
|
||||
{
|
||||
case RFU_COMMAND_0x7800:
|
||||
case RFUCMD_0x7800:
|
||||
if (Rfu.parentChild == MODE_CHILD && gReceivedRemoteLinkPlayers)
|
||||
return;
|
||||
// fallthrough
|
||||
case RFU_COMMAND_0x7700:
|
||||
case RFUCMD_0x7700:
|
||||
if (gRfuLinkStatus->parentChild == MODE_CHILD)
|
||||
{
|
||||
Rfu.playerCount = gRecvCmds[i][1];
|
||||
Rfu.multiplayerId = sub_800F74C((u8 *)(gRecvCmds[i] + 2));
|
||||
}
|
||||
break;
|
||||
case RFU_COMMAND_0x8800:
|
||||
case RFUCMD_0x8800:
|
||||
if (Rfu.recvBlock[i].receiving == 0)
|
||||
{
|
||||
Rfu.recvBlock[i].next = 0;
|
||||
@@ -1053,7 +1053,7 @@ static void RfuHandleReceiveCommand(u8 unused)
|
||||
Rfu.blockReceived[i] = FALSE;
|
||||
}
|
||||
break;
|
||||
case RFU_COMMAND_0x8900:
|
||||
case RFUCMD_0x8900:
|
||||
if (Rfu.recvBlock[i].receiving == 1)
|
||||
{
|
||||
Rfu.recvBlock[i].next = gRecvCmds[i][0] & 0xff;
|
||||
@@ -1069,17 +1069,17 @@ static void RfuHandleReceiveCommand(u8 unused)
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RFU_COMMAND_SEND_BLOCK_REQ:
|
||||
case RFUCMD_SEND_BLOCK_REQ:
|
||||
Rfu_InitBlockSend(sBlockRequests[gRecvCmds[i][1]].address, (u16)sBlockRequests[gRecvCmds[i][1]].size);
|
||||
break;
|
||||
case RFU_COMMAND_READY_CLOSE_LINK:
|
||||
case RFUCMD_READY_CLOSE_LINK:
|
||||
Rfu.readyCloseLink[i] = TRUE;
|
||||
break;
|
||||
case RFU_COMMAND_READY_EXIT_STANDBY:
|
||||
case RFUCMD_READY_EXIT_STANDBY:
|
||||
if (Rfu.unk_100 == gRecvCmds[i][1])
|
||||
Rfu.readyExitStandby[i] = TRUE;
|
||||
break;
|
||||
case RFU_COMMAND_0xED00:
|
||||
case RFUCMD_0xED00:
|
||||
if (Rfu.parentChild == MODE_CHILD)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
@@ -1096,13 +1096,13 @@ static void RfuHandleReceiveCommand(u8 unused)
|
||||
}
|
||||
else
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0xEE00);
|
||||
RfuPrepareSendBuffer(RFUCMD_0xEE00);
|
||||
gSendCmd[1] = gRecvCmds[i][1];
|
||||
gSendCmd[2] = gRecvCmds[i][2];
|
||||
gSendCmd[3] = gRecvCmds[i][3];
|
||||
}
|
||||
break;
|
||||
case RFU_COMMAND_0xEE00:
|
||||
case RFUCMD_0xEE00:
|
||||
if (Rfu.parentChild == MODE_PARENT)
|
||||
{
|
||||
Rfu.unk_ce3 |= gRecvCmds[i][1];
|
||||
@@ -1110,8 +1110,8 @@ static void RfuHandleReceiveCommand(u8 unused)
|
||||
ClearSelectedLinkPlayerIds(gRecvCmds[i][1]);
|
||||
}
|
||||
break;
|
||||
case RFU_COMMAND_0x4400:
|
||||
case RFU_COMMAND_0xBE00:
|
||||
case RFUCMD_BLENDER_SEND_KEYS:
|
||||
case RFUCMD_SEND_HELD_KEYS:
|
||||
gLinkPartnersHeldKeys[i] = gRecvCmds[i][1];
|
||||
break;
|
||||
}
|
||||
@@ -1187,16 +1187,16 @@ static void RfuPrepareSendBuffer(u16 command)
|
||||
gSendCmd[0] = command;
|
||||
switch (command)
|
||||
{
|
||||
case RFU_COMMAND_0x8800:
|
||||
case RFUCMD_0x8800:
|
||||
gSendCmd[1] = Rfu.sendBlock.count;
|
||||
gSendCmd[2] = Rfu.sendBlock.owner + 0x80;
|
||||
break;
|
||||
case RFU_COMMAND_SEND_BLOCK_REQ:
|
||||
case RFUCMD_SEND_BLOCK_REQ:
|
||||
if (AreNoPlayersReceiving())
|
||||
gSendCmd[1] = Rfu.blockRequestType;
|
||||
break;
|
||||
case RFU_COMMAND_0x7700:
|
||||
case RFU_COMMAND_0x7800:
|
||||
case RFUCMD_0x7700:
|
||||
case RFUCMD_0x7800:
|
||||
tmp = Rfu.unk_ce2 ^ Rfu.unk_ce3;
|
||||
Rfu.playerCount = sUnknown_082ED695[tmp] + 1;
|
||||
gSendCmd[1] = Rfu.playerCount;
|
||||
@@ -1204,34 +1204,34 @@ static void RfuPrepareSendBuffer(u16 command)
|
||||
for (i = 0; i < RFU_CHILD_MAX; i++)
|
||||
buff[i] = Rfu.linkPlayerIdx[i];
|
||||
break;
|
||||
case RFU_COMMAND_READY_EXIT_STANDBY:
|
||||
case RFU_COMMAND_READY_CLOSE_LINK:
|
||||
case RFUCMD_READY_EXIT_STANDBY:
|
||||
case RFUCMD_READY_CLOSE_LINK:
|
||||
gSendCmd[1] = Rfu.unk_100;
|
||||
break;
|
||||
case RFU_COMMAND_0x4400:
|
||||
case RFUCMD_BLENDER_SEND_KEYS:
|
||||
gSendCmd[0] = command;
|
||||
gSendCmd[1] = gMain.heldKeys;
|
||||
break;
|
||||
case RFU_COMMAND_0x2F00:
|
||||
for (i = 0; i < 6; i++)
|
||||
gSendCmd[1 + i] = Rfu.unk_f2[i];
|
||||
case RFUCMD_SEND_PACKET:
|
||||
for (i = 0; i < RFU_PACKET_SIZE; i++)
|
||||
gSendCmd[1 + i] = Rfu.packet[i];
|
||||
break;
|
||||
case RFU_COMMAND_0xBE00:
|
||||
case RFUCMD_SEND_HELD_KEYS:
|
||||
gSendCmd[1] = gHeldKeyCodeToSend;
|
||||
break;
|
||||
case RFU_COMMAND_0xEE00:
|
||||
case RFUCMD_0xEE00:
|
||||
break;
|
||||
case RFU_COMMAND_0xED00:
|
||||
case RFUCMD_0xED00:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_800FE50(void *a0)
|
||||
void Rfu_SendPacket(void *data)
|
||||
{
|
||||
if (gSendCmd[0] == 0 && !RfuHasErrored())
|
||||
{
|
||||
memcpy(Rfu.unk_f2, a0, sizeof(Rfu.unk_f2));
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0x2F00);
|
||||
memcpy(Rfu.packet, data, sizeof(Rfu.packet));
|
||||
RfuPrepareSendBuffer(RFUCMD_SEND_PACKET);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1260,7 +1260,7 @@ bool32 Rfu_InitBlockSend(const u8 *src, size_t size)
|
||||
memcpy(gBlockSendBuffer, src, size);
|
||||
Rfu.sendBlock.payload = gBlockSendBuffer;
|
||||
}
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0x8800);
|
||||
RfuPrepareSendBuffer(RFUCMD_0x8800);
|
||||
Rfu.callback = HandleBlockSend;
|
||||
Rfu.unk_5b = 0;
|
||||
return TRUE;
|
||||
@@ -1270,7 +1270,7 @@ static void HandleBlockSend(void)
|
||||
{
|
||||
if (gSendCmd[0] == 0)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0x8800);
|
||||
RfuPrepareSendBuffer(RFUCMD_0x8800);
|
||||
if (Rfu.parentChild == MODE_PARENT)
|
||||
{
|
||||
if (++Rfu.unk_5b > 2)
|
||||
@@ -1278,7 +1278,7 @@ static void HandleBlockSend(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gRecvCmds[GetMultiplayerId()][0] & 0xff00) == RFU_COMMAND_0x8800)
|
||||
if ((gRecvCmds[GetMultiplayerId()][0] & 0xff00) == RFUCMD_0x8800)
|
||||
Rfu.callback = SendNextBlock;
|
||||
}
|
||||
}
|
||||
@@ -1288,7 +1288,7 @@ static void SendNextBlock(void)
|
||||
{
|
||||
s32 i;
|
||||
const u8 *src = Rfu.sendBlock.payload;
|
||||
gSendCmd[0] = RFU_COMMAND_0x8900 | Rfu.sendBlock.next;
|
||||
gSendCmd[0] = RFUCMD_0x8900 | Rfu.sendBlock.next;
|
||||
for (i = 0; i < CMD_LENGTH - 1; i++)
|
||||
gSendCmd[i + 1] = (src[(i << 1) + Rfu.sendBlock.next * 12 + 1] << 8) | src[(i << 1) + Rfu.sendBlock.next * 12 + 0];
|
||||
Rfu.sendBlock.next++;
|
||||
@@ -1306,7 +1306,7 @@ static void SendLastBlock(void)
|
||||
s32 i;
|
||||
if (Rfu.parentChild == MODE_CHILD)
|
||||
{
|
||||
gSendCmd[0] = RFU_COMMAND_0x8900 | (Rfu.sendBlock.count - 1);
|
||||
gSendCmd[0] = RFUCMD_0x8900 | (Rfu.sendBlock.count - 1);
|
||||
for (i = 0; i < CMD_LENGTH - 1; i++)
|
||||
gSendCmd[i + 1] = (src[(i << 1) + (Rfu.sendBlock.count - 1) * 12 + 1] << 8) | src[(i << 1) + (Rfu.sendBlock.count - 1) * 12 + 0];
|
||||
if ((u8)gRecvCmds[mpId][0] == Rfu.sendBlock.count - 1)
|
||||
@@ -1327,7 +1327,7 @@ static void SendLastBlock(void)
|
||||
bool8 Rfu_SendBlockRequest(u8 type)
|
||||
{
|
||||
Rfu.blockRequestType = type;
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ);
|
||||
RfuPrepareSendBuffer(RFUCMD_SEND_BLOCK_REQ);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -1396,7 +1396,7 @@ static void SendReadyCloseLink(void)
|
||||
{
|
||||
if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_READY_CLOSE_LINK);
|
||||
RfuPrepareSendBuffer(RFUCMD_READY_CLOSE_LINK);
|
||||
Rfu.callback = WaitAllReadyToCloseLink;
|
||||
}
|
||||
}
|
||||
@@ -1426,7 +1426,7 @@ static void SendReadyExitStandbyUntilAllReady(void)
|
||||
{
|
||||
if (Rfu.recvQueue.count == 0 && Rfu.resendExitStandbyTimer > 60)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
|
||||
RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
|
||||
Rfu.resendExitStandbyTimer = 0;
|
||||
}
|
||||
}
|
||||
@@ -1450,7 +1450,7 @@ static void LinkLeaderReadyToExitStandby(void)
|
||||
{
|
||||
if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
|
||||
RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
|
||||
Rfu.callback = SendReadyExitStandbyUntilAllReady;
|
||||
}
|
||||
}
|
||||
@@ -1466,7 +1466,7 @@ static void Rfu_LinkStandby(void)
|
||||
// Not link leader, send exit standby when ready
|
||||
if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
|
||||
RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
|
||||
Rfu.callback = SendReadyExitStandbyUntilAllReady;
|
||||
}
|
||||
}
|
||||
@@ -1483,7 +1483,7 @@ static void Rfu_LinkStandby(void)
|
||||
{
|
||||
if (Rfu.recvQueue.count == 0 && gSendCmd[0] == 0)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_READY_EXIT_STANDBY);
|
||||
RfuPrepareSendBuffer(RFUCMD_READY_EXIT_STANDBY);
|
||||
Rfu.callback = LinkLeaderReadyToExitStandby;
|
||||
}
|
||||
}
|
||||
@@ -1706,9 +1706,9 @@ static void sub_801084C(u8 taskId)
|
||||
if (Rfu.parentChild == MODE_PARENT)
|
||||
{
|
||||
if (gReceivedRemoteLinkPlayers)
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0x7800);
|
||||
RfuPrepareSendBuffer(RFUCMD_0x7800);
|
||||
else
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0x7700);
|
||||
RfuPrepareSendBuffer(RFUCMD_0x7700);
|
||||
gTasks[taskId].data[0] = 101;
|
||||
}
|
||||
else
|
||||
@@ -1728,7 +1728,7 @@ static void sub_801084C(u8 taskId)
|
||||
if (AreNoPlayersReceiving())
|
||||
{
|
||||
Rfu.blockRequestType = 0;
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_SEND_BLOCK_REQ);
|
||||
RfuPrepareSendBuffer(RFUCMD_SEND_BLOCK_REQ);
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
}
|
||||
@@ -1818,7 +1818,7 @@ static void Task_ExchangeLinkPlayers(u8 taskId)
|
||||
if (gSendCmd[0] == 0)
|
||||
{
|
||||
ResetBlockReceivedFlag(r4);
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0x7800);
|
||||
RfuPrepareSendBuffer(RFUCMD_0x7800);
|
||||
gTasks[taskId].data[0]++;
|
||||
}
|
||||
break;
|
||||
@@ -2632,7 +2632,7 @@ static void sub_8011E2C(u8 taskId)
|
||||
{
|
||||
if (gSendCmd[0] == 0 && Rfu.unk_ce8 == 0)
|
||||
{
|
||||
RfuPrepareSendBuffer(RFU_COMMAND_0xED00);
|
||||
RfuPrepareSendBuffer(RFUCMD_0xED00);
|
||||
gSendCmd[1] = gTasks[taskId].data[0];
|
||||
gSendCmd[2] = gTasks[taskId].data[1];
|
||||
Rfu.playerCount -= sUnknown_082ED695[gTasks[taskId].data[0]];
|
||||
|
||||
Reference in New Issue
Block a user