summaryrefslogtreecommitdiff
path: root/src/friend_area_1.c
blob: c7dee3f7dbfc22aaedd65c552a81c887b2dabe37 (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
#include "global.h"
#include "constants/friend_area.h"
#include "code_8092334.h"

extern bool8 *gFriendAreas;

u32 SaveFriendAreas(u8 *r0, u32 size)
{
    struct unkStruct_8094924 unk;
    u32 temp;
    s32 counter;

    xxx_init_struct_8094924_save_809486C(&unk, r0, size);
    for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
    {
        if(gFriendAreas[counter] != 0)
            temp = -1;
        else
            temp = 0;
        SaveIntegerBits(&unk, (u8*)&temp, 1);
    }
    nullsub_102(&unk);
    return unk.unk8;
}

u32 ReadSavedFriendAreas(u8 *r0, s32 size)
{
    struct unkStruct_8094924 unk;
    u32 temp;
    s32 counter;

    xxx_init_struct_8094924_restore_809485C(&unk, r0, size);
    for(counter = 0; counter < NUM_FRIEND_AREAS; counter++)
    {
        RestoreIntegerBits(&unk, &temp, 1);
        // It's setting whether we have the friend area or not
        if(temp & 1)
            gFriendAreas[counter] = 1;
        else
            gFriendAreas[counter] = 0;
    }
    nullsub_102(&unk);
    return unk.unk8;
}