diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-22 19:20:26 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-22 19:20:26 -0500 |
commit | 5312cf566196e662aa7edd4ef68f32922eb54180 (patch) | |
tree | 5ca5abd190a0e343ee474ecf908c300cc92babbf | |
parent | 9474c491c070fe38e89f7b3848a5820c763fe045 (diff) |
through sub_80C8A38
-rw-r--r-- | asm/contest_link_80C857C.s | 126 | ||||
-rw-r--r-- | src/battle/contest_link_80C857C.c | 54 |
2 files changed, 54 insertions, 126 deletions
diff --git a/asm/contest_link_80C857C.s b/asm/contest_link_80C857C.s index 6dc96e85d..4285531f7 100644 --- a/asm/contest_link_80C857C.s +++ b/asm/contest_link_80C857C.s @@ -5,132 +5,6 @@ .text - thumb_func_start sub_80C89DC -sub_80C89DC: @ 80C89DC - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080C8A04 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A08 - cmp r0, 0x1 - beq _080C8A20 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc - b _080C8A30 - .align 2, 0 -_080C8A04: .4byte gTasks -_080C8A08: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 - ldr r0, _080C8A1C @ =gContestPlayerMonIndex - movs r1, 0x1 - bl sub_80C857C - b _080C8A2A - .align 2, 0 -_080C8A1C: .4byte gContestPlayerMonIndex -_080C8A20: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8A30 -_080C8A2A: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080C8A30: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80C89DC - - thumb_func_start sub_80C8A38 -sub_80C8A38: @ 80C8A38 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r7, _080C8A60 @ =gTasks - lsls r6, r5, 2 - adds r0, r6, r5 - lsls r0, 3 - adds r4, r0, r7 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080C8A64 - cmp r0, 0x1 - beq _080C8A94 - movs r0, 0 - strh r0, [r4, 0x8] - adds r0, r5, 0 - bl SwitchTaskToFollowupFunc - b _080C8AC2 - .align 2, 0 -_080C8A60: .4byte gTasks -_080C8A64: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r0, _080C8A8C @ =gContestPlayerMonIndex - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _080C8A90 @ =gSharedMem + 0x19266 - adds r0, r1 - movs r1, 0x2 - bl sub_80C857C - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080C8AC2 - .align 2, 0 -_080C8A8C: .4byte gContestPlayerMonIndex -_080C8A90: .4byte gSharedMem + 0x19266 -_080C8A94: - bl sub_80C85D8 - lsls r0, 24 - cmp r0, 0 - beq _080C8AC2 - ldr r1, _080C8AC8 @ =gBlockRecvBuffer - ldr r3, _080C8ACC @ =gSharedMem + 0x19266 - movs r4, 0x80 - lsls r4, 1 - movs r2, 0x3 -_080C8AA8: - ldrh r0, [r1] - strh r0, [r3] - adds r1, r4 - adds r3, 0x1C - subs r2, 0x1 - cmp r2, 0 - bge _080C8AA8 - adds r1, r6, r5 - lsls r1, 3 - adds r1, r7 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] -_080C8AC2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080C8AC8: .4byte gBlockRecvBuffer -_080C8ACC: .4byte gSharedMem + 0x19266 - thumb_func_end sub_80C8A38 - thumb_func_start sub_80C8AD0 sub_80C8AD0: @ 80C8AD0 push {r4,lr} diff --git a/src/battle/contest_link_80C857C.c b/src/battle/contest_link_80C857C.c index 17b82388c..cef290adf 100644 --- a/src/battle/contest_link_80C857C.c +++ b/src/battle/contest_link_80C857C.c @@ -398,6 +398,60 @@ void sub_80C8938(u8 taskId) } } +void sub_80C89DC(u8 taskId) +{ + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + case 0: + if (sub_8007ECC()) + { + sub_80C857C(&gContestPlayerMonIndex, sizeof(u8)); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + gTasks[taskId].data[0]++; + } + break; + } +} + +void sub_80C8A38(u8 taskId) +{ + int i; + + switch (gTasks[taskId].data[0]) + { + default: + gTasks[taskId].data[0] = 0; + SwitchTaskToFollowupFunc(taskId); + break; + case 0: + if (sub_8007ECC()) + { + sub_80C857C(&sContestantStatus[gContestPlayerMonIndex].currMove, sizeof(u16)); + gTasks[taskId].data[0]++; + } + break; + case 1: + if (sub_80C85D8()) + { + for (i = 0; i < MAX_LINK_PLAYERS; i++) + { + *&sContestantStatus[i].currMove = gBlockRecvBuffer[i][0]; + } + gTasks[taskId].data[0]++; + } + break; + } +} + asm(".section .text_de"); #if GERMAN |