#ifndef POKEPLATINUM_OV5_021D37AC_H
#define POKEPLATINUM_OV5_021D37AC_H

#include "overlay005/struct_ov5_021D3CAC_decl.h"
#include "overlay005/struct_ov5_021D3CE4_decl.h"
#include "overlay005/struct_ov5_021D41B4_decl.h"

#include <nnsys.h>

UnkStruct_ov5_021D3CAC * ov5_021D38B8(void);
UnkStruct_ov5_021D3CE4 * ov5_021D3978(const int param0, const int param1, const int param2, const int param3, const BOOL param4, const BOOL param5, const BOOL param6, NNSG3dResMdl * param7, NNSG3dResTex * param8, UnkStruct_ov5_021D3CAC * param9);
void ov5_021D3A50(const int param0, NNSG3dResMdl * param1, NNSG3dResTex * param2, UnkStruct_ov5_021D3CAC * param3);
BOOL ov5_021D3B24(const int param0, const int param1, const BOOL param2, NNSG3dRenderObj * param3, UnkStruct_ov5_021D3CAC * param4);
BOOL ov5_021D3BE4(const int param0, NNSG3dRenderObj * param1, UnkStruct_ov5_021D3CAC * param2);
void ov5_021D3CAC(UnkStruct_ov5_021D3CAC * param0);
void ov5_021D3CE4(UnkStruct_ov5_021D3CE4 * param0, UnkStruct_ov5_021D3CAC * param1);
void ov5_021D3D18(UnkStruct_ov5_021D3CAC * param0, NNSG3dRenderObj * param1, const int param2, const int param3);
void ov5_021D3D7C(UnkStruct_ov5_021D3CAC * param0);
UnkStruct_ov5_021D3CE4 * ov5_021D3DA0(const int param0, UnkStruct_ov5_021D3CAC * param1);
UnkStruct_ov5_021D3CE4 * ov5_021D3DE4(const int param0, const int param1, UnkStruct_ov5_021D3CAC * param2);
void ov5_021D3E40(UnkStruct_ov5_021D3CE4 * param0, const BOOL param1);
void ov5_021D3E44(UnkStruct_ov5_021D3CE4 * param0);
BOOL ov5_021D3E4C(UnkStruct_ov5_021D3CE4 * param0);
void ov5_021D3E7C(UnkStruct_ov5_021D3CE4 * param0);
void ov5_021D3E9C(UnkStruct_ov5_021D3CE4 * param0);
void ov5_021D3EBC(UnkStruct_ov5_021D3CE4 * param0);
void ov5_021D3F04(UnkStruct_ov5_021D3CE4 * param0, const BOOL param1);
void ov5_021D3F08(UnkStruct_ov5_021D3CE4 * param0, const int param1);
void ov5_021D3F0C(UnkStruct_ov5_021D3CE4 * param0, const int param1);
void ov5_021D3F10(UnkStruct_ov5_021D3CAC * param0);
BOOL ov5_021D3F70(const UnkStruct_ov5_021D3CE4 * param0);
u16 ov5_021D3F84(UnkStruct_ov5_021D3CAC * param0);
const u8 ov5_021D3F94(UnkStruct_ov5_021D3CAC * param0, const int param1);
UnkStruct_ov5_021D41B4 * ov5_021D4194(void);
void ov5_021D41B4(UnkStruct_ov5_021D41B4 ** param0);
void ov5_021D41C8(UnkStruct_ov5_021D3CAC * param0, UnkStruct_ov5_021D41B4 * const param1, const int param2, const int param3, NNSG3dRenderObj * param4, NNSG3dResMdl * param5, NNSG3dResTex * param6, const int param7, const u8 param8, const BOOL param9);
void ov5_021D4220(UnkStruct_ov5_021D41B4 * const param0, const int param1, const u8 param2, NNSG3dRenderObj * param3);
void ov5_021D4250(UnkStruct_ov5_021D41B4 * const param0, const int param1, const int param2);
void ov5_021D4278(UnkStruct_ov5_021D41B4 * const param0, const int param1, const int param2, const int param3);
void ov5_021D42B0(UnkStruct_ov5_021D3CAC * param0, UnkStruct_ov5_021D41B4 * param1, const int param2);
UnkStruct_ov5_021D3CE4 * ov5_021D42D8(UnkStruct_ov5_021D41B4 * const param0, const int param1);
const BOOL ov5_021D42F0(UnkStruct_ov5_021D41B4 * const param0, const int param1);
const int ov5_021D4310(UnkStruct_ov5_021D41B4 * const param0, const int param1);

#endif // POKEPLATINUM_OV5_021D37AC_H
