pokeplatinum/include/record_mixed_rng.h
2026-01-30 14:37:51 -07:00

58 lines
2.6 KiB
C

#ifndef POKEPLATINUM_RECORD_MIXED_RNG_H
#define POKEPLATINUM_RECORD_MIXED_RNG_H
#include "constants/string.h"
#include "charcode.h"
#include "savedata.h"
#include "string_gf.h"
enum RecordMixedRNGEntry {
RECORD_MIXED_RNG_PLAYER_ORIGINAL,
RECORD_MIXED_RNG_PLAYER_OVERRIDE,
RECORD_MIXED_RNG_QUEUE_0,
RECORD_MIXED_RNG_QUEUE_1,
RECORD_MIXED_RNG_QUEUE_2,
RECORD_MIXED_RNG_QUEUE_3,
RECORD_MIXED_RNG_MAX,
};
enum RecordMixedRNGName {
RECORD_MIXED_RNG_GROUP_NAME,
RECORD_MIXED_RNG_PLAYER_NAME,
};
typedef struct RecordMixedRNG {
charcode_t groupName[UNION_GROUP_NAME_LEN + 1];
charcode_t playerName[TRAINER_NAME_LEN + 1];
u8 gender;
u8 language;
u16 dummy;
u32 seed;
u32 rand;
} RecordMixedRNG;
int RecordMixedRNG_SaveSize();
RecordMixedRNG *SaveData_GetRecordMixedRNG(SaveData *saveData);
void RecordMixedRNG_CopyEntry(RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry srcEntry, enum RecordMixedRNGEntry destEntry);
void RecordMixedRNG_Init(RecordMixedRNG *rngCollection);
void RecordMixedRNG_AdvanceEntries(RecordMixedRNG *rngCollection, u32 stepCount);
u32 RecordMixedRNG_GetEntrySeed(RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry);
void RecordMixedRNG_SetEntrySeed(RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry, u32 seed);
u32 RecordMixedRNG_GetRand(RecordMixedRNG *rngCollection);
const charcode_t *RecordMixedRNG_GetEntryName(const RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry, enum RecordMixedRNGName nameChoice);
void RecordMixedRNG_GetEntryNameAsString(RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry, enum RecordMixedRNGName nameChoice, String *outString);
void RecordMixedRNG_SetEntryGender(RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry, int gender);
int RecordMixedRNG_GetEntryGender(const RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry);
int RecordMixedRNG_GetEntryLanguage(const RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry);
void RecordMixedRNG_SetEntryLanguage(RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry, int language);
BOOL RecordMixedRNG_IsEntryValid(const RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry);
BOOL RecordMixedRNG_IsEntryEqualToOverride(const RecordMixedRNG *rngCollection, enum RecordMixedRNGEntry entry);
BOOL RecordMixedRNG_DoesCollectionContainGroup(const RecordMixedRNG *rngCollection, const charcode_t *groupName);
BOOL RecordMixedRNG_IsEntryEmpty(const RecordMixedRNG *entry);
BOOL RecordMixedRNG_AreEntriesEqual(const RecordMixedRNG *entry1, const RecordMixedRNG *entry2);
#endif // POKEPLATINUM_RECORD_MIXED_RNG_H