summaryrefslogtreecommitdiff
path: root/include/player_data.h
blob: 132eb6ae84f7d1e496f6bdc04dfbca241ba189c0 (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
81
#ifndef POKEDIAMOND_PLAYER_DATA_H
#define POKEDIAMOND_PLAYER_DATA_H

#include "options.h"
#include "igt.h"
#include "string16.h"

struct SaveBlock2;

typedef enum
{
    Male = 0,
    Female = 1
} GenderEnum;

struct PlayerData
{
    /* 0x00 */ u16 playerName[OT_NAME_LENGTH + 1];
    /* 0x10 */ u32 playerId;
    /* 0x14 */ u32 money;
    /* 0x18 */ u8 gender;
    /* 0x19 */ u8 language;
    /* 0x1A */ u8 badges;
    /* 0x1B */ u8 avatar;
    /* 0x1C */ u8 version;
    /* 0x1D */ u8 gameCleared:1;
               u8 nationalDex:1;
               u8 field_1D_pad:6;
    /* 0x1E */ u8 padding_1E[2];
};

struct PlayerDataSav
{
    struct Options options;
    u8 padding[2];
    struct PlayerData data;
    u16 coins;
    struct IGT igt;
    u8 padding2[2];
};

u32 Sav2_PlayerData_sizeof(void);
void Sav2_PlayerData_init(struct PlayerDataSav * pds);
struct PlayerData * Sav2_PlayerData_GetProfileAddr(struct SaveBlock2 * sav2);
struct Options * Sav2_PlayerData_GetOptionsAddr(struct SaveBlock2 * sav2);
u16 * Sav2_PlayerData_GetCoinsAddr(struct SaveBlock2 * sav2);
struct IGT * Sav2_PlayerData_GetIGTAddr(struct SaveBlock2 * sav2);
u32 PlayerProfile_sizeof(void);
struct PlayerData * PlayerProfile_new(u32 heap_id);
void PlayerProfile_Copy(const struct PlayerData * src, struct PlayerData * dest);
void PlayerProfile_init(struct PlayerData * data);
void CopyPlayerName(u16 * dest, struct PlayerData * data);
void PlayerName_StringToFlat(struct PlayerData * data, struct String * str);
u16 * PlayerProfile_GetNamePtr(struct PlayerData * data);
void PlayerName_FlatToString(struct PlayerData * data, struct String * str);
struct String * PlayerProfile_GetPlayerName_NewString(struct PlayerData * data, u32 heap_id);
void PlayerProfile_SetTrainerID(struct PlayerData * data, u32 otid);
u32 PlayerProfile_GetTrainerID(struct PlayerData * data);
u16 PlayerProfile_GetTrainerID_VisibleHalf(struct PlayerData * data);
void PlayerProfile_SetTrainerGender(struct PlayerData * data, GenderEnum gender);
GenderEnum PlayerProfile_GetTrainerGender(struct PlayerData * data);
BOOL PlayerProfile_TestBadgeFlag(struct PlayerData * data, u32 badgeno);
void PlayerProfile_SetBadgeFlag(struct PlayerData * data, u32 badgeno);
u32 PlayerProfile_CountBadges(struct PlayerData * data);
u32 PlayerProfile_GetMoney(struct PlayerData * data);
u32 PlayerProfile_SetMoney(struct PlayerData * data, u32 amount);
u8 PlayerProfile_GetAvatar(struct PlayerData * data);
void PlayerProfile_SetAvatar(struct PlayerData * data, u8 avatar);
u32 PlayerProfile_AddMoney(struct PlayerData * data, u32 amount);
u32 PlayerProfile_SubMoney(struct PlayerData * data, u32 amount);
u8 PlayerProfile_GetVersion(struct PlayerData * data);
void PlayerProfile_SetVersion(struct PlayerData * data, u8 a1);
u8 PlayerProfile_GetLanguage(struct PlayerData * data);
void PlayerProfile_SetLanguage(struct PlayerData * data, u8 language);
void PlayerProfile_SetGameClearFlag(struct PlayerData * data);
BOOL PlayerProfile_GetGameClearFlag(struct PlayerData * data);
void PlayerProfile_SetNatDexFlag(struct PlayerData * data);
BOOL PlayerProfile_GetNatDexFlag(struct PlayerData * data);
BOOL PlayerProfile_NameAndOTIDMatchPlayer(struct PlayerData * a, struct PlayerData * b);

#endif //POKEDIAMOND_PLAYER_DATA_H