pmd-red/include/exclusive_pokemon.h
2024-11-09 03:22:29 -05:00

64 lines
1.5 KiB
C

#ifndef GUARD_EXCLUSIVE_POKEMON_H
#define GUARD_EXCLUSIVE_POKEMON_H
#include "code_8092334.h"
#define NUM_EXCLUSIVE_POKEMON 12
struct ExclusivePokemon
{
s16 poke_id;
bool8 in_rrt; // red rescue team
bool8 in_brt; // blue rescue team
};
struct ExclusivePokemonData
{
u8 unk0;
u32 unk4[1];
u8 fill8[0x3C - 8];
u32 unk3C[1];
u8 fill40[8];
u32 unk48[3];
u32 unk54[1];
/* 0x58 */ bool8 Exclusives[NUM_EXCLUSIVE_POKEMON];
};
#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 struct ExclusivePokemonData *gUnknown_203B498;
void LoadExclusivePokemon(void);
struct ExclusivePokemonData *GetExclusivePokemon(void);
void InitializeExclusivePokemon(void);
void sub_8097FA8(u8 param_1);
void sub_8097FD0(u8 param_1);
void sub_8097FF8(void);
void sub_8098044(u8 param_1);
void sub_8098080(void);
u8 sub_80980A4(void);
void sub_80980B4(s16 pokeID);
bool8 sub_8098100(u8 param_1);
bool8 sub_8098134(s16 pokeID);
void SetTutorialFlag(s32 param_1);
bool32 GetTutorialFlag(s32 param_1);
bool8 IsExclusivePokemonUnlocked(s16 pokeID);
void UnlockExclusivePokemon(s16 pokeID);
void WriteExclusivePokemon(DataSerializer *r0);
void ReadExclusivePokemon(DataSerializer *r0);
#endif // GUARD_EXCLUSIVE_POKEMON_H