#ifndef POKEPLATINUM_OV83_0223D6A8_H
#define POKEPLATINUM_OV83_0223D6A8_H

#include <nitro/fx/fx.h>

#include "struct_decls/struct_02015064_decl.h"

#include "overlay083/struct_ov83_0223D4CC_decl.h"
#include "overlay083/struct_ov83_0223D784.h"
#include "overlay083/struct_ov83_0223D95C.h"
#include "overlay083/struct_ov83_0223D9EC.h"
#include "overlay083/struct_ov83_0223DA94.h"
#include "overlay083/struct_ov83_0223DB30.h"
#include "overlay083/struct_ov83_0223DB4C.h"
#include "overlay083/struct_ov83_0223DEA0.h"
#include "overlay083/struct_ov83_0223E138.h"
#include "overlay083/struct_ov83_0223E244.h"
#include "overlay083/struct_ov83_0223E340.h"
#include "overlay083/struct_ov83_0223E5C0.h"
#include "overlay083/struct_ov83_0223E824.h"
#include "overlay083/struct_ov83_0223ED3C.h"
#include "overlay083/struct_ov83_0223F29C.h"
#include "overlay083/struct_ov83_0223F4AC.h"
#include "overlay083/struct_ov83_0223F770.h"
#include "overlay083/struct_ov83_0223F7A4.h"
#include "overlay083/struct_ov83_0223FE50.h"

#include "bg_window.h"
#include "narc.h"
#include "sprite.h"
#include "sprite_resource.h"

