summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-11-04 11:39:23 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-11-04 11:39:23 -0400
commitd921e555d20151c420eb0dab03913125a7bbf1fb (patch)
treea3f3a0faf18dac71288058d32bd81b35aec08484 /src
parent6c746425ed48ba6d4d6519959b13914192da95b7 (diff)
sub_80E7630
Diffstat (limited to 'src')
-rw-r--r--src/record_mixing.c47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 9dd3be0fe..d00634212 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -67,10 +67,11 @@ EWRAM_DATA struct PlayerRecords *gUnknown_0203A018 = NULL;
static void sub_80E715C(u8 taskId);
static void sub_80E7324(u8 taskId);
static void sub_80E756C(u8 taskId);
-void sub_80E7630(u8 taskId);
+static void sub_80E7630(u8 taskId);
void sub_80E77D4(u8 taskId);
void *sub_80E77FC(s16 *asShort);
u8 sub_80E7810(void);
+void *sub_80E7820(u8);
void sub_80E7808(struct PlayerRecords *records, s16 *a1);
void sub_80E78C4(OldMan *, size_t, u8);
void sub_80E7948(void *, size_t, u8);
@@ -445,3 +446,47 @@ static void sub_80E756C(u8 taskId)
break;
}
}
+
+static void sub_80E7630(u8 taskId)
+{
+ struct Task *task;
+ u8 status;
+ u8 counter;
+ u8 i;
+ void *dest;
+ void *src;
+
+ task = &gTasks[taskId];
+ status = GetBlockReceivedStatus();
+ counter = 0;
+ if (status == sub_800A9D8())
+ {
+ for (i = 0; i < GetLinkPlayerCount(); i ++)
+ {
+ if ((status >> i) & 0x01)
+ {
+ dest = sub_80E77FC(&task->data[5]) + task->data[i + 1] * 200 + gUnknown_0300115C * i;
+ src = sub_80E7820(i);
+ if ((task->data[i + 1] + 1) * 200 > gUnknown_0300115C)
+ {
+ memcpy(dest, src, gUnknown_0300115C - task->data[i + 1] * 200);
+ }
+ else
+ {
+ memcpy(dest, src, 200);
+ }
+ ResetBlockReceivedFlag(i);
+ task->data[i + 1] ++;
+ if (task->data[i + 1] == gUnknown_0300115C / 200 + 1)
+ {
+ counter ++;
+ }
+ }
+ }
+ gTasks[task->data[0]].data[0] ++;
+ }
+ if (counter == GetLinkPlayerCount())
+ {
+ DestroyTask(taskId);
+ }
+}