summaryrefslogtreecommitdiff
path: root/arm9/src/unk_02087A1C.c
blob: f20707adaa7b9f5f30f73a9839ccea961fd5c14c (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
#include "global.h"
#include "constants/species.h"
#include "unk_02087A1C.h"

#pragma thumb on

struct MeisterRodata
{
    u16 species[14];
    u8 languages[6];
};

static const struct MeisterRodata sMeister = {
    {
        SPECIES_EKANS,
        SPECIES_PIKACHU,
        SPECIES_PSYDUCK,
        SPECIES_PONYTA,
        SPECIES_STARYU,
        SPECIES_MAGIKARP,
        SPECIES_WOBBUFFET,
        SPECIES_HERACROSS,
        SPECIES_SNEASEL,
        SPECIES_TEDDIURSA,
        SPECIES_HOUNDOUR,
        SPECIES_WINGULL,
        SPECIES_SLAKOTH,
        SPECIES_ROSELIA
    },
    {
        LANGUAGE_JAPANESE,
        LANGUAGE_ENGLISH,
        LANGUAGE_FRENCH,
        LANGUAGE_GERMAN,
        LANGUAGE_ITALIAN,
        LANGUAGE_SPANISH
    }
};

s32 GetMeisterLanguageIdx(u32 language)
{
    s32 i;
    const u8 * ptr = sMeister.languages;
    for (i = 0; i < 6; i++, ptr++)
    {
        if (language == *ptr)
            break;
    }
    return i;
}

u8 GetMeisterLanguage(s32 idx)
{
    GF_ASSERT(idx < 6);
    const u8 * ptr = sMeister.languages;
    return ptr[idx];
}

s32 GetMeisterSpeciesIdx(u32 species)
{
    s32 i;
    const u16 * ptr = sMeister.species;
    for (i = 0; i < 14; i++, ptr++)
    {
        if (species == *ptr)
            break;
    }
    return i;
}