#ifndef POKEPLATINUM_OV5_021E15F4_H
#define POKEPLATINUM_OV5_021E15F4_H

#include "struct_decls/struct_02006C24_decl.h"
#include "overlay005/struct_ov5_021D3CAC_decl.h"
#include "overlay005/struct_ov5_021D5894.h"
#include "overlay005/struct_ov5_021E1608_decl.h"
#include "overlay005/struct_ov5_021E1890_decl.h"
#include "overlay005/struct_ov5_021EF76C_decl.h"

#include <nnsys.h>
#include <nitro/fx/fx.h>

UnkStruct_ov5_021E1608 * ov5_021E15F4(const u8 param0);
void ov5_021E1608(UnkStruct_ov5_021E1608 * param0);
void ov5_021E1610(UnkStruct_ov5_021E1608 * param0);
void ov5_021E1674(const int param0, UnkStruct_ov5_021E1608 * param1);
void ov5_021E16CC(NARC * param0, const int param1, UnkStruct_ov5_021EF76C * const param2, UnkStruct_ov5_021E1608 * param3, UnkStruct_ov5_021D3CAC * param4);
void ov5_021E17CC(const VecFx32 * param0, const UnkStruct_ov5_021EF76C * param1, const BOOL param2, UnkStruct_ov5_021D5894 * const param3, UnkStruct_ov5_021E1608 * param4);
VecFx32 * ov5_021E1890(UnkStruct_ov5_021E1890 * param0);
VecFx32 ov5_021E1894(const UnkStruct_ov5_021E1890 * param0);
void ov5_021E18A4(UnkStruct_ov5_021E1890 * param0, const VecFx32 * param1);
void ov5_021E18B4(UnkStruct_ov5_021E1890 * param0, const BOOL param1);
int ov5_021E18B8(const UnkStruct_ov5_021E1890 * param0);
NNSG3dRenderObj * ov5_021E18BC(const UnkStruct_ov5_021E1890 * param0);
NNSG3dResMdl * ov5_021E18C0(const UnkStruct_ov5_021E1890 * param0);
UnkStruct_ov5_021E1890 * ov5_021E18C4(UnkStruct_ov5_021E1608 * param0, const u8 param1);
UnkStruct_ov5_021E1890 * ov5_021E18CC(UnkStruct_ov5_021E1608 * param0, const int param1);
UnkStruct_ov5_021E1890 * ov5_021E18E0(UnkStruct_ov5_021E1608 * param0, const int param1);
u8 ov5_021E19CC(UnkStruct_ov5_021E1608 * param0, UnkStruct_ov5_021EF76C * const param1, const int param2, const VecFx32 * param3, const VecFx32 * param4, UnkStruct_ov5_021D3CAC * param5);
void ov5_021E1A6C(UnkStruct_ov5_021E1608 * param0, UnkStruct_ov5_021EF76C * const param1);

#endif // POKEPLATINUM_OV5_021E15F4_H
