pokeheartgold/include/hall_of_fame.h
2024-08-30 17:46:38 -04:00

55 lines
1.4 KiB
C

#ifndef POKEHEARTGOLD_HALL_OF_FAME_H
#define POKEHEARTGOLD_HALL_OF_FAME_H
#include "party.h"
#include "pm_string.h"
#define NUM_HOF_RECORDS 30
typedef struct HOFMon {
/* 0x00 */ u16 species;
/* 0x02 */ u8 level;
/* 0x03 */ u8 form;
/* 0x04 */ u32 personality;
/* 0x08 */ u32 otid;
/* 0x0C */ u16 nickname[POKEMON_NAME_LENGTH + 1];
/* 0x22 */ u16 otname[PLAYER_NAME_LENGTH + 1];
/* 0x32 */ u16 moves[4];
/* 0x3A */ u8 padding[2];
} HOFMON;
typedef struct HOFParty {
HOFMON party[6];
u16 year;
u8 month;
u8 day;
} HOFTEAM;
typedef struct HallOfFame {
HOFTEAM parties[NUM_HOF_RECORDS];
u32 next_record;
u32 num_total;
} HallOfFame;
typedef struct HofDisplayMon {
String *nickname;
String *otname;
u32 personality;
u32 otid;
u16 species;
u8 level;
u8 form;
u16 moves[4];
} SHOW_HOFMON;
u32 Save_HOF_sizeof(void);
void Save_HOF_Init(HallOfFame *hof);
void Save_HOF_RecordParty(HallOfFame *hof, Party *party, RTCDate *date);
u32 Save_HOF_GetNumRecords(const HallOfFame *hallOfFame);
int Save_HOF_TranslateRecordIdx(const HallOfFame *hallOfFame, int num);
u32 Save_HOF_RecordCountMons(HallOfFame *hallOfFame, int num);
void Save_HOF_GetMonStatsByIndexPair(HallOfFame *hallOfFame, int teamNum, int monNum, SHOW_HOFMON *dest);
void Save_HOF_GetClearDate(HallOfFame *hof, int num, RTCDate *dest);
#endif // POKEHEARTGOLD_HALL_OF_FAME_H