diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-20 14:59:34 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-20 14:59:34 -0500 |
commit | aa6ffc5ba1c605c3ddbf9abd8dd96d3b16348ed6 (patch) | |
tree | b3333d1398b1d2508fa5929c50eb9070f4b16038 /src | |
parent | c5096c81add4aa23157a16ba66934973aadf3045 (diff) |
through sub_8010528
Diffstat (limited to 'src')
-rw-r--r-- | src/link_rfu.c | 134 |
1 files changed, 132 insertions, 2 deletions
diff --git a/src/link_rfu.c b/src/link_rfu.c index 285f4f9ea..aa5e114da 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -62,7 +62,7 @@ void sub_800FD14(u16 command); void rfufunc_80F9F44(void); void sub_800FFB0(void); void rfufunc_80FA020(void); -bool32 sub_8010454(u16 a0); +bool32 sub_8010454(u32 a0); void sub_8010528(void); void sub_8010750(void); int sub_80107A0(void); @@ -3924,7 +3924,7 @@ void sub_801022C(void) void sub_8010264(u8 taskId) { - if (gUnknown_03005000.unk_00 == 0) + if (gUnknown_03005000.unk_00 == NULL) { gUnknown_03005000.unk_cd9 = 1; gUnknown_03005000.unk_00 = sub_801022C; @@ -3937,3 +3937,133 @@ void task_add_05_task_del_08FA224_when_no_RfuFunc(void) if (!FuncIsActiveTask(sub_8010264)) CreateTask(sub_8010264, 5); } + +void sub_80102B8(void) +{ + u8 playerCount; + u8 i; + + if (GetMultiplayerId() != 0) + { + u8 r4 = gUnknown_03005000.unk_124.unk_8c2; + if (r4 == 0 && gUnknown_03005000.unk_fe > 0x3c) + { + sub_800FD14(0x6600); + gUnknown_03005000.unk_fe = r4; + } + } + playerCount = GetLinkPlayerCount(); + for (i = 0; i < playerCount; i++) + { + if (gUnknown_03005000.unk_e9[i] == 0) + break; + } + if (i == playerCount) + { + for (i = 0; i < MAX_RFU_PLAYERS; i++) + gUnknown_03005000.unk_e9[i] = 0; + gUnknown_03005000.unk_100++; + gUnknown_03005000.unk_00 = NULL; + } + gUnknown_03005000.unk_fe++; +} + +void sub_8010358(void) +{ + if (gUnknown_03005000.unk_124.unk_8c2 == 0 && gSendCmd[0] == 0) + { + sub_800FD14(0x6600); + gUnknown_03005000.unk_00 = sub_80102B8; + } +} + +void sub_8010390(void) +{ + u8 i; + u8 playerCount; + + if (GetMultiplayerId() != 0) + { + if (gUnknown_03005000.unk_124.unk_8c2 == 0 && gSendCmd[0] == 0) + { + sub_800FD14(0x6600); + gUnknown_03005000.unk_00 = sub_80102B8; + } + } + else + { + playerCount = GetLinkPlayerCount(); + for (i = 1; i < playerCount; i++) + { + if (gUnknown_03005000.unk_e9[i] == 0) + break; + } + if (i == playerCount) + { + if (gUnknown_03005000.unk_124.unk_8c2 == 0 && gSendCmd[0] == 0) + { + sub_800FD14(0x6600); + gUnknown_03005000.unk_00 = sub_8010358; + } + } + } +} + +void sub_8010434(void) +{ + if (gUnknown_03005000.unk_00 == NULL) + { + gUnknown_03005000.unk_00 = sub_8010390; + gUnknown_03005000.unk_fe = 0; + } +} + +bool32 sub_8010454(u32 a0) +{ + int i; + for (i = 0; gUnknown_082ED6E0[i] != a0; i++) + { + if (gUnknown_082ED6E0[i] == 0xffff) + return FALSE; + } + return TRUE; +} + +u8 sub_801048C(bool32 a0) +{ + if (a0 == 0) + return sub_800D550(0, 0); + sub_800D550(1, 0x258); + return FALSE; +} + +void sub_80104B0(void) +{ + gUnknown_03005000.unk_cd9 = 1; + sub_800C27C(FALSE); +} + +u8 rfu_get_multiplayer_id(void) +{ + if (gUnknown_03005000.unk_0c == 1) + return 0; + return gUnknown_03005000.unk_cce; +} + +u8 sub_80104F4(void) +{ + return gUnknown_03005000.playerCount; +} + +bool8 sub_8010500(void) +{ + if (gUnknown_03005000.unk_f1 == 2) + return FALSE; + return gUnknown_03005000.unk_00 ? FALSE : TRUE; +} + +void sub_8010528(void) +{ + if (gUnknown_03005000.unk_00) + gUnknown_03005000.unk_00(); +} |