#ifndef POKEPLATINUM_OV104_0223C2D4_H
#define POKEPLATINUM_OV104_0223C2D4_H

#include "struct_decls/struct_0209B75C_decl.h"

#include "overlay063/struct_ov63_0222BEC0_decl.h"
#include "overlay063/struct_ov63_0222CE44.h"
#include "overlay104/struct_ov104_0223C4CC_decl.h"
#include "overlay104/struct_ov104_0223C634.h"
#include "overlay104/struct_ov104_0223C688.h"
#include "overlay104/struct_ov104_0223D570.h"

#include "sprite_system.h"

UnkStruct_ov104_0223C4CC *ov104_0223C2D4(UnkStruct_0209B75C *param0);
void ov104_0223C4CC(UnkStruct_ov104_0223C4CC *param0);
void ov104_0223C634(UnkStruct_ov104_0223C4CC *param0);
void ov104_0223C688(UnkStruct_ov104_0223C4CC *param0);
void ov104_0223D0EC(UnkStruct_ov104_0223C4CC *param0, const UnkStruct_ov104_0223C688 *param1);
void ov104_0223D148(UnkStruct_ov104_0223C4CC *param0, int param1);
UnkStruct_ov63_0222BEC0 *ov104_0223D180(UnkStruct_ov104_0223C4CC *param0, const UnkStruct_ov104_0223D570 *param1, int param2);
void ov104_0223D200(UnkStruct_ov104_0223C4CC *param0, UnkStruct_ov63_0222BEC0 *param1);
void ov104_0223D258(UnkStruct_ov104_0223C4CC *param0, u16 param1, UnkStruct_ov63_0222BEC0 **param2, UnkStruct_ov63_0222CE44 **param3);
void ov104_0223D29C(UnkStruct_ov104_0223C4CC *param0, u16 param1);
void ov104_0223D2CC(UnkStruct_ov104_0223C4CC *param0, u16 param1);
ManagedSprite *ov104_0223D2FC(UnkStruct_ov104_0223C4CC *param0, u16 param1, u16 param2);
void ov104_0223D348(UnkStruct_ov104_0223C4CC *param0, u16 param1);
ManagedSprite *ov104_0223D370(UnkStruct_ov104_0223C4CC *param0, u16 param1);
void ov104_0223D378(UnkStruct_ov104_0223C4CC *param0, u16 param1, int param2);
u32 ov104_0223D3A4(UnkStruct_ov104_0223C4CC *param0, u16 param1);
void ov104_0223D554(UnkStruct_ov104_0223C4CC *param0, s16 *param1, s16 *param2);
UnkStruct_ov104_0223C634 *ov104_0223D5A8(UnkStruct_0209B75C *param0, int param1);

#endif // POKEPLATINUM_OV104_0223C2D4_H
