diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-12 22:30:00 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-11-12 22:30:00 -0500 |
commit | 16dba15c1c80ce545b4ed4178d42412bb98bdd33 (patch) | |
tree | 9143d3d72a6c19f74342100d71dde9c1375e5e4f | |
parent | 6fe7b33ae15d33896f7808e52ca921d4f5881941 (diff) |
through sub_800AD88
-rw-r--r-- | asm/link.s | 70 | ||||
-rw-r--r-- | src/link.c | 41 |
2 files changed, 40 insertions, 71 deletions
diff --git a/asm/link.s b/asm/link.s index 0ba740590..d333c26f5 100644 --- a/asm/link.s +++ b/asm/link.s @@ -5,76 +5,6 @@ .text - thumb_func_start sub_800AD5C -sub_800AD5C: @ 800AD5C - push {lr} - ldr r0, =gUnknown_03004130 - ldrb r0, [r0] - cmp r0, 0 - bne _0800AD72 - ldr r0, =0x00005fff - bl BuildSendCmd - ldr r1, =gLinkCallback - ldr r0, =sub_800AD88 - str r0, [r1] -_0800AD72: - pop {r0} - bx r0 - .pool - thumb_func_end sub_800AD5C - - thumb_func_start sub_800AD88 -sub_800AD88: @ 800AD88 - push {r4,r5,lr} - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r3, r0, 24 - movs r1, 0 - movs r2, 0 - cmp r1, r3 - bge _0800ADB6 - ldr r5, =gUnknown_030030F0 - ldr r4, =gLinkPlayers -_0800AD9E: - ldrh r0, [r4, 0x1A] - cmp r0, 0x1 - beq _0800ADAC - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, 0 - beq _0800ADAE -_0800ADAC: - adds r1, 0x1 -_0800ADAE: - adds r4, 0x1C - adds r2, 0x1 - cmp r2, r3 - blt _0800AD9E -_0800ADB6: - cmp r1, r3 - bne _0800ADDA - ldr r2, =gBattleTypeFlags - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - ldr r0, =gLinkVSyncDisabled - movs r4, 0x1 - strb r4, [r0] - bl CloseLink - ldr r1, =gLinkCallback - movs r0, 0 - str r0, [r1] - ldr r0, =gUnknown_030030E4 - strb r4, [r0] -_0800ADDA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_800AD88 - thumb_func_start sub_800ADF8 sub_800ADF8: @ 800ADF8 push {lr} diff --git a/src/link.c b/src/link.c index ab1b9174c..b01e53789 100644 --- a/src/link.c +++ b/src/link.c @@ -134,7 +134,8 @@ static void LinkCB_RequestPlayerDataExchange(void); static void Task_PrintTestData(u8 taskId); static void sub_800AC80(void); static void sub_800ACAC(void); -void sub_800AD5C(void); +static void sub_800AD5C(void); +static void sub_800AD88(void); void sub_800AEB4(void); u8 sub_800B2F8(void); void sub_800B4A4(void); @@ -1485,3 +1486,41 @@ void sub_800AD10(void) } } } + +static void sub_800AD5C(void) +{ + if (gUnknown_03004130 == 0) + { + BuildSendCmd(0x5fff); + gLinkCallback = sub_800AD88; + } +} + +static void sub_800AD88(void) +{ + int i; + unsigned count; + u8 linkPlayerCount; + + linkPlayerCount = GetLinkPlayerCount(); + count = 0; + for (i = 0; i < linkPlayerCount; i ++) + { + if (gLinkPlayers[i].language == LANGUAGE_JAPANESE) + { + count ++; + } + else if (gUnknown_030030F0[i]) + { + count ++; + } + } + if (count == linkPlayerCount) + { + gBattleTypeFlags &= ~BATTLE_TYPE_20; + gLinkVSyncDisabled = TRUE; + CloseLink(); + gLinkCallback = NULL; + gUnknown_030030E4 = 1; + } +} |