diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/AgbRfu_LinkManager.c | 2 | ||||
-rw-r--r-- | src/battle_controller_player.c | 2 | ||||
-rw-r--r-- | src/battle_controllers.c | 4 | ||||
-rw-r--r-- | src/battle_main.c | 2 | ||||
-rw-r--r-- | src/field_fadetransition.c | 6 | ||||
-rw-r--r-- | src/link.c | 40 | ||||
-rw-r--r-- | src/link_rfu_2.c | 298 | ||||
-rw-r--r-- | src/save.c | 6 | ||||
-rw-r--r-- | src/trade.c | 12 | ||||
-rw-r--r-- | src/trade_scene.c | 8 | ||||
-rw-r--r-- | src/union_room.c | 320 | ||||
-rw-r--r-- | src/union_room_battle.c | 2 | ||||
-rw-r--r-- | src/union_room_message.c | 1 |
13 files changed, 353 insertions, 350 deletions
diff --git a/src/AgbRfu_LinkManager.c b/src/AgbRfu_LinkManager.c index dc09dc1ae..d76ada85b 100644 --- a/src/AgbRfu_LinkManager.c +++ b/src/AgbRfu_LinkManager.c @@ -152,7 +152,7 @@ u8 rfu_LMAN_establishConnection(u8 parent_child, u16 connect_period, u16 name_ac rfu_LMAN_occureCallback(LMAN_MSG_LMAN_API_ERROR_RETURN, 1); return LMAN_ERROR_ILLEGAL_PARAMETER; } - if (parent_child > 1) + if (parent_child > MODE_PARENT) { lman.pcswitch_flag = PCSWITCH_1ST_SC_START; parent_child = MODE_PARENT; diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index a01c4990a..7b0a8aa47 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -833,7 +833,7 @@ void sub_802F6A8(void) if (gWirelessCommType == 0) Link_TryStartSend5FFF(); else - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); gBattlerControllerFuncs[gActiveBattler] = sub_802F610; } else diff --git a/src/battle_controllers.c b/src/battle_controllers.c index ca2ef0b22..834b9e6b6 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -35,7 +35,7 @@ void HandleLinkBattleSetup(void) if (gBattleTypeFlags & BATTLE_TYPE_LINK) { if (gWirelessCommType) - sub_800B1F4(); + SetWirelessCommType1(); if (!gReceivedRemoteLinkPlayers) OpenLink(); CreateTask(sub_8081A90, 0); @@ -491,7 +491,7 @@ void sub_800DD28(void) if (gReceivedRemoteLinkPlayers && (gBattleTypeFlags & BATTLE_TYPE_20) && (gLinkPlayers[0].linkType == 0x2211)) { - sub_80FBB4C(); + LinkRfu_DestroyIdleTask(); for (i = 0; i < GetLinkPlayerCount(); ++i) { if (GetBlockReceivedStatus() & gBitTable[i]) diff --git a/src/battle_main.c b/src/battle_main.c index 80a0cd588..3f20399f6 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -1152,7 +1152,7 @@ static void CB2_PreInitMultiBattle(void) { ++gBattleCommunication[MULTIUSE_STATE]; if (gWirelessCommType) - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); else Link_TryStartSend5FFF(); } diff --git a/src/field_fadetransition.c b/src/field_fadetransition.c index 282b1c8b5..2e1dcd919 100644 --- a/src/field_fadetransition.c +++ b/src/field_fadetransition.c @@ -206,7 +206,7 @@ static void sub_807DDF0(u8 taskId) switch (task->data[0]) { case 0: - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); task->data[0]++; break; case 1: @@ -227,7 +227,7 @@ static void sub_807DDF0(u8 taskId) } } -void sub_807DE58(void) +void FieldCB_ReturnToFieldWirelessLink(void) { ScriptContext2_Enable(); Overworld_PlaySpecialMapMusic(); @@ -632,7 +632,7 @@ static void sub_807E5EC(u8 taskId) break; case 2: WarpIntoMap(); - SetMainCallback2(sub_8056788); + SetMainCallback2(CB2_ReturnToFieldCableClub); DestroyTask(taskId); break; } diff --git a/src/link.c b/src/link.c index 2f6d03372..0ff16634d 100644 --- a/src/link.c +++ b/src/link.c @@ -144,11 +144,11 @@ static void LinkCB_RequestPlayerDataExchange(void); static void Task_PrintTestData(u8 taskId); static void LinkCB_BuildCommand5FFF(void); static void LinkCB_WaitAckCommand5FFF(void); -static void sub_800ABD4(void); -static void sub_800AC00(void); +static void LinkFunc_Send2FFE_1(void); +static void LinkFunc_Send2FFE_2(void); static void CheckErrorStatus(void); static void CB2_PrintErrorMessage(void); -static void sub_800B210(void); +static void SetWirelessCommType0(void); static void DisableSerial(void); static void EnableSerial(void); static bool8 IsSioMultiMaster(void); @@ -232,7 +232,7 @@ bool8 IsWirelessAdapterConnected(void) if (gQuestLogState == 2 || gQuestLogState == 3) return FALSE; - sub_800B1F4(); + SetWirelessCommType1(); sub_80F86F4(); sub_80FB128(TRUE); if (rfu_LMAN_REQBN_softReset_and_checkID() == RFU_ID) @@ -241,7 +241,7 @@ bool8 IsWirelessAdapterConnected(void) rfu_waitREQComplete(); return TRUE; } - sub_800B210(); + SetWirelessCommType0(); CloseLink(); RestoreSerialTimer3IntrHandlers(); return FALSE; @@ -613,7 +613,7 @@ void ProcessRecvCmds(u8 unused) linkPlayer->name[9] = 0; linkPlayer->name[8] = 0; } - sub_800B284(linkPlayer); + IntlConvertLinkPlayerName(linkPlayer); if (strcmp(block->magic1, sASCIIGameFreakInc) != 0 || strcmp(block->magic2, sASCIIGameFreakInc) != 0) { @@ -1384,32 +1384,32 @@ static void LinkCB_WaitAckCommand5FFF(void) } } -void sub_800AB9C(void) +void PrepareSendLinkCmd2FFE_or_RfuCmd6600(void) { if (gWirelessCommType == 1) { - sub_80FA42C(); + LinkRfu_SetRfuFuncToSend6600(); } else { if (gLinkCallback == NULL) { - gLinkCallback = sub_800ABD4; + gLinkCallback = LinkFunc_Send2FFE_1; } gLinkAllAcked5FFF = FALSE; } } -static void sub_800ABD4(void) +static void LinkFunc_Send2FFE_1(void) { if (gLastRecvQueueCount == 0) { BuildSendCmd(LINKCMD_0x2FFE); - gLinkCallback = sub_800AC00; + gLinkCallback = LinkFunc_Send2FFE_2; } } -static void sub_800AC00(void) +static void LinkFunc_Send2FFE_2(void) { u8 i; u8 linkPlayerCount; @@ -1477,7 +1477,7 @@ void CB2_LinkError(void) { gWirelessCommType = 3; } - sub_80F85F8(); + ResetLinkRfuGFLayer(); } SetVBlankCallback(sub_800978C); ResetBgsAndClearDma3BusyFlags(0); @@ -1626,7 +1626,7 @@ bool8 HasLinkErrorOccurred(void) return gLinkErrorOccurred; } -void sub_800B0B4(void) +void PrepareLocalLinkPlayerBlock(void) { struct LinkPlayerBlock * block; @@ -1638,7 +1638,7 @@ void sub_800B0B4(void) memcpy(gBlockSendBuffer, block, sizeof(*block)); } -void sub_800B110(u32 who) +void LinkPlayerFromBlock(u32 who) { u8 who_ = who; struct LinkPlayerBlock * block; @@ -1647,7 +1647,7 @@ void sub_800B110(u32 who) block = (struct LinkPlayerBlock *)gBlockRecvBuffer[who_]; player = &gLinkPlayers[who_]; *player = block->linkPlayer; - sub_800B284(player); + IntlConvertLinkPlayerName(player); if (strcmp(block->magic1, sASCIIGameFreakInc) != 0 || strcmp(block->magic2, sASCIIGameFreakInc) != 0) { SetMainCallback2(CB2_LinkError); @@ -1683,7 +1683,7 @@ bool8 HandleLinkConnection(void) return FALSE; } -void sub_800B1F4(void) +void SetWirelessCommType1(void) { if (gReceivedRemoteLinkPlayers == 0) { @@ -1691,7 +1691,7 @@ void sub_800B1F4(void) } } -static void sub_800B210(void) +static void SetWirelessCommType0(void) { if (gReceivedRemoteLinkPlayers == 0) { @@ -1699,7 +1699,7 @@ static void sub_800B210(void) } } -void sub_800B22C(void) +void SetWirelessCommType0_UnusedCopy(void) { if (gReceivedRemoteLinkPlayers == 0) { @@ -1725,7 +1725,7 @@ bool32 sub_800B270(void) return FALSE; } -void sub_800B284(struct LinkPlayer * player) +void IntlConvertLinkPlayerName(struct LinkPlayer * player) { player->name[10] = player->name[8]; ConvertInternationalString(player->name, player->language); diff --git a/src/link_rfu_2.c b/src/link_rfu_2.c index 28617948b..5890a5276 100644 --- a/src/link_rfu_2.c +++ b/src/link_rfu_2.c @@ -14,11 +14,12 @@ #include "constants/species.h" #include "constants/union_room.h" -struct UnkRfuStruct_8010A14{ - char unk_00[15]; // PokemonSioInfo - u8 unk_0f; - u8 unk_10[4]; - struct LinkPlayer unk_14[5]; +struct SioInfo +{ + char magic[15]; // PokemonSioInfo + u8 playerCount; + u8 linkPlayerIdx[RFU_CHILD_MAX]; + struct LinkPlayer linkPlayers[MAX_RFU_PLAYERS]; u8 fill_a0[0x5c]; }; @@ -36,7 +37,7 @@ u8 gHostRFUtgtUnameBuffer[PLAYER_NAME_LENGTH + 1]; static void sub_80F8AA4(void); static void sub_80F8AEC(void); static void MscCallback_Child(u16 a0); -static void sub_80F8DA8(u16 a0); +static void MSCCallback_SetUnkCDB(u16 a0); static void sub_80F906C(void); static void RfuHandleReceiveCommand(u8 unused); static void ResetSendDataManager(struct RfuBlockSend *data); @@ -49,8 +50,8 @@ static void sub_80FA738(void); static int sub_80FA788(void); static void sub_80FA834(u8 taskId); static void sub_80FA9D0(u16 a0); -static void sub_80FAA58(void * a0); -static void sub_80FAA94(u8 taskId); +static void ValidateAndReceivePokemonSioInfo(void * a0); +static void Task_ExchangeLinkPlayers(u8 taskId); static void sub_80FACF0(u8 taskId); static void GetLinkmanErrorParams(u32 msg); static void sub_80FB564(s32 bmConnectedFlag); @@ -59,8 +60,8 @@ static u8 GetPartnerIndexByNameAndTrainerID(const u8 *trainerName, u16 trainerId static void RfuReqDisconnectSlot(u32 bmDisconnectSlot); static void sub_80FBE20(u32 a0, u32 a1); static void sub_80FC028(u8 taskId); -static void sub_80FC208(void); -static void nullsub_89(u8 taskId); +static void rfu_dbg_clear(void); +static void Task_idle(u8 taskId); static const struct InitializeParametersTag sRfuReqConfigTemplate = { .maxMFrame = 4, @@ -169,21 +170,21 @@ static const char sUnref_843ED37[][16] = { static const TaskFunc gUnknown_843ED88[] = { sub_80FA834, - sub_80FAA94, + Task_ExchangeLinkPlayers, sub_80FACF0 }; -static void nullsub_87(const void *unused_0, u8 unused_1, u8 unused_2) +static void rfu_dbg_print_str(const void *string, u8 x, u8 y) { // debug? } -static void nullsub_88(u16 unused_0, u8 unused_1, u8 unused_2, u8 unused_3) +static void rfu_dbg_print_num(u16 num, u8 x, u8 y, u8 ndigits) { } -void sub_80F85F8(void) +void ResetLinkRfuGFLayer(void) { s32 i; u8 errorState_bak = Rfu.errorState; @@ -225,7 +226,7 @@ void sub_80F86F4(void) { gLinkType = 0; sub_80FB128(FALSE); - sub_80F85F8(); + ResetLinkRfuGFLayer(); rfu_setTimerInterrupt(3, gIntrTable + 2); } } @@ -257,7 +258,7 @@ static void Task_LinkLeaderSearchForChildren(u8 taskId) break; case 18: Rfu.unk_cdb = 0; - rfu_LMAN_setMSCCallback(sub_80F8DA8); + rfu_LMAN_setMSCCallback(MSCCallback_SetUnkCDB); sub_80F8AA4(); sub_80F8AEC(); Rfu.state = 20; @@ -285,7 +286,7 @@ static void sub_80F887C(s32 r2, s32 r5) { if (r2 & 1) { - Rfu.unk_cde[i] = r4; + Rfu.linkPlayerIdx[i] = r4; r4++; } } @@ -296,12 +297,12 @@ static void sub_80F887C(s32 r2, s32 r5) { if (!(r1 & 1)) { - Rfu.unk_cde[i] = 0; + Rfu.linkPlayerIdx[i] = 0; } } for (r4 = 4; r4 != 0; r4--) { - for (i = 0; i < RFU_CHILD_MAX && Rfu.unk_cde[i] != r4; i++); + for (i = 0; i < RFU_CHILD_MAX && Rfu.linkPlayerIdx[i] != r4; i++); if (i == 4) { r6 = r4; @@ -311,7 +312,7 @@ static void sub_80F887C(s32 r2, s32 r5) { if (r5 & 1) { - Rfu.unk_cde[i] = r6++; + Rfu.linkPlayerIdx[i] = r6++; } } } @@ -362,7 +363,7 @@ static void Task_JoinGroupSearchForParent(u8 taskId) DestroyTask(taskId); if (gUnknown_203AC08.unk_0f == 0) { - sub_80FC208(); + rfu_dbg_clear(); gUnknown_203AC08.unk_0f++; } CreateTask(sub_80FA834, 5); @@ -396,7 +397,7 @@ static void sub_80F8AEC(void) Rfu.parent_child = MODE_PARENT; } -static void sub_80F8B34(u8 taskId) +static void Task_LinkRfu_UnionRoomListen(u8 taskId) { if (GetHostRFUtgtGname()->activity == (ACTIVITY_PLYRTALK | IN_UNION_ROOM) && RfuGetErrorStatus() == 4) { @@ -443,7 +444,7 @@ static void sub_80F8B34(u8 taskId) break; case 16: Rfu.unk_cdb = 0; - rfu_LMAN_setMSCCallback(sub_80F8DA8); + rfu_LMAN_setMSCCallback(MSCCallback_SetUnkCDB); UpdateGameData_GroupLockedIn(1); sub_80F8AA4(); sub_80F8AEC(); @@ -489,7 +490,7 @@ static void MscCallback_Child(u16 unused) rfu_LMAN_REQ_sendData(TRUE); } -static void sub_80F8DA8(u16 unused) +static void MSCCallback_SetUnkCDB(u16 unused) { Rfu.unk_cdb = 1; } @@ -507,7 +508,7 @@ void LinkRfu_Shutdown(void) if (FuncIsActiveTask(Task_LinkLeaderSearchForChildren) == TRUE) { DestroyTask(Rfu.unk_67); - sub_80F85F8(); + ResetLinkRfuGFLayer(); } } else if (Rfu.parent_child == MODE_CHILD) @@ -515,15 +516,15 @@ void LinkRfu_Shutdown(void) if (FuncIsActiveTask(Task_JoinGroupSearchForParent) == TRUE) { DestroyTask(Rfu.unk_67); - sub_80F85F8(); + ResetLinkRfuGFLayer(); } } else if (Rfu.parent_child == 2) { - if (FuncIsActiveTask(sub_80F8B34) == TRUE) + if (FuncIsActiveTask(Task_LinkRfu_UnionRoomListen) == TRUE) { DestroyTask(Rfu.unk_67); - sub_80F85F8(); + ResetLinkRfuGFLayer(); } } for (i = 0; i < NELEMS(gUnknown_843ED88); i++) @@ -553,7 +554,7 @@ static bool8 RfuStateIs7AndPlayerIsChild(void) static bool32 IsParentSuccessfullyReconnected(void) { - if (Rfu.state == 7 && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[Rfu.unk_c3d].id, 240)) + if (Rfu.state == 7 && !rfu_LMAN_CHILD_connectParent(gRfuLinkStatus->partner[Rfu.reconnectedParentIdx].id, 240)) { Rfu.state = 9; return TRUE; @@ -577,7 +578,7 @@ bool8 LmanAcceptSlotFlagIsNotZero(void) return FALSE; } -void sub_80F8F5C(void) +void LinkRfu_StopManagerAndFinalizeSlots(void) { Rfu.state = 4; Rfu.acceptSlot_flag = lman.acceptSlot_flag; @@ -772,7 +773,7 @@ static bool32 sub_80F9204(void) Rfu.unk_cee[i] = Rfu.unk_14[i][0] / 32; Rfu.unk_cea[i] = 0; Rfu.unk_14[i][0] &= 0x1f; - r0 = Rfu.unk_cde[i]; + r0 = Rfu.linkPlayerIdx[i]; for (j = 0; j < 7; j++) { gRecvCmds[r0][j] = (Rfu.unk_14[i][(j << 1) + 1] << 8) | Rfu.unk_14[i][(j << 1) + 0]; @@ -805,7 +806,7 @@ static bool32 sub_80F9204(void) Rfu.unk_ce5 = 0; rfu_UNI_setSendData(Rfu.bm_PartnerFlags, Rfu.recvCmds, sizeof(Rfu.recvCmds)); Rfu.unk_cda = sub_80F886C(Rfu.bm_PartnerFlags); - CreateTask(sub_80FAA94, 0); + CreateTask(Task_ExchangeLinkPlayers, 0); } } else @@ -937,7 +938,7 @@ static u8 sub_80F9770(const u8 *a0) return FALSE; for (i = 0; i < RFU_CHILD_MAX; i++) { - Rfu.unk_cde[i] = a0[i]; + Rfu.linkPlayerIdx[i] = a0[i]; } return a0[Rfu.child_slot]; } @@ -1019,7 +1020,7 @@ static void RfuHandleReceiveCommand(u8 unused) Rfu.cmd_8800_recvbuf[i].receiving = 2; Rfu_SetBlockReceivedFlag(i); if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && gReceivedRemoteLinkPlayers != 0 && Rfu.parent_child == MODE_CHILD) - sub_80FAA58(gBlockRecvBuffer); + ValidateAndReceivePokemonSioInfo(gBlockRecvBuffer); } } break; @@ -1030,8 +1031,8 @@ static void RfuHandleReceiveCommand(u8 unused) Rfu.cmd5f00Ack[i] = 1; break; case RFU_COMMAND_0x6600: - if (Rfu.unk_100 == gRecvCmds[i][1]) - Rfu.unk_e9[i] = 1; + if (Rfu.cmd_6600_count == gRecvCmds[i][1]) + Rfu.cmd_6600_recvd[i] = 1; break; case RFU_COMMAND_0xed00: if (Rfu.parent_child == MODE_CHILD) @@ -1081,7 +1082,7 @@ static void RfuHandleReceiveCommand(u8 unused) } } -static bool8 sub_80F9C50(void) +static bool8 Cmd8000recvIsFinished(void) { s32 i; @@ -1145,7 +1146,7 @@ static void RfuPrepareSendBuffer(u16 command) gSendCmd[2] = Rfu.cmd_8800_sendbuf.owner + 0x80; break; case RFU_COMMAND_0xa100: - if (sub_80F9C50()) + if (Cmd8000recvIsFinished()) gSendCmd[1] = Rfu.unk_5a; break; case RFU_COMMAND_0x7700: @@ -1155,11 +1156,11 @@ static void RfuPrepareSendBuffer(u16 command) gSendCmd[1] = Rfu.playerCount; buff = (u8 *)(gSendCmd + 2); for (i = 0; i < RFU_CHILD_MAX; i++) - buff[i] = Rfu.unk_cde[i]; + buff[i] = Rfu.linkPlayerIdx[i]; break; case RFU_COMMAND_0x6600: case RFU_COMMAND_0x5f00: - gSendCmd[1] = Rfu.unk_100; + gSendCmd[1] = Rfu.cmd_6600_count; break; case RFU_COMMAND_0x2f00: for (i = 0; i < 6; i++) @@ -1363,45 +1364,45 @@ void Rfu_BeginBuildAndSendCommand5F(void) CreateTask(Task_WaitRfuFuncAndSetBuildCmd5F00, 5); } -static void sub_80FA2B0(void) +static void RfuFunc_Send6600_3(void) { u8 playerCount; u8 i; if (GetMultiplayerId() != 0) // child { - if (Rfu.unk_124.count == 0 && Rfu.unk_fe > 60) + if (Rfu.unk_124.count == 0 && Rfu.cmd_6600_timer > 60) { RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.unk_fe = 0; + Rfu.cmd_6600_timer = 0; } } playerCount = GetLinkPlayerCount(); for (i = 0; i < playerCount; i++) { - if (Rfu.unk_e9[i] == 0) + if (Rfu.cmd_6600_recvd[i] == 0) break; } if (i == playerCount) { for (i = 0; i < MAX_RFU_PLAYERS; i++) - Rfu.unk_e9[i] = 0; - Rfu.unk_100++; + Rfu.cmd_6600_recvd[i] = 0; + Rfu.cmd_6600_count++; Rfu.RfuFunc = NULL; } - Rfu.unk_fe++; + Rfu.cmd_6600_timer++; } -static void sub_80FA350(void) +static void RfuFunc_Send6600_2(void) { if (Rfu.unk_124.count == 0 && gSendCmd[0] == 0) { RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.RfuFunc = sub_80FA2B0; + Rfu.RfuFunc = RfuFunc_Send6600_3; } } -static void sub_80FA388(void) +static void RfuFunc_Send6600_1(void) { u8 i; u8 playerCount; @@ -1411,7 +1412,7 @@ static void sub_80FA388(void) if (Rfu.unk_124.count == 0 && gSendCmd[0] == 0) { RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.RfuFunc = sub_80FA2B0; + Rfu.RfuFunc = RfuFunc_Send6600_3; } } else // parent @@ -1419,7 +1420,7 @@ static void sub_80FA388(void) playerCount = GetLinkPlayerCount(); for (i = 1; i < playerCount; i++) { - if (Rfu.unk_e9[i] == 0) + if (Rfu.cmd_6600_recvd[i] == 0) break; } if (i == playerCount) @@ -1427,18 +1428,18 @@ static void sub_80FA388(void) if (Rfu.unk_124.count == 0 && gSendCmd[0] == 0) { RfuPrepareSendBuffer(RFU_COMMAND_0x6600); - Rfu.RfuFunc = sub_80FA350; + Rfu.RfuFunc = RfuFunc_Send6600_2; } } } } -void sub_80FA42C(void) +void LinkRfu_SetRfuFuncToSend6600(void) { if (Rfu.RfuFunc == NULL) { - Rfu.RfuFunc = sub_80FA388; - Rfu.unk_fe = 0; + Rfu.RfuFunc = RfuFunc_Send6600_1; + Rfu.cmd_6600_timer = 0; } } @@ -1629,10 +1630,10 @@ static void sub_80FA834(u8 taskId) switch (gTasks[taskId].data[0]) { case 0: - if (sub_80F9C50()) + if (Cmd8000recvIsFinished()) { ResetBlockReceivedFlags(); - sub_800B0B4(); + PrepareLocalLinkPlayerBlock(); gTasks[taskId].data[0]++; } break; @@ -1659,7 +1660,7 @@ static void sub_80FA834(u8 taskId) case 3: if (Rfu.parent_child == MODE_PARENT) { - if (sub_80F9C50()) + if (Cmd8000recvIsFinished()) { Rfu.unk_5a = 0; RfuPrepareSendBuffer(RFU_COMMAND_0xa100); @@ -1676,7 +1677,7 @@ static void sub_80FA834(u8 taskId) case 5: for (i = 0; i < Rfu.playerCount; i++) { - sub_800B110(i); + LinkPlayerFromBlock(i); Rfu_ResetBlockReceivedFlag(i); } gTasks[taskId].data[0]++; @@ -1686,14 +1687,14 @@ static void sub_80FA834(u8 taskId) gReceivedRemoteLinkPlayers = 1; Rfu.unk_ce8 = FALSE; rfu_LMAN_setLinkRecovery(1, 600); - if (Rfu.unk_ce6) + if (Rfu.unionRoomChatters) { for (i = 0; i < RFU_CHILD_MAX; i++) { - if ((Rfu.unk_ce6 >> i) & 1) + if ((Rfu.unionRoomChatters >> i) & 1) { Rfu.unk_ce5 = 1 << i; - Rfu.unk_ce6 ^= (1 << i); + Rfu.unionRoomChatters ^= (1 << i); } } } @@ -1708,39 +1709,39 @@ static void sub_80FA9D0(u16 a0) for (i = 0; i < RFU_CHILD_MAX; i++) { if ((a0 >> i) & 1) - Rfu.unk_cde[i] = 0; + Rfu.linkPlayerIdx[i] = 0; } } -static void sub_80FA9FC(const struct UnkRfuStruct_8010A14 *a0) +static void ReceiveRfuLinkPlayers(const struct SioInfo *chunk) { s32 i; - Rfu.playerCount = a0->unk_0f; + Rfu.playerCount = chunk->playerCount; for (i = 0; i < RFU_CHILD_MAX; i++) - Rfu.unk_cde[i] = a0->unk_10[i]; + Rfu.linkPlayerIdx[i] = chunk->linkPlayerIdx[i]; for (i = 0; i < MAX_RFU_PLAYERS; i++) { - gLinkPlayers[i] = a0->unk_14[i]; - sub_800B284(gLinkPlayers + i); + gLinkPlayers[i] = chunk->linkPlayers[i]; + IntlConvertLinkPlayerName(gLinkPlayers + i); } } -static void sub_80FAA58(void *a0) +static void ValidateAndReceivePokemonSioInfo(void *recvBuffer) { - if (strcmp("PokemonSioInfo", ((struct UnkRfuStruct_8010A14 *)a0)->unk_00) == 0) + if (strcmp("PokemonSioInfo", recvBuffer) == 0) { - sub_80FA9FC(a0); - CpuFill16(0, a0, sizeof(struct UnkRfuStruct_8010A14)); + ReceiveRfuLinkPlayers(recvBuffer); + CpuFill16(0, recvBuffer, sizeof(struct SioInfo)); ResetBlockReceivedFlag(0); } } -static void sub_80FAA94(u8 taskId) +static void Task_ExchangeLinkPlayers(u8 taskId) { s32 i; struct LinkPlayerBlock *r2; - struct UnkRfuStruct_8010A14 *r5; - u8 r4 = Rfu.unk_cde[gUnknown_843EC38[Rfu.unk_ce9]]; + struct SioInfo *r5; + u8 r4 = Rfu.linkPlayerIdx[gUnknown_843EC38[Rfu.unk_ce9]]; if (Rfu.unk_f1 == 1 || Rfu.unk_f1 == 2) { Rfu.unk_ce8 = FALSE; @@ -1766,42 +1767,43 @@ static void sub_80FAA94(u8 taskId) ResetBlockReceivedFlag(r4); r2 = (struct LinkPlayerBlock *)gBlockRecvBuffer[r4]; gLinkPlayers[r4] = r2->linkPlayer; - sub_800B284(gLinkPlayers + r4); + IntlConvertLinkPlayerName(gLinkPlayers + r4); gTasks[taskId].data[0]++; } break; case 3: - r5 = (struct UnkRfuStruct_8010A14 *)gBlockSendBuffer; - memcpy(r5->unk_00, "PokemonSioInfo", sizeof("PokemonSioInfo")); - r5->unk_0f = Rfu.playerCount; + // Prepare send block + r5 = (struct SioInfo *)gBlockSendBuffer; + memcpy(r5->magic, "PokemonSioInfo", sizeof("PokemonSioInfo")); + r5->playerCount = Rfu.playerCount; for (i = 0; i < RFU_CHILD_MAX; i++) - r5->unk_10[i] = Rfu.unk_cde[i]; - memcpy(r5->unk_14, gLinkPlayers, sizeof gLinkPlayers); + r5->linkPlayerIdx[i] = Rfu.linkPlayerIdx[i]; + memcpy(r5->linkPlayers, gLinkPlayers, sizeof gLinkPlayers); gTasks[taskId].data[0]++; // fallthrough case 4: - r5 = (struct UnkRfuStruct_8010A14 *)gBlockSendBuffer; - r5->unk_0f = Rfu.playerCount; + r5 = (struct SioInfo *)gBlockSendBuffer; + r5->playerCount = Rfu.playerCount; for (i = 0; i < RFU_CHILD_MAX; i++) - r5->unk_10[i] = Rfu.unk_cde[i]; - memcpy(r5->unk_14, gLinkPlayers, sizeof gLinkPlayers); + r5->linkPlayerIdx[i] = Rfu.linkPlayerIdx[i]; + memcpy(r5->linkPlayers, gLinkPlayers, sizeof gLinkPlayers); if (SendBlock(0, gBlockSendBuffer, 0xa0)) gTasks[taskId].data[0]++; break; case 5: if (IsLinkTaskFinished() && GetBlockReceivedStatus() & 1) { - CpuFill16(0, gBlockRecvBuffer, sizeof(struct UnkRfuStruct_8010A14)); + CpuFill16(0, gBlockRecvBuffer, sizeof(struct SioInfo)); ResetBlockReceivedFlag(0); Rfu.unk_ce8 = FALSE; - if (Rfu.unk_ce6) + if (Rfu.unionRoomChatters) { for (i = 0; i < RFU_CHILD_MAX; i++) { - if ((Rfu.unk_ce6 >> i) & 1) + if ((Rfu.unionRoomChatters >> i) & 1) { Rfu.unk_ce5 = 1 << i; - Rfu.unk_ce6 ^= (1 << i); + Rfu.unionRoomChatters ^= (1 << i); Rfu.unk_ce8 = TRUE; break; } @@ -1822,7 +1824,7 @@ static void sub_80FACF0(u8 taskId) case 0: if (Rfu.playerCount) { - sub_800B0B4(); + PrepareLocalLinkPlayerBlock(); SendBlock(0, gBlockSendBuffer, sizeof(struct LinkPlayerBlock)); gTasks[taskId].data[0]++; } @@ -1834,7 +1836,7 @@ static void sub_80FACF0(u8 taskId) case 2: if (GetBlockReceivedStatus() & 1) { - sub_80FA9FC((const struct UnkRfuStruct_8010A14 *)gBlockRecvBuffer); + ReceiveRfuLinkPlayers((const struct SioInfo *)gBlockRecvBuffer); ResetBlockReceivedFlag(0); gReceivedRemoteLinkPlayers = 1; DestroyTask(taskId); @@ -1969,7 +1971,7 @@ void sub_80FB030(u32 linkPlayerCount) { // The 0x80 prevents this element from being incorrectly read as a 0. child_sprite_genders |= (( - 0x80 | ((gLinkPlayers[Rfu.unk_cde[i]].gender & 1) << 3) | (gLinkPlayers[Rfu.unk_cde[i]].trainerId & 7) + 0x80 | ((gLinkPlayers[Rfu.linkPlayerIdx[i]].gender & 1) << 3) | (gLinkPlayers[Rfu.linkPlayerIdx[i]].trainerId & 7) ) << (numConnectedChildren << 3)); numConnectedChildren++; if (numConnectedChildren == linkPlayerCount - 1) @@ -2143,13 +2145,13 @@ static void LmanCallback_Child(u8 msg, u8 param_count) Rfu.linkLossRecoveryState = 4; if (Rfu.unk_c86 != 9) RfuSetErrorStatus(2, msg); - nullsub_87("LINK LOSS DISCONNECT!", 5, 5); + rfu_dbg_print_str("LINK LOSS DISCONNECT!", 5, 5); if (gReceivedRemoteLinkPlayers == 1) GetLinkmanErrorParams(msg); break; case LMAN_MSG_LINK_LOSS_DETECTED_AND_START_RECOVERY: Rfu.linkLossRecoveryState = 1; - nullsub_87("LINK LOSS RECOVERY NOW", 5, 5); + rfu_dbg_print_str("LINK LOSS RECOVERY NOW", 5, 5); break; case LMAN_MSG_LINK_RECOVERY_SUCCESSED: Rfu.linkLossRecoveryState = 3; @@ -2191,14 +2193,14 @@ static void sub_80FB564(s32 bmConnectedFlag) } } -static u8 sub_80FB5A0(s32 a0) +static u8 GetNewChildrenInUnionRoomChat(s32 bmNewChildSlot) { u8 ret = 0; u8 i; for (i = 0; i < RFU_CHILD_MAX; i++) { - if ((a0 >> i) & 1) + if ((bmNewChildSlot >> i) & 1) { struct GFtgtGname *structPtr = (void *)&gRfuLinkStatus->partner[i].gname; if (structPtr->activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) @@ -2224,24 +2226,24 @@ static void LmanCallback_Parent(u8 msg, u8 param_count) case LMAN_MSG_NEW_CHILD_CONNECT_ACCEPTED: if (GetHostRFUtgtGname()->activity == (ACTIVITY_CHAT | IN_UNION_ROOM) && Rfu.unk_cd9 == 0) { - u8 idx = sub_80FB5A0(lman.param[0]); - if (idx != 0) + u8 bmAcceptSlot = GetNewChildrenInUnionRoomChat(lman.param[0]); + if (bmAcceptSlot != 0) { - r1 = 1 << sub_80F886C(idx); - if (Rfu.unk_ce6 == 0 && !Rfu.unk_ce8) + r1 = 1 << sub_80F886C(bmAcceptSlot); + if (Rfu.unionRoomChatters == 0 && !Rfu.unk_ce8) { Rfu.unk_ce5 = r1; - Rfu.unk_ce6 |= (r1 ^ idx); + Rfu.unionRoomChatters |= (r1 ^ bmAcceptSlot); Rfu.unk_ce8 = TRUE; } else { - Rfu.unk_ce6 |= idx; + Rfu.unionRoomChatters |= bmAcceptSlot; } } - if (idx != lman.param[0]) + if (bmAcceptSlot != lman.param[0]) { - Rfu.bm_DisconnectSlot |= (idx ^ lman.param[0]); + Rfu.bm_DisconnectSlot |= (bmAcceptSlot ^ lman.param[0]); Rfu.unk_ce4 = 2; } } @@ -2326,7 +2328,7 @@ static void LmanCallback_Parent(u8 msg, u8 param_count) rfu_LMAN_stopManager(0); } - if (gRfuLinkStatus->parentChild == MODE_NEUTRAL && lman.pcswitch_flag == 0 && FuncIsActiveTask(sub_80F8B34) == TRUE) + if (gRfuLinkStatus->parentChild == MODE_NEUTRAL && lman.pcswitch_flag == 0 && FuncIsActiveTask(Task_LinkRfu_UnionRoomListen) == TRUE) Rfu.state = 17; RfuSetErrorStatus(2, msg); @@ -2418,7 +2420,7 @@ static void sub_80FBA78(void) if (IsWirelessAdapterConnected()) { gLinkType = LINKTYPE_0x1111; - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); SeedRng(gMain.vblankCounter2); for (i = 0; i < RFU_CHILD_MAX; i++) @@ -2429,25 +2431,25 @@ static void sub_80FBA78(void) AnimateSprites(); BuildOamBuffer(); UpdatePaletteFade(); - sub_80FBB20(); + LinkRfu_CreateIdleTask(); SetMainCallback2(sub_80FBB74); } } -bool32 sub_80FBB0C(void) +bool32 IsUnionRoomListenTaskActive(void) { - return FuncIsActiveTask(sub_80F8B34); + return FuncIsActiveTask(Task_LinkRfu_UnionRoomListen); } -void sub_80FBB20(void) +void LinkRfu_CreateIdleTask(void) { - if (!FuncIsActiveTask(nullsub_89)) - Rfu.unk_66 = CreateTask(nullsub_89, 0); + if (!FuncIsActiveTask(Task_idle)) + Rfu.unk_66 = CreateTask(Task_idle, 0); } -void sub_80FBB4C(void) +void LinkRfu_DestroyIdleTask(void) { - if (FuncIsActiveTask(nullsub_89) == TRUE) + if (FuncIsActiveTask(Task_idle) == TRUE) DestroyTask(Rfu.unk_66); } @@ -2477,7 +2479,7 @@ void InitializeRfuLinkManager_JoinGroup(void) CreateTask_JoinGroupSearchForParent(); } -void sub_80FBC00(void) +void InitializeRfuLinkManager_EnterUnionRoom(void) { if (gQuestLogState == 2 || gQuestLogState == 3) return; @@ -2487,7 +2489,7 @@ void sub_80FBC00(void) sRfuReqConfig = sRfuReqConfigTemplate; sRfuReqConfig.linkRecovery_enable = 0; sRfuReqConfig.linkRecovery_period = 600; - Rfu.unk_67 = CreateTask(sub_80F8B34, 1); + Rfu.unk_67 = CreateTask(Task_LinkRfu_UnionRoomListen, 1); } static u16 ReadU16(const void *ptr) @@ -2550,7 +2552,7 @@ void sub_80FBD6C(u32 a0) for (i = 0; i < RFU_CHILD_MAX; i++) { - if (Rfu.unk_cde[i] == a0 && (Rfu.bm_PartnerFlags >> i) & 1) + if (Rfu.linkPlayerIdx[i] == a0 && (Rfu.bm_PartnerFlags >> i) & 1) var |= 1 << i; } if (var) @@ -2587,7 +2589,7 @@ static void sub_80FBE20(u32 a0, u32 a1) gTasks[taskId].data[1] = a1; } -static void sub_80FBE80(u8 taskId) +static void Task_RfuReconnectWithParent(u8 taskId) { s16 *data = gTasks[taskId].data; @@ -2598,7 +2600,7 @@ static void sub_80FBE80(u8 taskId) { if (gRfuLinkStatus->partner[id].slot != 0xFF) { - Rfu.unk_c3d = id; + Rfu.reconnectedParentIdx = id; if (IsParentSuccessfullyReconnected()) DestroyTask(taskId); } @@ -2615,7 +2617,7 @@ static void sub_80FBE80(u8 taskId) else { data[15]++; - Rfu.unk_c3d = id; + Rfu.reconnectedParentIdx = id; } } else @@ -2630,13 +2632,13 @@ static void sub_80FBE80(u8 taskId) } } -void CreateTask_sub_80FBE80(const u8 *trainerName, u16 trainerId) +void CreateTask_RfuReconnectWithParent(const u8 *trainerName, u16 trainerId) { u8 taskId; s16 *data; Rfu.unk_f1 = 0; - taskId = CreateTask(sub_80FBE80, 3); + taskId = CreateTask(Task_RfuReconnectWithParent, 3); data = gTasks[taskId].data; StringCopy((u8*)(data), trainerName); data[8] = trainerId; @@ -2719,7 +2721,7 @@ void sub_80FC114(const u8 *name, struct GFtgtGname *structPtr, u8 activity) rfu_LMAN_forceChangeSP(); taskId = CreateTask(sub_80FC028, 2); gTasks[taskId].data[1] = activity; - taskId2 = FindTaskIdByFunc(sub_80F8B34); + taskId2 = FindTaskIdByFunc(Task_LinkRfu_UnionRoomListen); if (activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) { if (taskId2 != 0xFF) @@ -2753,12 +2755,12 @@ bool32 sub_80FC1CC(void) return TRUE; } -static void sub_80FC208(void) +static void rfu_dbg_clear(void) { s32 i; for (i = 0; i < 20; i++) - nullsub_87(" ", 0, i); + rfu_dbg_print_str(" ", 0, i); } static const char gUnknown_843EE47[16] = { @@ -2774,44 +2776,44 @@ static const char gUnknown_843EE57[9] = { static const char gUnknown_843EE60[] = {' ', '\0'}; static const char gUnknown_843EE62[] = {'*', '\0'}; -static void sub_80FC228(void) +static void rfu_dbg_print_status(void) { s32 i, j; - nullsub_88(GetBlockReceivedStatus(), 0x1C, 0x13, 2); - nullsub_88(gRfuLinkStatus->connSlotFlag, 0x14, 1, 1); - nullsub_88(gRfuLinkStatus->linkLossSlotFlag, 0x17, 1, 1); + rfu_dbg_print_num(GetBlockReceivedStatus(), 0x1C, 0x13, 2); + rfu_dbg_print_num(gRfuLinkStatus->connSlotFlag, 0x14, 1, 1); + rfu_dbg_print_num(gRfuLinkStatus->linkLossSlotFlag, 0x17, 1, 1); if (Rfu.parent_child == MODE_PARENT) { for (i = 0; i < RFU_CHILD_MAX; i++) { if ((gRfuLinkStatus->getNameFlag >> i) & 1) { - nullsub_88(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4); - nullsub_87((void*) &gRfuLinkStatus->partner[i].gname, 6, i + 3); - nullsub_87(gRfuLinkStatus->partner[i].uname, 0x16, i + 3); + rfu_dbg_print_num(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4); + rfu_dbg_print_str((void*) &gRfuLinkStatus->partner[i].gname, 6, i + 3); + rfu_dbg_print_str(gRfuLinkStatus->partner[i].uname, 0x16, i + 3); } } for (i = 0; i < RFU_CHILD_MAX; i++) { for (j = 0; j < 14; j++) { - nullsub_88(Rfu.unk_14[i][j], j * 2, i + 11, 2); + rfu_dbg_print_num(Rfu.unk_14[i][j], j * 2, i + 11, 2); } } - nullsub_87("NOWSLOT", 1, 0xF); + rfu_dbg_print_str("NOWSLOT", 1, 0xF); } else if (gRfuLinkStatus->connSlotFlag != 0 && gRfuLinkStatus->getNameFlag != 0) { for (i = 0; i < RFU_CHILD_MAX; i++) { - nullsub_88(0, 1, i + 3, 4); - nullsub_87(gUnknown_843EE47, 6, i + 3); - nullsub_87(gUnknown_843EE57, 0x16, i + 3); + rfu_dbg_print_num(0, 1, i + 3, 4); + rfu_dbg_print_str(gUnknown_843EE47, 6, i + 3); + rfu_dbg_print_str(gUnknown_843EE57, 0x16, i + 3); } - nullsub_88(gRfuLinkStatus->partner[Rfu.child_slot].serialNo, 1, 3, 4); - nullsub_87(gRfuLinkStatus->partner[Rfu.child_slot].gname, 6, 3); - nullsub_87(gRfuLinkStatus->partner[Rfu.child_slot].uname, 0x16, 3); + rfu_dbg_print_num(gRfuLinkStatus->partner[Rfu.child_slot].serialNo, 1, 3, 4); + rfu_dbg_print_str(gRfuLinkStatus->partner[Rfu.child_slot].gname, 6, 3); + rfu_dbg_print_str(gRfuLinkStatus->partner[Rfu.child_slot].uname, 0x16, 3); } else { @@ -2819,16 +2821,16 @@ static void sub_80FC228(void) { if (gRfuLinkStatus->partner[i].slot != 0xFF) { - nullsub_88(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4); - nullsub_88(gRfuLinkStatus->partner[i].id, 6, i + 3, 4); - nullsub_87(gRfuLinkStatus->partner[i].uname, 0x16, i + 3); + rfu_dbg_print_num(gRfuLinkStatus->partner[i].serialNo, 1, i + 3, 4); + rfu_dbg_print_num(gRfuLinkStatus->partner[i].id, 6, i + 3, 4); + rfu_dbg_print_str(gRfuLinkStatus->partner[i].uname, 0x16, i + 3); } } for (; i < RFU_CHILD_MAX; i++) { - nullsub_88(0, 1, i + 3, 4); - nullsub_87(gUnknown_843EE47, 6, i + 3); - nullsub_87(gUnknown_843EE57, 0x16, i + 3); + rfu_dbg_print_num(0, 1, i + 3, 4); + rfu_dbg_print_str(gUnknown_843EE47, 6, i + 3); + rfu_dbg_print_str(gUnknown_843EE57, 0x16, i + 3); } } } @@ -2857,7 +2859,7 @@ u32 GetRfuRecvQueueLength(void) return Rfu.unk_124.count; } -static void nullsub_89(u8 taskId) +static void Task_idle(u8 taskId) { } diff --git a/src/save.c b/src/save.c index a2d365886..3db8dcdbf 100644 --- a/src/save.c +++ b/src/save.c @@ -856,7 +856,7 @@ void sub_80DA634(u8 taskId) gTasks[taskId].data[0] = 1; break; case 1: - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); gTasks[taskId].data[0] = 2; break; case 2: @@ -890,7 +890,7 @@ void sub_80DA634(u8 taskId) break; case 7: ClearContinueGameWarpStatus2(); - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); gTasks[taskId].data[0] = 8; break; case 8: @@ -901,7 +901,7 @@ void sub_80DA634(u8 taskId) } break; case 9: - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); gTasks[taskId].data[0] = 10; break; case 10: diff --git a/src/trade.c b/src/trade.c index e0f1c136d..2ee4b39fc 100644 --- a/src/trade.c +++ b/src/trade.c @@ -765,9 +765,9 @@ static void sub_804C728(void) if (gWirelessCommType) { - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); - sub_80FBB20(); + LinkRfu_CreateIdleTask(); } else { @@ -810,14 +810,14 @@ static void sub_804C728(void) case 4: if (gReceivedRemoteLinkPlayers == TRUE && IsLinkPlayerDataExchangeComplete() == TRUE) { - sub_80FBB4C(); + LinkRfu_DestroyIdleTask(); CalculatePlayerPartyCount(); gMain.state++; sTradeMenuResourcesPtr->unk_A8 = 0; if (gWirelessCommType) { sub_80FA484(TRUE); - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); } } break; @@ -2004,7 +2004,7 @@ static void sub_804E908(void) { if (gWirelessCommType) { - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); } else { @@ -2044,7 +2044,7 @@ static void sub_804E9C0(void) { if (!sub_80FA484(FALSE)) { - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); sTradeMenuResourcesPtr->unk_6F = 13; } } diff --git a/src/trade_scene.c b/src/trade_scene.c index d6931f1f7..601d7ae2b 100644 --- a/src/trade_scene.c +++ b/src/trade_scene.c @@ -2556,7 +2556,7 @@ static void sub_8053E8C(void) DrawTextOnTradeWindow(0, gStringVar4, 0); break; case 1: - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); gMain.state = 100; sTradeData->timer = 0; break; @@ -2641,7 +2641,7 @@ static void sub_8053E8C(void) case 41: if (sTradeData->timer == 0) { - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); gMain.state = 42; } else @@ -2660,7 +2660,7 @@ static void sub_8053E8C(void) if (++sTradeData->timer > 60) { gMain.state++; - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); } break; case 6: @@ -2682,7 +2682,7 @@ static void sub_8053E8C(void) { if (gWirelessCommType && gMain.savedCallback == CB2_ReturnFromLinkTrade) { - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); } else { diff --git a/src/union_room.c b/src/union_room.c index b84145c6d..2f3c42873 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -66,8 +66,8 @@ static void Task_TryBecomeLinkLeader(u8 taskId); static void Leader_DestroyResources(struct UnkStruct_Leader * leader); static bool8 Leader_SetStateIfMemberListChanged(struct UnkStruct_Leader * leader, u32 state1, u32 state2); static void ItemPrintFunc_PossibleGroupMembers(u8 windowId, s32 itemId, u8 y); -static u8 LeaderUpdateGroupMembership(struct UnkStruct_Main0 * a0); -static u8 UnionRoomLeaderField0CompactionAndCount(struct UnkStruct_Main0 * a0); +static u8 LeaderUpdateGroupMembership(struct UnkStruct_Main0 * main0); +static u8 UnionRoomLeaderField0CompactionAndCount(struct UnkStruct_Main0 * main0); static void Task_TryJoinLinkGroup(u8 taskId); static u32 IsTryingToTradeWithHoennTooSoon(struct UnkStruct_Group * group, s32 id); static void AskToJoinRfuGroup(struct UnkStruct_Group * group, s32 id); @@ -79,16 +79,16 @@ static void CreateTask_StartActivity(void); static void Task_MEvent_Leader(u8 taskId); static void Task_CardOrNewsWithFriend(u8 taskId); static void Task_CardOrNewsOverWireless(u8 taskId); -static void Task_ResumeUnionRoom(u8 taskId); +static void Task_RunUnionRoom(u8 taskId); static u16 ReadAsU16(const u8 *data); static void ReceiveUnionRoomActivityPacket(struct UnkStruct_URoom * uRoom); static bool32 UnionRoom_HandleContactFromOtherPlayer(struct UnkStruct_URoom * uRoom); static void Task_InitUnionRoom(u8 taskId); static u8 HandlePlayerListUpdate(void); -static u8 CreateTask_SearchForChildOrParent(struct UnkStruct_Main4 * arg0, struct UnkStruct_Main4 * arg1, u32 arg2); -static bool32 GetGnameWonderFlagByLinkGroup(struct GFtgtGname * gname, s16 arg1); -static u8 CreateTask_ListenForPartnersWithCompatibleSerialNos(struct UnkStruct_Main4 * arg0, u32 linkGroup); -static u8 CreateTask_ListenForPartnersWithSerial7F7D(struct UnkStruct_Main4 * arg0, u32 linkGroup); +static u8 CreateTask_SearchForChildOrParent(struct UnkStruct_Main4 * main4, struct UnkStruct_Main4 * arg1, u32 arg2); +static bool32 GetGnameWonderFlagByLinkGroup(struct GFtgtGname * gname, s16 linkGroup); +static u8 CreateTask_ListenForPartnersWithCompatibleSerialNos(struct UnkStruct_Main4 * main4, u32 linkGroup); +static u8 CreateTask_ListenForPartnersWithSerial7F7D(struct UnkStruct_Main4 * main4, u32 linkGroup); static bool32 UR_PrintFieldMessage(const u8 * str); static bool32 UR_RunTextPrinters_CheckPrinter0Active(void); static bool8 PrintOnTextbox(u8 *textState, const u8 *str); @@ -98,27 +98,27 @@ static s32 TradeBoardMenuHandler(u8 *state_p, u8 *win_id_p, u8 *list_menu_id_p, static void UR_BlankBg0(void); static void JoinGroup_BlankBg0AndEnableScriptContexts(void); static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 colorIdx); -static void BlankUnkStruct_x20Array(struct UnkStruct_x20 * arg0, u8 count); -static void BlankUnkStruct_x1CArray(struct UnkStruct_x1C * arg0, u8 count); +static void BlankUnkStruct_x20Array(struct UnkStruct_x20 * x20, u8 count); +static void BlankUnkStruct_x1CArray(struct UnkStruct_x1C * x1C, u8 count); static bool8 AreGnameUnameDifferent(struct UnionGnameUnamePair * arg0, const struct UnionGnameUnamePair * arg1); static bool32 AreUnionRoomPlayerGnamesDifferent(struct UnionGnameUnamePair * arg0, struct UnionGnameUnamePair * arg1); -static u32 Findx20Inx1CArray(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1); +static u32 Findx20Inx1CArray(struct UnkStruct_x20 * x20, struct UnkStruct_x1C * x1Carr); static u8 Appendx1Ctox20(struct UnkStruct_x20 * x20arr, struct UnkStruct_x1C * x1C, u8 count); static void PrintUnionRoomGroupOnWindow(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * group, u8 colorIdx, u8 id); static void PrintGroupMemberCandidateOnWindowWithColor(u8 windowId, u8 x, u8 y, struct UnkStruct_x20 * group, u8 colorIdx, u8 id); static bool32 PlayerIsTalkingToUnionRoomAide(void); static u32 GetResponseIdx_InviteToURoomActivity(s32 activity); static u32 ConvPartnerUnameAndGetWhetherMetAlready(struct UnkStruct_x20 * unkX20); -static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender); +static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * main0, u8 overrideGender, u8 playerIdx, u32 playerGender); static void nullsub_92(u8 windowId, s32 itemId, u8 y); static void TradeBoardListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y); -static s32 GetIndexOfNthTradeBoardOffer(struct UnkStruct_x20 * arg, s32 arg1); -static s32 GetUnionRoomPlayerGender(s32 a0, struct UnkStruct_Main0 * a1); +static s32 GetIndexOfNthTradeBoardOffer(struct UnkStruct_x20 * x20, s32 n); +static s32 GetUnionRoomPlayerGender(s32 playerIdx, struct UnkStruct_Main0 * main0); static s32 IsRequestedTypeAndSpeciesInPlayerParty(u32 type, u32 species); -static void GetURoomActivityRejectMsg(u8 *dst, s32 arg1, u32 playerGender); -static void GetURoomActivityStartMsg(u8 *dst, u8 arg1); -static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom * arg3); -static bool32 PollPartnerYesNoResponse(struct UnkStruct_URoom * arg0); +static void GetURoomActivityRejectMsg(u8 *dst, s32 activity, u32 playerGender); +static void GetURoomActivityStartMsg(u8 *dst, u8 activity); +static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_p, struct UnkStruct_URoom * uroom); +static bool32 PollPartnerYesNoResponse(struct UnkStruct_URoom * uroom); static bool32 HasAtLeastTwoMonsOfLevel30OrLower(void); static void ResetUnionRoomTrade(struct UnionRoomTrade * trade); static bool32 RegisterTradeMonAndGetIsEgg(u32 monId, struct UnionRoomTrade * trade); @@ -127,8 +127,8 @@ static u32 GetPartyPositionOfRegisteredMon(struct UnionRoomTrade * trade, u8 mpI static void HandleCancelTrade(bool32 unlockObjs); static void UR_EnableScriptContext2AndFreezeObjectEvents(void); static u8 GetSinglePartnerSpriteGenderParam(s32 linkPlayer); -static u8 GetActivePartnerSpriteGenderParam(struct UnkStruct_URoom * arg0); -static void ViewURoomPartnerTrainerCard(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 gender); +static u8 GetActivePartnerSpriteGenderParam(struct UnkStruct_URoom * uroom); +static void ViewURoomPartnerTrainerCard(u8 *dest, struct UnkStruct_URoom * uRoom, bool8 parent_child); #define _8456CD8(a, b) ((a) | ((b) << 8)) @@ -664,7 +664,7 @@ static const u8 sUnref_84570D1[] = _("{DYNAMIC 00}·{DYNAMIC 01}"); _maxWidth - strWidth; \ }) -// arg1 is a 2-nybble code +// capacityCode is a 2-nybble code // Bits 0-3: Capacity // Bits 4-7: Min required (if 0, must have exactly Capacity players static void PrintNumPlayersWaitingForMsg(u8 windowId, u8 capacityCode, u8 count) @@ -745,7 +745,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) sPlayerCurrActivity = sLinkGroupToActivityAndCapacity[gSpecialVar_0x8004]; sPlayerActivityGroupSize = sLinkGroupToActivityAndCapacity[gSpecialVar_0x8004] >> 8; SetHostRFUtgtGname(sPlayerCurrActivity, 0, 0); - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); InitializeRfuLinkManager_LinkLeader(sPlayerActivityGroupSize & 0xF); data->state = 3; @@ -823,7 +823,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) && JOY_NEW(START_BUTTON)) { data->state = 15; - sub_80F8F5C(); + LinkRfu_StopManagerAndFinalizeSlots(); } if (data->state == 6 && sub_80FA5D4()) { @@ -905,7 +905,7 @@ static void Task_TryBecomeLinkLeader(u8 taskId) data->state = 13; } - sub_80F8F5C(); + LinkRfu_StopManagerAndFinalizeSlots(); PrintNumPlayersWaitingForMsg(data->nPlayerModeWindowId, sPlayerActivityGroupSize, data->playerCount); } else @@ -1289,7 +1289,7 @@ static void Task_TryJoinLinkGroup(u8 taskId) case 0: SetHostRFUtgtGname(sLinkGroupToURoomActivity[gSpecialVar_0x8004], 0, 0); sPlayerCurrActivity = sLinkGroupToURoomActivity[gSpecialVar_0x8004]; - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); InitializeRfuLinkManager_JoinGroup(); data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C)); @@ -1559,7 +1559,7 @@ static void AskToJoinRfuGroup(struct UnkStruct_Group * data, s32 id) RedrawListMenu(data->listTaskId); IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->leaderId]); UpdateGameDataWithActivitySpriteGendersFlag(sLinkGroupToURoomActivity[gSpecialVar_0x8004], 0, TRUE); - CreateTask_sub_80FBE80(data->field_0->arr[data->leaderId].gname_uname.uname, ReadAsU16(data->field_0->arr[data->leaderId].gname_uname.gname.unk_00.playerTrainerId)); + CreateTask_RfuReconnectWithParent(data->field_0->arr[data->leaderId].gname_uname.uname, ReadAsU16(data->field_0->arr[data->leaderId].gname_uname.gname.unk_00.playerTrainerId)); } u8 CreateTask_ListenToWireless(void) @@ -1586,7 +1586,7 @@ static void Task_ListenToWireless(u8 taskId) { case 0: SetHostRFUtgtGname(0, 0, 0); - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); InitializeRfuLinkManager_JoinGroup(); sub_80FB128(TRUE); @@ -1882,7 +1882,7 @@ static void CB2_TransitionToCableClub(void) break; case 1: if (!FuncIsActiveTask(Task_ExchangeCards)) - SetMainCallback2(sub_8056788); + SetMainCallback2(CB2_ReturnToFieldCableClub); break; } @@ -2022,7 +2022,7 @@ static void Task_RunScriptAndFadeToActivity(u8 taskId) case 2: if (!gPaletteFade.active) { - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); data[0]++; } break; @@ -2074,7 +2074,7 @@ static void Task_MEvent_Leader(u8 taskId) sPlayerActivityGroupSize = 2; SetHostRFUtgtGname(data->activity, 0, 0); SetGnameBufferWonderFlags(FALSE, FALSE); - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); InitializeRfuLinkManager_LinkLeader(2); data->state = 1; @@ -2165,7 +2165,7 @@ static void Task_MEvent_Leader(u8 taskId) IntlConvPartnerUname7(gStringVar1, data->field_0->arr[data->playerCount - 1]); StringExpandPlaceholders(gStringVar4, gUnknown_8457554); data->state = 9; - sub_80F8F5C(); + LinkRfu_StopManagerAndFinalizeSlots(); } else { @@ -2246,7 +2246,7 @@ static void Task_MEvent_Leader(u8 taskId) Free(data->field_8); Free(data->field_0); Free(data->field_4); - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); data->state++; break; case 17: @@ -2281,7 +2281,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) { case 0: SetHostRFUtgtGname(data->cardOrNews + ACTIVITY_WCARD2, 0, 0); - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); InitializeRfuLinkManager_JoinGroup(); data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C)); @@ -2342,7 +2342,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) CreateWirelessStatusIndicatorSprite(0, 0); RedrawListMenu(data->listTaskId); IntlConvPartnerUname(gStringVar1, data->field_0->arr[data->leaderId]); - CreateTask_sub_80FBE80(data->field_0->arr[data->leaderId].gname_uname.uname, ReadAsU16(data->field_0->arr[data->leaderId].gname_uname.gname.unk_00.playerTrainerId)); + CreateTask_RfuReconnectWithParent(data->field_0->arr[data->leaderId].gname_uname.uname, ReadAsU16(data->field_0->arr[data->leaderId].gname_uname.gname.unk_00.playerTrainerId)); PlaySE(SE_PN_ON); data->state = 4; } @@ -2413,7 +2413,7 @@ static void Task_CardOrNewsWithFriend(u8 taskId) break; case 11: data->state++; - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); break; case 12: if (IsLinkTaskFinished()) @@ -2447,7 +2447,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) { case 0: SetHostRFUtgtGname(0, 0, 0); - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); InitializeRfuLinkManager_JoinGroup(); data->field_4 = AllocZeroed(4 * sizeof(struct UnkStruct_x1C)); @@ -2503,7 +2503,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) data->refreshTimer = 0; LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); - CreateTask_sub_80FBE80(data->field_0->arr[0].gname_uname.uname, ReadAsU16(data->field_0->arr[0].gname_uname.gname.unk_00.playerTrainerId)); + CreateTask_RfuReconnectWithParent(data->field_0->arr[0].gname_uname.uname, ReadAsU16(data->field_0->arr[0].gname_uname.gname.unk_00.playerTrainerId)); PlaySE(SE_PN_ON); data->state = 4; } @@ -2592,7 +2592,7 @@ static void Task_CardOrNewsOverWireless(u8 taskId) break; case 13: data->state++; - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); break; case 14: if (IsLinkTaskFinished()) @@ -2606,7 +2606,7 @@ void UnionRoomSpecial(void) struct UnkStruct_URoom * dataPtr; ClearAndInitHostRFUtgtGname(); - CreateTask(Task_ResumeUnionRoom, 10); + CreateTask(Task_RunUnionRoom, 10); // dumb line needed to match sUnionRoomMain.uRoom = sUnionRoomMain.uRoom; @@ -2658,7 +2658,7 @@ static void RestoreURoomField0FromDecompressionBuffer(struct UnkStruct_URoom * d memcpy(data->field_0, &gDecompressionBuffer[0x3F00], 8 * sizeof(struct UnkStruct_x20)); } -static void Task_ResumeUnionRoom(u8 taskId) +static void Task_RunUnionRoom(u8 taskId) { u32 id = 0; s32 var5 = 0; @@ -2675,7 +2675,7 @@ static void Task_ResumeUnionRoom(u8 taskId) data->field_8 = AllocZeroed(sizeof(struct UnkStruct_x20)); BlankUnkStruct_x20Array(data->field_0->arr, 8); sPlayerCurrActivity = IN_UNION_ROOM; - data->field_20 = CreateTask_SearchForChildOrParent(data->field_C, data->field_4, 9); + data->field_20 = CreateTask_SearchForChildOrParent(data->field_C, data->field_4, LINK_GROUP_UNION_ROOM_RESUME); ZeroUnionObjWork(data->unionObjs); MakeGroupAssemblyAreasPassable(); data->state = 1; @@ -2688,9 +2688,9 @@ static void Task_ResumeUnionRoom(u8 taskId) case 2: SetHostRFUtgtGname(IN_UNION_ROOM, 0, 0); RfuUpdatePlayerGnameStateAndSend(sUnionRoomTrade.type, sUnionRoomTrade.playerSpecies, sUnionRoomTrade.playerLevel); - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); - sub_80FBC00(); + InitializeRfuLinkManager_EnterUnionRoom(); BlankUnkStruct_x20Array(&data->field_8->arr[0], 1); BlankUnkStruct_x1CArray(data->field_4->arr, 4); BlankUnkStruct_x1CArray(data->field_C->arr, 4); @@ -2845,7 +2845,7 @@ static void Task_ResumeUnionRoom(u8 taskId) break; case 1: case 2: - if (sub_80FBB0C() == TRUE) + if (IsUnionRoomListenTaskActive() == TRUE) UnionRoom_ScheduleFieldMessageAndExit(gUnknown_8457F90); else UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_8457F90); @@ -2958,7 +2958,7 @@ static void Task_ResumeUnionRoom(u8 taskId) { if (sPlayerCurrActivity == ACTIVITY_CARD) { - ViewURoomPartnerTrainerCard(gStringVar4, data, FALSE); + ViewURoomPartnerTrainerCard(gStringVar4, data, MODE_CHILD); data->state = 40; } else @@ -2984,7 +2984,7 @@ static void Task_ResumeUnionRoom(u8 taskId) if (PrintOnTextbox(&data->textState, gStringVar4)) { data->state = 41; - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); data->partnerYesNoResponse = 0; data->recvActivityRequest[0] = 0; } @@ -3042,7 +3042,7 @@ static void Task_ResumeUnionRoom(u8 taskId) case 2: playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); UpdateGameDataWithActivitySpriteGendersFlag(ACTIVITY_PLYRTALK | IN_UNION_ROOM, 0, TRUE); - if (sub_80FBB0C() == TRUE) + if (IsUnionRoomListenTaskActive() == TRUE) UnionRoom_ScheduleFieldMessageAndExit(gUnknown_84585E8[playerGender]); else UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_84585E8[playerGender]); @@ -3058,7 +3058,7 @@ static void Task_ResumeUnionRoom(u8 taskId) { playerGender = GetUnionRoomPlayerGender(taskData[1], data->field_0); UpdateGameDataWithActivitySpriteGendersFlag(ACTIVITY_PLYRTALK | IN_UNION_ROOM, 0, TRUE); - if (sub_80FBB0C() == TRUE) + if (IsUnionRoomListenTaskActive() == TRUE) UnionRoom_ScheduleFieldMessageAndExit(gUnknown_84585E8[playerGender]); else UnionRoom_ScheduleFieldMessageWithFollowupState(30, gUnknown_84585E8[playerGender]); @@ -3143,7 +3143,7 @@ static void Task_ResumeUnionRoom(u8 taskId) else if (sPlayerCurrActivity == (ACTIVITY_CARD | IN_UNION_ROOM)) { RfuPrepareSend0x2f00(data->playerSendBuffer); - ViewURoomPartnerTrainerCard(gStringVar4, data, 1); + ViewURoomPartnerTrainerCard(gStringVar4, data, MODE_PARENT); data->state = 40; } else @@ -3185,7 +3185,7 @@ static void Task_ResumeUnionRoom(u8 taskId) UnionRoom_ScheduleFieldMessageWithFollowupState(14, gStringVar4); break; case 14: - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); data->state = 15; break; case 15: @@ -3416,37 +3416,37 @@ void var_800D_set_xB(void) gSpecialVar_Result = 11; } -static void ReceiveUnionRoomActivityPacket(struct UnkStruct_URoom * arg0) +static void ReceiveUnionRoomActivityPacket(struct UnkStruct_URoom * uroom) { if (gRecvCmds[1][1] != 0 && (gRecvCmds[1][0] & 0xFF00) == RFU_COMMAND_0x2f00) { - arg0->recvActivityRequest[0] = gRecvCmds[1][1]; + uroom->recvActivityRequest[0] = gRecvCmds[1][1]; if (gRecvCmds[1][1] == (ACTIVITY_TRADE | IN_UNION_ROOM)) { - arg0->recvActivityRequest[1] = gRecvCmds[1][2]; - arg0->recvActivityRequest[2] = gRecvCmds[1][3]; + uroom->recvActivityRequest[1] = gRecvCmds[1][2]; + uroom->recvActivityRequest[2] = gRecvCmds[1][3]; } } } -static bool32 UnionRoom_HandleContactFromOtherPlayer(struct UnkStruct_URoom * arg0) +static bool32 UnionRoom_HandleContactFromOtherPlayer(struct UnkStruct_URoom * uroom) { - if (arg0->recvActivityRequest[0] != 0) + if (uroom->recvActivityRequest[0] != 0) { - s32 var = GetChatLeaderActionRequestMessage(gStringVar4, gLinkPlayers[1].gender, &arg0->recvActivityRequest[0], arg0); + s32 var = GetChatLeaderActionRequestMessage(gStringVar4, gLinkPlayers[1].gender, &uroom->recvActivityRequest[0], uroom); if (var == 0) { return TRUE; } else if (var == 1) { - arg0->state = 35; - sPlayerCurrActivity = arg0->recvActivityRequest[0]; + uroom->state = 35; + sPlayerCurrActivity = uroom->recvActivityRequest[0]; return FALSE; } else if (var == 2) { - arg0->state = 36; + uroom->state = 36; Link_TryStartSend5FFF(); return FALSE; } @@ -3486,9 +3486,9 @@ static void Task_InitUnionRoom(u8 taskId) break; case 1: SetHostRFUtgtGname(ACTIVITY_SEARCH, 0, 0); - sub_800B1F4(); + SetWirelessCommType1(); OpenLink(); - sub_80FBC00(); + InitializeRfuLinkManager_EnterUnionRoom(); sub_80FB128(TRUE); structPtr->state = 2; break; @@ -3501,7 +3501,7 @@ static void Task_InitUnionRoom(u8 taskId) BlankUnkStruct_x20Array(structPtr->field_0->arr, 8); structPtr->field_8 = AllocZeroed(sizeof(struct UnkStruct_x20)); BlankUnkStruct_x20Array(&structPtr->field_8->arr[0], 1); - structPtr->field_20 = CreateTask_SearchForChildOrParent(structPtr->field_C, structPtr->field_4, 10); + structPtr->field_20 = CreateTask_SearchForChildOrParent(structPtr->field_C, structPtr->field_4, LINK_GROUP_UNION_ROOM_INIT); structPtr->state = 3; break; case 3: @@ -3645,48 +3645,48 @@ static u8 HandlePlayerListUpdate(void) static void Task_SearchForChildOrParent(u8 taskId) { s32 i, j; - struct UnionGnameUnamePair sp0; + struct UnionGnameUnamePair gname_uname; struct UnkStruct_Main4 ** ptr = (void*) gTasks[taskId].data; bool8 parent_child; for (i = 0; i < RFU_CHILD_MAX; i++) { - parent_child = LinkRfu_GetNameIfCompatible(&sp0.gname, sp0.uname, i); - if (!IsPartnerActivityAcceptable(sp0.gname.activity, gTasks[taskId].data[4])) + parent_child = LinkRfu_GetNameIfCompatible(&gname_uname.gname, gname_uname.uname, i); + if (!IsPartnerActivityAcceptable(gname_uname.gname.activity, gTasks[taskId].data[4])) { - sp0 = sUnionGnameUnamePair_Dummy; + gname_uname = sUnionGnameUnamePair_Dummy; } - if (sp0.gname.unk_00.language == LANGUAGE_JAPANESE) + if (gname_uname.gname.unk_00.language == LANGUAGE_JAPANESE) { - sp0 = sUnionGnameUnamePair_Dummy; + gname_uname = sUnionGnameUnamePair_Dummy; } - if (!parent_child) + if (parent_child == MODE_CHILD) { for (j = 0; j < i; j++) { - if (!AreGnameUnameDifferent(&ptr[1]->arr[j].gname_uname, &sp0)) + if (!AreGnameUnameDifferent(&ptr[1]->arr[j].gname_uname, &gname_uname)) { - sp0 = sUnionGnameUnamePair_Dummy; + gname_uname = sUnionGnameUnamePair_Dummy; } } - ptr[1]->arr[i].gname_uname = sp0; + ptr[1]->arr[i].gname_uname = gname_uname; ptr[1]->arr[i].active = AreGnameUnameDifferent(&ptr[1]->arr[i].gname_uname, &sUnionGnameUnamePair_Dummy); } else { - ptr[0]->arr[i].gname_uname = sp0; + ptr[0]->arr[i].gname_uname = gname_uname; ptr[0]->arr[i].active = AreGnameUnameDifferent(&ptr[0]->arr[i].gname_uname, &sUnionGnameUnamePair_Dummy); } } } -static u8 CreateTask_SearchForChildOrParent(struct UnkStruct_Main4 * a0, struct UnkStruct_Main4 * a1, u32 a2) +static u8 CreateTask_SearchForChildOrParent(struct UnkStruct_Main4 * main4_parent, struct UnkStruct_Main4 * main4_child, u32 linkGroup) { u8 taskId = CreateTask(Task_SearchForChildOrParent, 0); struct UnkStruct_Main4 ** data = (void *)gTasks[taskId].data; - data[0] = a0; - data[1] = a1; - gTasks[taskId].data[4] = a2; + data[0] = main4_parent; + data[1] = main4_child; + gTasks[taskId].data[4] = linkGroup; return taskId; } @@ -4044,38 +4044,38 @@ static void UR_AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str AddTextPrinter(&printerTemplate, 0xFF, NULL); } -static void BlankUnkStruct_x20Array(struct UnkStruct_x20 * arg0, u8 count) +static void BlankUnkStruct_x20Array(struct UnkStruct_x20 * x20arr, u8 count) { s32 i; for (i = 0; i < count; i++) { - arg0[i].gname_uname = sUnionGnameUnamePair_Dummy; - arg0[i].field_18 = 0xFF; - arg0[i].groupScheduledAnim = UNION_ROOM_SPAWN_NONE; - arg0[i].field_1A_1 = FALSE; - arg0[i].field_1B = 0; + x20arr[i].gname_uname = sUnionGnameUnamePair_Dummy; + x20arr[i].field_18 = 0xFF; + x20arr[i].groupScheduledAnim = UNION_ROOM_SPAWN_NONE; + x20arr[i].field_1A_1 = FALSE; + x20arr[i].field_1B = 0; } } -static void BlankUnkStruct_x1CArray(struct UnkStruct_x1C * arg0, u8 count) +static void BlankUnkStruct_x1CArray(struct UnkStruct_x1C * x1Carr, u8 count) { s32 i; for (i = 0; i < RFU_CHILD_MAX; i++) { - arg0[i].gname_uname = sUnionGnameUnamePair_Dummy; - arg0[i].active = FALSE; + x1Carr[i].gname_uname = sUnionGnameUnamePair_Dummy; + x1Carr[i].active = FALSE; } } -static bool8 AreGnameUnameDifferent(struct UnionGnameUnamePair * arg0, const struct UnionGnameUnamePair * arg1) +static bool8 AreGnameUnameDifferent(struct UnionGnameUnamePair * left, const struct UnionGnameUnamePair * right) { s32 i; for (i = 0; i < 2; i++) { - if (arg0->gname.unk_00.playerTrainerId[i] != arg1->gname.unk_00.playerTrainerId[i]) + if (left->gname.unk_00.playerTrainerId[i] != right->gname.unk_00.playerTrainerId[i]) { return TRUE; } @@ -4083,7 +4083,7 @@ static bool8 AreGnameUnameDifferent(struct UnionGnameUnamePair * arg0, const str for (i = 0; i < 8; i++) { - if (arg0->uname[i] != arg1->uname[i]) + if (left->uname[i] != right->uname[i]) { return TRUE; } @@ -4092,34 +4092,34 @@ static bool8 AreGnameUnameDifferent(struct UnionGnameUnamePair * arg0, const str return FALSE; } -static bool32 AreUnionRoomPlayerGnamesDifferent(struct UnionGnameUnamePair * arg0, struct UnionGnameUnamePair * arg1) +static bool32 AreUnionRoomPlayerGnamesDifferent(struct UnionGnameUnamePair * left, struct UnionGnameUnamePair * right) { s32 i; - if (arg0->gname.activity != arg1->gname.activity) + if (left->gname.activity != right->gname.activity) { return TRUE; } - if (arg0->gname.started != arg1->gname.started) + if (left->gname.started != right->gname.started) { return TRUE; } for (i = 0; i < RFU_CHILD_MAX; i++) { - if (arg0->gname.child_sprite_gender[i] != arg1->gname.child_sprite_gender[i]) + if (left->gname.child_sprite_gender[i] != right->gname.child_sprite_gender[i]) { return TRUE; } } - if (arg0->gname.species != arg1->gname.species) + if (left->gname.species != right->gname.species) { return TRUE; } - if (arg0->gname.type != arg1->gname.type) + if (left->gname.type != right->gname.type) { return TRUE; } @@ -4127,17 +4127,17 @@ static bool32 AreUnionRoomPlayerGnamesDifferent(struct UnionGnameUnamePair * arg return FALSE; } -static u32 Findx20Inx1CArray(struct UnkStruct_x20 * arg0, struct UnkStruct_x1C * arg1) +static u32 Findx20Inx1CArray(struct UnkStruct_x20 * x20, struct UnkStruct_x1C * x1Carr) { u8 result = 0xFF; s32 i; for (i = 0; i < RFU_CHILD_MAX; i++) { - if (arg1[i].active && !AreGnameUnameDifferent(&arg0->gname_uname, &arg1[i].gname_uname)) + if (x1Carr[i].active && !AreGnameUnameDifferent(&x20->gname_uname, &x1Carr[i].gname_uname)) { result = i; - arg1[i].active = FALSE; + x1Carr[i].active = FALSE; } } @@ -4243,40 +4243,40 @@ static u32 GetResponseIdx_InviteToURoomActivity(s32 activity) } } -static u32 ConvPartnerUnameAndGetWhetherMetAlready(struct UnkStruct_x20 * arg0) +static u32 ConvPartnerUnameAndGetWhetherMetAlready(struct UnkStruct_x20 * x20) { u8 sp0[30]; - IntlConvPartnerUname(sp0, *arg0); - return PlayerHasMetTrainerBefore(ReadAsU16(arg0->gname_uname.gname.unk_00.playerTrainerId), sp0); + IntlConvPartnerUname(sp0, *x20); + return PlayerHasMetTrainerBefore(ReadAsU16(x20->gname_uname.gname.unk_00.playerTrainerId), sp0); } -static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * arg0, u8 arg1, u8 arg2, u32 playerGender) +static s32 UnionRoomGetPlayerInteractionResponse(struct UnkStruct_Main0 * main0, u8 overrideGender, u8 playerIdx, u32 playerGender) { - bool32 r2; + bool32 metBefore; - struct UnkStruct_x20 * x20 = &arg0->arr[arg2]; + struct UnkStruct_x20 * x20 = &main0->arr[playerIdx]; - if (!x20->gname_uname.gname.started && arg1 == 0) + if (!x20->gname_uname.gname.started && overrideGender == 0) { IntlConvPartnerUname(gStringVar1, *x20); - r2 = PlayerHasMetTrainerBefore(ReadAsU16(x20->gname_uname.gname.unk_00.playerTrainerId), gStringVar1); + metBefore = PlayerHasMetTrainerBefore(ReadAsU16(x20->gname_uname.gname.unk_00.playerTrainerId), gStringVar1); if (x20->gname_uname.gname.activity == (ACTIVITY_CHAT | IN_UNION_ROOM)) { - StringExpandPlaceholders(gStringVar4, gUnknown_8457F80[r2][playerGender]); + StringExpandPlaceholders(gStringVar4, gUnknown_8457F80[metBefore][playerGender]); return 2; } else { - UR_PrintFieldMessage(gURText_PleaseWaitMsgs[r2]); + UR_PrintFieldMessage(gURText_PleaseWaitMsgs[metBefore]); return 1; } } else { IntlConvPartnerUname(gStringVar1, *x20); - if (arg1 != 0) + if (overrideGender != 0) { - playerGender = (x20->gname_uname.gname.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1; + playerGender = (x20->gname_uname.gname.unk_00.playerTrainerId[overrideGender + 1] >> 3) & 1; } switch (x20->gname_uname.gname.activity & 0x3F) { @@ -4365,18 +4365,18 @@ static void TradeBoardListMenuItemPrintFunc(u8 windowId, s32 itemId, u8 y) } } -static s32 GetIndexOfNthTradeBoardOffer(struct UnkStruct_x20 * arg, s32 arg1) +static s32 GetIndexOfNthTradeBoardOffer(struct UnkStruct_x20 * x20, s32 n) { s32 i; s32 j = 0; for (i = 0; i < 8; i++) { - if (arg[i].groupScheduledAnim == UNION_ROOM_SPAWN_IN && arg[i].gname_uname.gname.species != SPECIES_NONE) + if (x20[i].groupScheduledAnim == UNION_ROOM_SPAWN_IN && x20[i].gname_uname.gname.species != SPECIES_NONE) { j++; } - if (j == arg1 + 1) + if (j == n + 1) { return i; } @@ -4385,9 +4385,9 @@ static s32 GetIndexOfNthTradeBoardOffer(struct UnkStruct_x20 * arg, s32 arg1) return -1; } -static s32 GetUnionRoomPlayerGender(s32 arg1, struct UnkStruct_Main0 * arg0) +static s32 GetUnionRoomPlayerGender(s32 playerIdx, struct UnkStruct_Main0 * main0) { - return arg0->arr[arg1].gname_uname.gname.playerGender; + return main0->arr[playerIdx].gname_uname.gname.playerGender; } static s32 IsRequestedTypeAndSpeciesInPlayerParty(u32 type, u32 species) @@ -4515,18 +4515,18 @@ static s32 GetChatLeaderActionRequestMessage(u8 *dst, u32 gender, u16 *activity_ return result; } -static bool32 PollPartnerYesNoResponse(struct UnkStruct_URoom * arg0) +static bool32 PollPartnerYesNoResponse(struct UnkStruct_URoom * uroom) { if (gRecvCmds[0][1] != 0) { if (gRecvCmds[0][1] == (ACTIVITY_ACCEPT | IN_UNION_ROOM)) { - arg0->partnerYesNoResponse = ACTIVITY_ACCEPT | IN_UNION_ROOM; + uroom->partnerYesNoResponse = ACTIVITY_ACCEPT | IN_UNION_ROOM; return TRUE; } else if (gRecvCmds[0][1] == (ACTIVITY_DECLINE | IN_UNION_ROOM)) { - arg0->partnerYesNoResponse = ACTIVITY_DECLINE | IN_UNION_ROOM; + uroom->partnerYesNoResponse = ACTIVITY_DECLINE | IN_UNION_ROOM; return TRUE; } } @@ -4560,16 +4560,16 @@ static bool32 HasAtLeastTwoMonsOfLevel30OrLower(void) return FALSE; } -static void ResetUnionRoomTrade(struct UnionRoomTrade * arg0) +static void ResetUnionRoomTrade(struct UnionRoomTrade * uroomTrade) { - arg0->field_0 = 0; - arg0->type = 0; - arg0->playerPersonality = 0; - arg0->playerSpecies = 0; - arg0->playerLevel = 0; - arg0->species = 0; - arg0->level = 0; - arg0->personality = 0; + uroomTrade->field_0 = 0; + uroomTrade->type = 0; + uroomTrade->playerPersonality = 0; + uroomTrade->playerSpecies = 0; + uroomTrade->playerLevel = 0; + uroomTrade->species = 0; + uroomTrade->level = 0; + uroomTrade->personality = 0; } void Script_ResetUnionRoomTrade(void) @@ -4663,17 +4663,17 @@ static u8 GetSinglePartnerSpriteGenderParam(s32 linkPlayer) return retval; } -static u8 GetActivePartnerSpriteGenderParam(struct UnkStruct_URoom * arg0) +static u8 GetActivePartnerSpriteGenderParam(struct UnkStruct_URoom * uroom) { u8 retVal = 0x80; u8 i; for (i = 0; i < RFU_CHILD_MAX; i++) { - if (arg0->field_C->arr[i].active) + if (uroom->field_C->arr[i].active) { - retVal |= arg0->field_C->arr[i].gname_uname.gname.playerGender << 3; - retVal |= arg0->field_C->arr[i].gname_uname.gname.unk_00.playerTrainerId[0] & 7; + retVal |= uroom->field_C->arr[i].gname_uname.gname.playerGender << 3; + retVal |= uroom->field_C->arr[i].gname_uname.gname.unk_00.playerTrainerId[0] & 7; break; } } @@ -4681,7 +4681,7 @@ static u8 GetActivePartnerSpriteGenderParam(struct UnkStruct_URoom * arg0) return retVal; } -static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * arg1, bool8 arg2) +static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * uroom, bool8 parent_child) { struct TrainerCard * trainerCard = &gTrainerCards[GetMultiplayerId() ^ 1]; s32 i; @@ -4689,61 +4689,61 @@ static void ViewURoomPartnerTrainerCard(u8 *unused, struct UnkStruct_URoom * arg DynamicPlaceholderTextUtil_Reset(); - StringCopy(arg1->trainerCardStrbufs[0], gTrainerClassNames[sub_80447F0()]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->trainerCardStrbufs[0]); + StringCopy(uroom->trainerCardStrbufs[0], gTrainerClassNames[sub_80447F0()]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, uroom->trainerCardStrbufs[0]); DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->playerName); - StringCopy(arg1->field_174, gUnknown_84594B0[trainerCard->stars]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_174); + StringCopy(uroom->field_174, gUnknown_84594B0[trainerCard->stars]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->field_174); - ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->trainerCardStrbufs[2]); + ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, uroom->trainerCardStrbufs[2]); - ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3); - ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, arg1->trainerCardStrbufs[3]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, arg1->trainerCardStrbufs[4]); + ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3); + ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, uroom->trainerCardStrbufs[3]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, uroom->trainerCardStrbufs[4]); - DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_84594C4); - StringCopy(gStringVar4, arg1->field_1A4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_84594C4); + StringCopy(gStringVar4, uroom->field_1A4); n = trainerCard->linkBattleWins; if (n > 9999) { n = 9999; } - ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[0], n, STR_CONV_MODE_LEFT_ALIGN, 4); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->trainerCardStrbufs[0]); + ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[0], n, STR_CONV_MODE_LEFT_ALIGN, 4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, uroom->trainerCardStrbufs[0]); n = trainerCard->linkBattleLosses; if (n > 9999) { n = 9999; } - ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[1], n, STR_CONV_MODE_LEFT_ALIGN, 4); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->trainerCardStrbufs[1]); + ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[1], n, STR_CONV_MODE_LEFT_ALIGN, 4); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, uroom->trainerCardStrbufs[1]); - ConvertIntToDecimalStringN(arg1->trainerCardStrbufs[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->trainerCardStrbufs[2]); + ConvertIntToDecimalStringN(uroom->trainerCardStrbufs[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, uroom->trainerCardStrbufs[2]); for (i = 0; i < 4; i++) { - CopyEasyChatWord(arg1->trainerCardStrbufs[i + 3], trainerCard->var_28[i]); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, arg1->trainerCardStrbufs[i + 3]); + CopyEasyChatWord(uroom->trainerCardStrbufs[i + 3], trainerCard->var_28[i]); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, uroom->trainerCardStrbufs[i + 3]); } - DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_8459504); - StringAppend(gStringVar4, arg1->field_1A4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459504); + StringAppend(gStringVar4, uroom->field_1A4); - if (arg2 == TRUE) + if (parent_child == MODE_PARENT) { - DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_8459588); - StringAppend(gStringVar4, arg1->field_1A4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459588); + StringAppend(gStringVar4, uroom->field_1A4); } - else if (arg2 == FALSE) + else if (parent_child == MODE_CHILD) { - DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_8459580[trainerCard->gender]); - StringAppend(gStringVar4, arg1->field_1A4); + DynamicPlaceholderTextUtil_ExpandPlaceholders(uroom->field_1A4, gUnknown_8459580[trainerCard->gender]); + StringAppend(gStringVar4, uroom->field_1A4); } } diff --git a/src/union_room_battle.c b/src/union_room_battle.c index 96e37add8..b4d8af9ce 100644 --- a/src/union_room_battle.c +++ b/src/union_room_battle.c @@ -183,7 +183,7 @@ void CB2_UnionRoomBattle(void) case 50: if (!UpdatePaletteFade()) { - sub_800AB9C(); + PrepareSendLinkCmd2FFE_or_RfuCmd6600(); gMain.state++; } break; diff --git a/src/union_room_message.c b/src/union_room_message.c index 6cfeb5552..1d26d1968 100644 --- a/src/union_room_message.c +++ b/src/union_room_message.c @@ -525,6 +525,7 @@ const u8 *const gUnknown_84594B0[] = { ALIGNED(4) const u8 gUnknown_84594C4[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p"); ALIGNED(4) const u8 gUnknown_8459504[] = _("BATTLES: {SPECIAL_F7 0x00} WINS {SPECIAL_F7 0x02} LOSSES\nTRADES: {SPECIAL_F7 0x03} TIMES\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p"); + ALIGNED(4) const u8 gUnknown_8459544[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}"); ALIGNED(4) const u8 gUnknown_8459564[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}"); |