#ifndef POKEPLATINUM_OV62_02231690_H
#define POKEPLATINUM_OV62_02231690_H

#include "struct_decls/struct_0202F41C_decl.h"
#include "struct_defs/struct_0208B878.h"
#include "struct_defs/struct_0208C06C.h"

#include "overlay062/struct_ov62_022312B0.h"
#include "overlay062/struct_ov62_022323B8.h"
#include "overlay062/struct_ov62_02233310.h"
#include "overlay062/struct_ov62_0223359C.h"
#include "overlay062/struct_ov62_02233F74.h"
#include "overlay062/struct_ov62_0223CAA4.h"
#include "overlay062/struct_ov62_02248CDC.h"

#include "bg_window.h"
#include "message.h"
#include "narc.h"
#include "sprite_system.h"
#include "strbuf.h"

StringTemplate *ov62_02231690(u32 heapID);
int ov62_022316A0(UnkStruct_0208C06C *param0);
int ov62_022316D0(UnkStruct_0208C06C *param0);
int ov62_02231710(UnkStruct_0208C06C *param0, int param1);
void ov62_022317CC(UnkStruct_0208C06C *param0, int param1);
void ov62_022318E8(UnkStruct_0208C06C *param0);
u16 *ov62_Pokedex_Alphabetical(int heapID, int unused, int *pokedexLength);
void ov62_0223196C(UnkStruct_0208C06C *param0, BOOL param1);
BOOL ov62_02231974(UnkStruct_0208C06C *param0);
void ov62_0223197C(UnkStruct_0208C06C *param0, int param1);
void ov62_02231A1C(UnkStruct_0208C06C *param0);
void ov62_02231A88(UnkStruct_0208C06C *param0);
void ov62_02231AAC(UnkStruct_0208C06C *param0, int param1);
void ov62_02231B3C(UnkStruct_0208C06C *param0, int param1);
void ov62_02231B8C(UnkStruct_0208C06C *param0);
void ov62_02231BC4(UnkStruct_0208C06C *param0, int param1);
int ov62_02232234(int param0, int param1);
void ov62_02232378(UnkStruct_ov62_022323B8 *param0, UnkStruct_0208C06C *param1);
void ov62_02232394(UnkStruct_ov62_022323B8 *param0, UnkStruct_0208C06C *param1);
void ov62_022323B8(UnkStruct_ov62_022323B8 *param0, int param1);
void ov62_022324A0(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1, const UnkStruct_ov62_02248CDC *param2);
void ov62_02232594(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1, MessageLoader *param2, const UnkStruct_ov62_02248CDC *param3);
void ov62_02232778(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1, MessageLoader *param2, const UnkStruct_ov62_02248CDC *param3, int param4, int param5, Strbuf *param6);
void ov62_02232AAC(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1, const UnkStruct_ov62_02248CDC *param2, Strbuf *param3[20][2]);
int ov62_02232BB4(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1, Strbuf *param2[20][2]);
int ov62_02232C78(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1, int param2, int param3, Strbuf *param4);
int ov62_02232F68(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1);
int ov62_02233064(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1);
void ov62_022331C8(UnkStruct_ov62_02233310 *param0, s16 param1);
void ov62_022332AC(UnkStruct_ov62_02233310 *param0, s16 param1);
void ov62_022332FC(UnkStruct_ov62_02233310 *param0);
void ov62_02233310(UnkStruct_ov62_02233310 *param0);
void ov62_0223331C(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1, int param2);
void ov62_02233434(UnkStruct_ov62_02233310 *param0, s16 param1, s16 param2);
void ov62_02233454(UnkStruct_ov62_02233310 *param0);
void ov62_0223349C(UnkStruct_ov62_02233310 *param0);
void ov62_022334FC(UnkStruct_ov62_02233310 *param0, UnkStruct_0208C06C *param1);
void ov62_022335B0(UnkStruct_ov62_0223359C *param0, UnkStruct_0208C06C *param1);
void ov62_022335BC(UnkStruct_ov62_0223359C *param0, UnkStruct_0208C06C *param1, int param2);
void ov62_022335F4(UnkStruct_ov62_0223359C *param0);
void ov62_02233600(UnkStruct_ov62_0223359C *param0);
void ov62_02233608(UnkStruct_ov62_0223359C *param0, u32 param1);
void ov62_02233638(UnkStruct_ov62_0223359C *param0, UnkStruct_ov62_02233310 *param1);
void ov62_02233664(UnkStruct_ov62_0223359C *param0);
void ov62_02233704(UnkStruct_0208C06C *param0, u32 param1);
void ov62_0223371C(UnkStruct_0208C06C *param0);
void ov62_0223376C(UnkStruct_0208C06C *param0, int param1);
BOOL ov62_02233790(UnkStruct_0208C06C *param0);
void ov62_022337D4(UnkStruct_0208C06C *param0);
BOOL ov62_022337F0(UnkStruct_0208C06C *param0, int param1, u8 param2);
void ov62_0223381C(UnkStruct_0208C06C *param0, BOOL param1);
void ov62_02233828(void *param0, const UnkStruct_ov62_0223CAA4 *param1);
void ov62_022338A8(UnkStruct_0208C06C *param0);
void ov62_022339A0(UnkStruct_0208C06C *param0);
void ov62_022339DC(UnkStruct_0208C06C *param0);
void ov62_02233A44(UnkStruct_0208C06C *param0);
NARC *ov62_02233A68(int param0);
void ov62_02233A74(NARC *param0);
ManagedSprite *ov62_02233A7C(UnkStruct_0208C06C *param0, NARC *param1, int param2, int param3, int param4, int param5);
void ov62_02233B24(UnkStruct_0208C06C *param0, int param1, ManagedSprite *param2);
void ov62_02233B40(UnkStruct_0208C06C *param0, int param1, ManagedSprite *param2);
BOOL ov62_02233F94(UnkStruct_0202F41C *param0);
int ov62_02233FEC(UnkStruct_ov62_02233F74 *param0);
void ov62_02234214(UnkStruct_ov62_02233F74 *param0, UnkStruct_0208C06C *param1);
void ov62_02234228(UnkStruct_ov62_02233F74 *param0, UnkStruct_0208C06C *param1);
void ov62_0223427C(UnkStruct_ov62_02233F74 *param0, int param1);
int ov62_0223429C(Window *param0, Strbuf *param1);
void ov62_022342BC(UnkStruct_0208C06C *param0);
BOOL ov62_022342CC(UnkStruct_0208C06C *param0);
void ov62_02234314(void);
void ov62_02234358(UnkStruct_0208C06C *param0, UnkStruct_0208B878 *param1, s16 param2, s16 param3);
int ov62_0223438C(u64 param0);
void ov62_022343B8(UnkStruct_0208C06C *param0, int param1, int param2);
void ov62_02234520(UnkStruct_0208C06C *param0);
BOOL ov62_02234534(UnkStruct_0208C06C *param0);
void ov62_02234540(UnkStruct_0208C06C *param0, BOOL param1);
void ov62_0223454C(UnkStruct_0208C06C *param0, UnkStruct_ov62_022312B0 *param1, int param2, int param3, s16 param4, s16 param5, s16 param6, s16 param7, int param8, BOOL param9);
void ov62_022345A8(UnkStruct_ov62_022312B0 *param0);
int ov62_022345B8(UnkStruct_0208C06C *param0, int param1, int param2, int param3);
void ov62_022348B8(UnkStruct_0208C06C *param0, int param1, int param2, int param3);
void ov62_022348FC(UnkStruct_0208C06C *param0);
BOOL ov62_02234970(UnkStruct_0208C06C *param0, u64 param1);
void ov62_022349A8(UnkStruct_0208C06C *param0, Strbuf *param1);

#endif // POKEPLATINUM_OV62_02231690_H
