pokeplatinum/include/game_records.h

42 lines
1.4 KiB
C

#ifndef POKEPLATINUM_GAME_RECORDS_H
#define POKEPLATINUM_GAME_RECORDS_H
#include "pokedex.h"
#include "savedata.h"
#define NUM_U32_RECORDS 71
#define NUM_U16_RECORDS 77
#define TRAINER_SCORE_LIMIT 99999999
#define HIGH_LIMIT_U32 999999999
#define LOW_LIMIT_U32 999999
#define HIGH_LIMIT_U16 0xFFFF
#define LOW_LIMIT_U16 9999
typedef struct EncodingSeed {
u16 byteSum;
u16 modifier;
} EncodingSeed;
typedef struct GameRecords {
u32 recordsU32[NUM_U32_RECORDS];
u16 recordsU16[NUM_U16_RECORDS];
u16 padding; // this should be added by the compiler, but is needed to match
EncodingSeed seed;
} GameRecords;
GameRecords *SaveData_GetGameRecords(SaveData *saveData);
int GameRecords_SaveSize(void);
void GameRecords_Init(GameRecords *records);
u32 GameRecords_SetRecordValue(GameRecords *records, int id, u32 val);
u32 GameRecords_SetAndLimitRecordValue(GameRecords *records, int id, u32 val);
u32 GameRecords_IncrementRecordValue(GameRecords *records, int id);
u32 GameRecords_AddToRecordValue(GameRecords *records, int id, u32 toAdd);
u32 GameRecords_GetRecordValue(GameRecords *records, int id);
void GameRecords_IncrementTrainerScore(GameRecords *records, int scoreID);
u32 GameRecords_GetTrainerScore(GameRecords *records);
void GameRecords_IncrementTrainerScoreOnCatch(GameRecords *records, const Pokedex *pokedex, const u16 species);
#endif // POKEPLATINUM_GAME_RECORDS_H