#ifndef POKEPLATINUM_OV6_0223E140_H
#define POKEPLATINUM_OV6_0223E140_H

#include "field/field_system_decl.h"
#include "overlay005/struct_ov5_021D1BEC_decl.h"
#include "overlay006/struct_ov6_0223FDE4_decl.h"
#include "overlay006/struct_ov6_02240000_decl.h"
#include "overlay006/struct_ov6_022400A8_decl.h"
#include "overlay006/struct_ov6_022401B8_decl.h"
#include "overlay006/struct_ov6_02240774_decl.h"
#include "overlay006/struct_ov6_02240A00_decl.h"
#include "overlay006/struct_ov6_02240C44_decl.h"

#include "camera.h"
#include "field_task.h"

void ov6_0223E384(FieldTask *param0);
void ov6_0223E4EC(FieldTask *param0);
UnkStruct_ov5_021D1BEC *ov6_0223E6EC(FieldSystem *fieldSystem);
void ov6_0223E700(UnkStruct_ov5_021D1BEC *param0);
BOOL ov6_0223E708(UnkStruct_ov5_021D1BEC *param0);
UnkStruct_ov5_021D1BEC *ov6_0223E814(FieldSystem *fieldSystem);
void ov6_0223E828(UnkStruct_ov5_021D1BEC *param0);
UnkStruct_ov5_021D1BEC *ov6_0223EA74(FieldSystem *fieldSystem, u32 param1);
UnkStruct_ov5_021D1BEC *ov6_0223FCCC(FieldSystem *fieldSystem);
void ov6_0223FCE0(UnkStruct_ov5_021D1BEC *param0);
void ov6_0223FCE8(UnkStruct_ov5_021D1BEC *param0);
u32 ov6_0223FCF4(UnkStruct_ov5_021D1BEC *param0);
void ov6_0223FE08(UnkStruct_ov6_0223FDE4 *param0);
void ov6_0223FE1C(UnkStruct_ov6_0223FDE4 *param0, fx32 param1, fx32 param2, u32 param3, u32 param4, Camera *camera);
void ov6_0223FE9C(UnkStruct_ov6_0223FDE4 *param0);
BOOL ov6_0223FF6C(UnkStruct_ov6_0223FDE4 *param0);
u32 ov6_0223FFF4(const UnkStruct_ov6_0223FDE4 *param0);
fx32 ov6_0223FFF8(const UnkStruct_ov6_0223FDE4 *param0);
void ov6_0223FFFC(UnkStruct_ov6_0223FDE4 *param0, fx32 param1);
void ov6_02240000(UnkStruct_ov6_02240000 *param0, u32 param1, u32 param2, u32 param3);
int ov6_02240060(const UnkStruct_ov6_02240000 *param0);
UnkStruct_ov6_022400A8 *ov6_02240074(FieldSystem *fieldSystem);
void ov6_022400A8(UnkStruct_ov6_022400A8 *param0);
void ov6_022400C4(UnkStruct_ov6_022400A8 *param0);
UnkStruct_ov6_022401B8 *ov6_02240104(u32 heapID, FieldSystem *fieldSystem);
void ov6_022401B8(UnkStruct_ov6_022401B8 *param0);
void ov6_022401D0(UnkStruct_ov6_022401B8 *param0, u32 param1);
BOOL ov6_02240214(UnkStruct_ov6_022401B8 *param0);
void ov6_02240228(UnkStruct_ov6_022401B8 *param0);
UnkStruct_ov6_02240774 *ov6_02240768(u32 heapID);
void ov6_02240774(UnkStruct_ov6_02240774 *param0);
void ov6_0224077C(UnkStruct_ov6_02240774 *param0, u16 param1, u16 param2, u16 param3);
void ov6_022407A8(UnkStruct_ov6_02240774 *param0);
void ov6_022407B0(UnkStruct_ov6_02240774 *param0);
UnkStruct_ov6_02240A00 *ov6_022409F4(u32 heapID);
void ov6_02240A00(UnkStruct_ov6_02240A00 *param0);
void ov6_02240A08(UnkStruct_ov6_02240A00 *param0);
void ov6_02240A10(UnkStruct_ov6_02240A00 *param0);
void ov6_02240A18(UnkStruct_ov6_02240A00 *param0, fx32 param1, fx32 param2, fx32 param3);
void ov6_02240A50(UnkStruct_ov6_02240A00 *param0, fx32 param1, fx32 param2, fx32 param3);
void ov6_02240A8C(UnkStruct_ov6_02240A00 *param0, fx32 param1, fx32 param2, fx32 param3);
UnkStruct_ov6_02240774 *ov6_02240AC8(u32 heapID);
void ov6_02240AD4(UnkStruct_ov6_02240774 *param0);
void ov6_02240ADC(UnkStruct_ov6_02240774 *param0);
void ov6_02240AE4(UnkStruct_ov6_02240774 *param0);
void ov6_02240AEC(UnkStruct_ov6_02240774 *param0, fx32 param1, fx32 param2, fx32 param3);
void ov6_02240B24(UnkStruct_ov6_02240774 *param0, fx32 param1, fx32 param2, fx32 param3);
void ov6_02240B60(UnkStruct_ov6_02240774 *param0, fx32 param1, fx32 param2, fx32 param3);
UnkStruct_ov6_02240C44 *ov6_02240B9C(u32 heapID, FieldSystem *fieldSystem);
void ov6_02240C44(UnkStruct_ov6_02240C44 *param0, u32 param1);
BOOL ov6_02240C7C(UnkStruct_ov6_02240C44 *param0);
void ov6_02240C94(UnkStruct_ov6_02240C44 *param0);

#endif // POKEPLATINUM_OV6_0223E140_H