void ov83_0223D754(UnkStruct_ov83_0223D784 *param0, int param1, int param2, int heapID);
void ov83_0223D784(UnkStruct_ov83_0223D784 *param0);
void ov83_0223D7A8(UnkStruct_ov83_0223D784 *param0, UnkStruct_ov83_0223D95C *param1, NARC *param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8, u32 param9);
void ov83_0223D894(UnkStruct_ov83_0223D784 *param0, UnkStruct_ov83_0223D95C *param1, NARC *param2, SpriteResource *param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8);
void ov83_0223D95C(UnkStruct_ov83_0223D784 *param0, UnkStruct_ov83_0223D95C *param1);
Sprite *ov83_0223D9A8(UnkStruct_ov83_0223D784 *param0, UnkStruct_ov83_0223D95C *param1, fx32 param2, fx32 param3, fx32 param4, int param5, int param6);
void ov83_0223D9DC(UnkStruct_ov83_0223D9EC *param0, fx32 param1, fx32 param2, int param3);
BOOL ov83_0223D9EC(UnkStruct_ov83_0223D9EC *param0);
void ov83_0223DA34(UnkStruct_ov83_0223DA94 *param0, fx32 param1, fx32 param2, fx32 param3, int param4);
BOOL ov83_0223DA94(UnkStruct_ov83_0223DA94 *param0);
VecFx32 ov83_0223DAFC(fx32 param0, fx32 param1, fx32 param2);
void ov83_0223DB18(UnkStruct_ov83_0223DB30 *param0, int param1);
void ov83_0223DB30(UnkStruct_ov83_0223DB30 *param0);
void ov83_0223DB4C(UnkStruct_ov83_0223DB30 *param0, UnkStruct_ov83_0223DB4C *param1, UnkStruct_ov83_0223D784 *param2, UnkStruct_ov83_0223D95C *param3, u32 param4);
void ov83_0223DC1C(UnkStruct_ov83_0223DB30 *param0, UnkStruct_ov83_0223D784 *param1);
void ov83_0223DC68(UnkStruct_ov83_0223DB30 *param0);
u32 ov83_0223DD30(UnkStruct_ov83_0223DB30 *param0);
void ov83_0223DEA0(UnkStruct_ov83_0223E138 *param0, int param1, UnkStruct_ov83_0223DEA0 *param2, UnkStruct_ov83_0223FE50 *param3, int param4, u32 param5);
void ov83_0223DEC4(UnkStruct_ov83_0223E138 *param0);
void ov83_0223DEE0(UnkStruct_ov83_0223E138 *param0, BgConfig *param1, u32 heapID, NARC *param3);
void ov83_0223DF10(UnkStruct_ov83_0223E138 *param0);
void ov83_0223DF30(UnkStruct_ov83_0223E138 *param0, int param1);
void ov83_0223DF70(UnkStruct_ov83_0223E138 *param0);
void ov83_0223DF84(UnkStruct_ov83_0223E138 *param0);
void ov83_0223DFAC(UnkStruct_ov83_0223E138 *param0);
void ov83_0223E244(UnkStruct_ov83_0223E244 *param0);
void ov83_0223E260(UnkStruct_ov83_0223E244 *param0);
void ov83_0223E28C(UnkStruct_ov83_0223E244 *param0, UnkStruct_ov83_0223D784 *param1, UnkStruct_ov83_0223D95C *param2, u32 param3, u32 param4, u32 param5);
void ov83_0223E2C8(UnkStruct_ov83_0223E244 *param0);
void ov83_0223E2E4(UnkStruct_ov83_0223E244 *param0);
void ov83_0223E2FC(UnkStruct_ov83_0223E244 *param0);
BOOL ov83_0223E32C(UnkStruct_ov83_0223E244 *param0);
void ov83_0223E340(UnkStruct_ov83_0223E340 *param0);
void ov83_0223E34C(UnkStruct_ov83_0223E340 *param0);
void ov83_0223E368(UnkStruct_ov83_0223E340 *param0, UnkStruct_02015064 *param1, u32 param2, NARC *param3);
void ov83_0223E438(UnkStruct_ov83_0223E340 *param0);
void ov83_0223E484(UnkStruct_ov83_0223E340 *param0, u32 param1, BOOL param2);
void ov83_0223E4A4(UnkStruct_ov83_0223E340 *param0, u16 param1);
void ov83_0223E4C0(UnkStruct_ov83_0223E340 *param0, fx32 param1);
void ov83_0223E4E0(UnkStruct_ov83_0223E340 *param0, u32 param1, u32 param2);
void ov83_0223E500(UnkStruct_ov83_0223E340 *param0);
void ov83_0223E51C(UnkStruct_ov83_0223E340 *param0, int param1);
void ov83_0223E5A4(UnkStruct_ov83_0223E5C0 *param0, const UnkStruct_ov83_0223FE50 *param1, u32 param2, UnkStruct_ov83_0223D4CC *param3);
void ov83_0223E5C0(UnkStruct_ov83_0223E5C0 *param0);
void ov83_0223E5DC(UnkStruct_ov83_0223E5C0 *param0, UnkStruct_ov83_0223D784 *param1, UnkStruct_ov83_0223D95C *param2, u32 param3);
void ov83_0223E63C(UnkStruct_ov83_0223E5C0 *param0);
void ov83_0223E658(UnkStruct_ov83_0223E5C0 *param0);
void ov83_0223E69C(UnkStruct_ov83_0223E5C0 *param0, BOOL param1);
void ov83_0223E6D4(UnkStruct_ov83_0223E824 *param0, int param1, UnkStruct_ov83_0223DEA0 *param2, UnkStruct_ov83_0223FE50 *param3, int param4, u32 param5);
void ov83_0223E6F8(UnkStruct_ov83_0223E824 *param0);
void ov83_0223E720(UnkStruct_ov83_0223E824 *param0, BgConfig *param1, u32 heapID, NARC *param3);
void ov83_0223E760(UnkStruct_ov83_0223E824 *param0);
void ov83_0223E908(UnkStruct_ov83_0223E824 *param0, u32 param1);
BOOL ov83_0223E984(const UnkStruct_ov83_0223E824 *param0);
void ov83_0223E994(UnkStruct_ov83_0223E824 *param0);
void ov83_0223E9BC(UnkStruct_ov83_0223E824 *param0);
void ov83_0223E9D0(UnkStruct_ov83_0223E824 *param0);
void ov83_0223EC4C(UnkStruct_ov83_0223E824 *param0, u32 param1);
void ov83_0223EC70(UnkStruct_ov83_0223E824 *param0);
void ov83_0223EC8C(UnkStruct_ov83_0223E824 *param0, u32 param1);
void ov83_0223ED3C(UnkStruct_ov83_0223ED3C *param0);
void ov83_0223ED4C(UnkStruct_ov83_0223ED3C *param0);
void ov83_0223ED6C(UnkStruct_ov83_0223ED3C *param0, UnkStruct_ov83_0223D784 *param1, UnkStruct_ov83_0223D95C *param2, u32 param3);
void ov83_0223ED78(UnkStruct_ov83_0223ED3C *param0);
void ov83_0223EDA4(UnkStruct_ov83_0223ED3C *param0, UnkStruct_ov83_0223FE50 *param1);
void ov83_0223EDDC(UnkStruct_ov83_0223ED3C *param0, int param1, int param2);
void ov83_0223EFCC(UnkStruct_ov83_0223ED3C *param0);
void ov83_0223F29C(UnkStruct_ov83_0223F29C *param0);
void ov83_0223F2A8(UnkStruct_ov83_0223F29C *param0);
void ov83_0223F2C4(UnkStruct_ov83_0223F29C *param0, UnkStruct_ov83_0223D784 *param1, u32 param2, NARC *param3);
void ov83_0223F348(UnkStruct_ov83_0223F29C *param0);
void ov83_0223F378(UnkStruct_ov83_0223F29C *param0);
void ov83_0223F3A0(UnkStruct_ov83_0223F29C *param0, int param1);
void ov83_0223F3D0(UnkStruct_ov83_0223F29C *param0, int param1);
BOOL ov83_0223F3F0(const UnkStruct_ov83_0223F29C *param0, int param1);
void ov83_0223F494(UnkStruct_ov83_0223F4AC *param0, int param1);
void ov83_0223F4AC(UnkStruct_ov83_0223F4AC *param0);
void ov83_0223F4CC(UnkStruct_ov83_0223F4AC *param0, UnkStruct_ov83_0223D784 *param1, UnkStruct_ov83_0223D95C *param2, u32 param3);
void ov83_0223F510(UnkStruct_ov83_0223F4AC *param0);
void ov83_0223F52C(UnkStruct_ov83_0223F4AC *param0);
void ov83_0223F544(UnkStruct_ov83_0223F4AC *param0, int param1, int param2);
void ov83_0223F730(UnkStruct_ov83_0223F770 *param0, int param1, int param2, int param3, int param4);
void ov83_0223F770(UnkStruct_ov83_0223F770 *param0);
void ov83_0223F784(UnkStruct_ov83_0223F770 *param0);
void ov83_0223F790(UnkStruct_ov83_0223F7A4 *param0, int heapID, BgConfig *param2);
void ov83_0223F7A4(UnkStruct_ov83_0223F7A4 *param0);
void ov83_0223F7B0(UnkStruct_ov83_0223F7A4 *param0);
u32 ov83_0223F7DC(UnkStruct_ov83_0223F7A4 *param0);

#endif // POKEPLATINUM_OV83_0223D6A8_H
