diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-02 10:19:02 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-12-02 10:19:02 -0500 |
commit | c282e4fa59bc88e874aa5056a3e57fc35b3fefe5 (patch) | |
tree | a4c8c1fc297d291c98b4808bb919ad4095b0d4f6 /src | |
parent | e2244831a77723a1a565b8df24dda3ade00f584f (diff) |
sub_800DBF8
Diffstat (limited to 'src')
-rw-r--r-- | src/link_rfu.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/link_rfu.c b/src/link_rfu.c index 63776a298..608a6bdd3 100644 --- a/src/link_rfu.c +++ b/src/link_rfu.c @@ -1,6 +1,7 @@ // Includes #include "global.h" +#include "rng.h" #include "link.h" #include "librfu.h" #include "link_rfu.h" @@ -1665,3 +1666,65 @@ void sub_800DB18(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2) q1->unk_203 = 1; } } + +bool8 sub_800DB84(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2) +{ + int i; + + if (q1->unk_200 == q1->unk_201 || q1->unk_203) + { + return FALSE; + } + for (i = 0; i < 256; i++) + { + q2[i] = q1->unk_00[q1->unk_201][i]; + } + q1->unk_201++; + q1->unk_201 %= 2; + q1->unk_202--; + return TRUE; +} + +void sub_800DBF8(struct UnkRfuStruct_Sub_Unused2 *q1, u8 mode) +{ + int i; + u8 rval; + u16 r5 = 0; + switch (mode) + { + case 0: + for (i = 0; i < 200; i++) + { + q1->unk_00[i] = i + 1; + r5 += i + 1; + } + *((u16 *)(q1->unk_00 + i)) = r5; + break; + case 1: + for (i = 0; i < 100; i++) + { + q1->unk_00[i] = i + 1; + r5 += i + 1; + } + *((u16 *)(q1->unk_00 + 200)) = r5; + break; + case 2: + for (i = 0; i < 200; i++) + { + rval = Random(); + q1->unk_00[i] = rval; + r5 += rval; + } + *((u16 *)(q1->unk_00 + i)) = r5; + break; + case 3: + for (i = 0; i < 200; i++) + { + q1->unk_00[i] = i + 1 + gUnknown_03000D74; + r5 += (i + 1 + gUnknown_03000D74) & 0xFF; + } + *((u16 *)(q1->unk_00 + i)) = r5; + gUnknown_03000D74++; + break; + } +} |