summaryrefslogtreecommitdiff
path: root/arm9/src/unk_0201C6B4.c
blob: 151a9cd6da4e38f1921300cb7b1381660fea4fea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "global.h"
#include "unk_0201C6B4.h"

THUMB_FUNC s32 FUN_0201C6B4(s8 * r0)
{
    s32 r2 = 0;
    while(r0[r2] != 0)
    {
        r2++;
    }
    return r2;
}

THUMB_FUNC s8 * FUN_0201C6C8(s8 * r0, s8 * r1, s8 r2)
{
    for(int r3 = 0; r3 < 0x100; r3++)
    {
        r1[r3] = r0[r3];
        if(r2 == r0[r3] || r0[r3] == 0)
        {
            r1[r3] = 0;
            if(r2 == 0xd && r0[r3 + 1] == 0xa)
            {
                return &r0[r3 + 2];
            }
            return &r0[r3 + 1];
        }
    }
    return NULL;
}

THUMB_FUNC s32 FUN_0201C70C(s8 * r4)
{
    s32 unk0 = FUN_0201C6B4(r4);
    s32 r3;
    s32 r5 = 1;
    s32 r6 = 0;
    for(r3 = unk0 - 1; r3 >= 0; r3--)
    {
        if(r4[r3] >= 0x30 && r4[r3] <= 0x39)
        {
            r6 += (r4[r3] - 0x30) * r5;
        }
        else
        {
            if(r3 == 0)
            {
                if(r4[r3] == 0x2d)
                {
                    r6 *= -1;
                }
            }
            else
            {
                return -1;
            }
        }
        r5 *= 0xa;
    }
    return r6;
}

THUMB_FUNC void FUN_0201C750(s8 * r5, s8 * r4)
{
    for(u8 r2 = 0; r2 < 4; r2++)
    {
        s32 * unk5 = (s32 *)r5;
        unk5[r2] = 0;
    }
    u8 r0 = (u8)(FUN_0201C6B4(r4));
    for(u8 r2 = 0; r2 < r0; r2++)
    {
        r5[r2] = r4[r2];
    }
}

THUMB_FUNC BOOL FUN_0201C78C(u32 r0)
{
    return r0 < 0x121;
}