mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 15:46:18 -05:00
64 lines
1.8 KiB
C
64 lines
1.8 KiB
C
#ifndef GUARD_EXCLUSIVE_POKEMON_H
|
|
#define GUARD_EXCLUSIVE_POKEMON_H
|
|
|
|
#include "constants/cutscenes.h"
|
|
#include "constants/tutorial_id.h"
|
|
#include "data_serializer.h"
|
|
|
|
#define NUM_EXCLUSIVE_POKEMON 12
|
|
|
|
// Size: 0x4
|
|
struct ExclusivePokemon
|
|
{
|
|
/* 0x0 */ s16 poke_id;
|
|
/* 0x2 */ bool8 in_rrt; // red rescue team
|
|
/* 0x3 */ bool8 in_brt; // blue rescue team
|
|
};
|
|
|
|
typedef struct ExclusivePokemonData
|
|
{
|
|
/* 0x00 */ bool8 unk0; // Initialized?
|
|
/* 0x04 */ u32 monSeenFlags[MONSTER_FLAGS_U32STORAGE];
|
|
/* 0x3C */ u32 cutsceneFlags[CUTSCENE_FLAGS_U32STORAGE];
|
|
/* 0x48 */ u32 tempCutsceneFlags[CUTSCENE_FLAGS_U32STORAGE];
|
|
/* 0x54 */ u32 tutorialFlags[TUTORIAL_FLAGS_U32STORAGE];
|
|
/* 0x58 */ bool8 exclusives[NUM_EXCLUSIVE_POKEMON];
|
|
} ExclusivePokemonData;
|
|
|
|
#define RED_EXCLUSIVE(species) \
|
|
{ \
|
|
.poke_id = species, \
|
|
.in_rrt = TRUE, \
|
|
.in_brt = FALSE, \
|
|
}
|
|
|
|
#define BLUE_EXCLUSIVE(species) \
|
|
{ \
|
|
.poke_id = species, \
|
|
.in_rrt = FALSE, \
|
|
.in_brt = TRUE, \
|
|
}
|
|
|
|
extern ExclusivePokemonData *gExclusiveMonPtr;
|
|
|
|
void LoadExclusivePokemon(void);
|
|
ExclusivePokemonData *GetExclusivePokemon(void);
|
|
void InitializeExclusivePokemon(void);
|
|
void SetTempCutsceneFlag(u8 flag);
|
|
void SetCutsceneFlag(u8 flag);
|
|
void FlushTempCutsceneFlags(void);
|
|
void UnsetCutsceneFlag(u8 flag);
|
|
void ClearTempCutsceneFlags(void);
|
|
bool8 sub_80980A4(void);
|
|
void SetMonSeenFlag(s16 monID);
|
|
bool8 GetCutsceneFlag(u8 flag);
|
|
bool8 GetMonSeenFlag(s16 monID);
|
|
void SetTutorialFlag(s32 flag);
|
|
bool8 GetTutorialFlag(s32 flag);
|
|
bool8 IsExclusivePokemonUnlocked(s32 pokeID);
|
|
void UnlockExclusivePokemon(s16 pokeID);
|
|
void WriteExclusivePokemon(DataSerializer *r0);
|
|
void ReadExclusivePokemon(DataSerializer *r0);
|
|
|
|
#endif // GUARD_EXCLUSIVE_POKEMON_H
|