diff options
author | scnorton <scnorton@biociphers.org> | 2018-01-18 17:38:51 -0500 |
---|---|---|
committer | scnorton <scnorton@biociphers.org> | 2018-01-18 17:38:51 -0500 |
commit | 68e9b5719c36f3bbbd807a2139e35d2c4207395d (patch) | |
tree | d8c8a8d89db9035b470fec49111fa08a820d78c9 /src | |
parent | 090f70dd5b0983b761b08c04c8cfc9873738db52 (diff) |
sub_800F4F0
Diffstat (limited to 'src')
-rw-r--r-- | src/link_rfu.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/link_rfu.c b/src/link_rfu.c index 6d6099188..f8a978e1f 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -3144,3 +3144,50 @@ void sub_800F498(u16 *a0, u8 *a1) a1[i] = 0; } } + +bool32 sub_800F4F0(void) +{ + u8 i; + u8 j; + u8 sp00[MAX_RFU_PLAYERS * (2 * (CMD_LENGTH - 1))]; + u8 sp48[2 * (CMD_LENGTH - 1)]; + u8 switchval; + + sub_800D934(&gUnknown_03005000.unk_124, sp00); + for (i = 0; i < MAX_RFU_PLAYERS; i++) + { + for (j = 0; j < CMD_LENGTH - 1; j++) + { + gRecvCmds[i][j] = (sp00[i * 14 + (j << 1) + 1] << 8) | sp00[i * 14 + (j << 1) + 0]; + } + } + sub_800F86C(0); + if (gUnknown_03004140.unk_02 == 0 && gUnknown_03005000.unk_ce4) + { + rfu_REQ_disconnect(gUnknown_03007890->unk_02 | gUnknown_03007890->unk_03); + rfu_waitREQComplete(); + switchval = sub_8011A74(); + if (switchval != 1 && switchval != 6 && switchval != 9) + sub_8011A64(2, 0x9000); + rfu_clearAllSlot(); + gReceivedRemoteLinkPlayers = FALSE; + gUnknown_03005000.unk_00 = 0; + if (gUnknown_03005000.unk_ce4 == 1) + { + sub_8011A64(2, 0x9000); + sub_8011170(0x9000); + } + gUnknown_03004140.unk_04 = gUnknown_03004140.unk_05 = 0; + gUnknown_03005000.unk_ce4 = 0; + } + if (gUnknown_03005000.unk_cd0) + { + gUnknown_03005000.unk_cd0--; + sub_8010528(); + sub_800F498(gSendCmd, sp48); + sub_800D888(&gUnknown_03005000.unk_9e8, sp48); + for (i = 0; i < CMD_LENGTH - 1; i++) + gSendCmd[i] = 0; + } + return sub_800F0B8(); +} |