pokeheartgold/include/player_data.h
2025-07-25 18:13:43 -04:00

74 lines
2.8 KiB
C

#ifndef POKEHEARTGOLD_PLAYER_DATA_H
#define POKEHEARTGOLD_PLAYER_DATA_H
#include "coins.h"
#include "igt.h"
#include "options.h"
#include "pm_string.h"
#include "save.h"
#define MAX_MONEY 999999
typedef struct PlayerProfile {
u16 name[PLAYER_NAME_LENGTH + 1];
u32 id;
u32 money;
u8 gender;
u8 language;
u8 johtoBadges;
u8 avatar;
u8 version;
u8 gameClear : 1;
u8 natDex : 1;
u8 dummy;
u8 kantoBadges;
} PlayerProfile;
typedef struct PLAYERDATA {
Options options;
PlayerProfile profile;
u16 coins;
IGT igt;
} PLAYERDATA;
u32 Save_PlayerData_sizeof(void);
void Save_PlayerData_Init(PLAYERDATA *player);
PlayerProfile *Save_PlayerData_GetProfile(SaveData *saveData);
Options *Save_PlayerData_GetOptionsAddr(SaveData *saveData);
u16 *Save_PlayerData_GetCoinsAddr(SaveData *saveData);
IGT *Save_PlayerData_GetIGTAddr(SaveData *saveData);
u32 PlayerProfile_sizeof(void);
PlayerProfile *PlayerProfile_New(enum HeapID heapID);
void PlayerProfile_Copy(const PlayerProfile *src, PlayerProfile *dest);
void PlayerProfile_Init(PlayerProfile *profile);
BOOL PlayerProfile_IsNameEmpty(PlayerProfile *profile);
void Save_Profile_PlayerName_Set(PlayerProfile *profile, u16 *name);
void PlayerName_StringToFlat(PlayerProfile *profile, String *str);
const u16 *PlayerProfile_GetNamePtr(const PlayerProfile *profile);
void PlayerName_FlatToString(PlayerProfile *profile, String *str);
String *PlayerProfile_GetPlayerName_NewString(PlayerProfile *profile, enum HeapID heapID);
void PlayerProfile_SetTrainerID(PlayerProfile *profile, u32 id);
u32 PlayerProfile_GetTrainerID(PlayerProfile *profile);
u16 PlayerProfile_GetTrainerID_VisibleHalf(PlayerProfile *profile);
void PlayerProfile_SetTrainerGender(PlayerProfile *profile, int gender);
u32 PlayerProfile_GetTrainerGender(PlayerProfile *profile);
BOOL PlayerProfile_TestBadgeFlag(PlayerProfile *profile, s32 badge_no);
void PlayerProfile_SetBadgeFlag(PlayerProfile *profile, s32 badge_no);
s32 PlayerProfile_CountBadges(PlayerProfile *profile);
u32 PlayerProfile_GetMoney(PlayerProfile *profile);
u32 PlayerProfile_SetMoney(PlayerProfile *profile, u32 amount);
u8 PlayerProfile_GetAvatar(PlayerProfile *profile);
void PlayerProfile_SetAvatar(PlayerProfile *profile, u8 avatar);
u32 PlayerProfile_AddMoney(PlayerProfile *profile, u32 amount);
u32 PlayerProfile_SubMoney(PlayerProfile *profile, u32 amount);
u8 PlayerProfile_GetVersion(PlayerProfile *profile);
void PlayerProfile_SetVersion(PlayerProfile *profile, u8 version);
u32 sub_02029084(void);
u8 PlayerProfile_GetLanguage(PlayerProfile *profile);
void PlayerProfile_SetLanguage(PlayerProfile *profile, u8 language);
void PlayerProfile_SetGameClearFlag(PlayerProfile *profile);
BOOL PlayerProfile_GetGameClearFlag(PlayerProfile *profile);
void PlayerProfile_SetNatDexFlag(PlayerProfile *profile);
#endif // POKEHEARTGOLD_PLAYER_DATA_H