#ifndef POKEPLATINUM_OV16_0223DF00_H
#define POKEPLATINUM_OV16_0223DF00_H

#include "struct_decls/struct_02002F38_decl.h"
#include "struct_decls/struct_02007768_decl.h"
#include "struct_decls/struct_02007C7C_decl.h"
#include "struct_decls/struct_0200B144_decl.h"
#include "struct_decls/struct_0200B358_decl.h"
#include "struct_decls/struct_0200C440_decl.h"
#include "struct_decls/struct_0200C6E4_decl.h"
#include "struct_decls/struct_0200C704_decl.h"
#include "struct_decls/struct_02015F84_decl.h"
#include "struct_decls/struct_02018340_decl.h"
#include "strbuf.h"
#include "struct_decls/struct_02025E6C_decl.h"
#include "struct_decls/struct_02026324_decl.h"
#include "struct_defs/struct_020279FC.h"
#include "struct_decls/struct_0202CC84_decl.h"
#include "struct_defs/struct_0205AA50.h"
#include "struct_defs/pokemon.h"
#include "struct_decls/struct_020797DC_decl.h"
#include "struct_decls/struct_party_decl.h"
#include "struct_defs/trainer_data.h"
#include "struct_decls/struct_0207ADB4_decl.h"
#include "struct_decls/struct_0207D3C0_decl.h"
#include "struct_decls/struct_0207D99C_decl.h"
#include "overlay006/battle_params.h"
#include "overlay012/struct_ov12_0221FCDC_decl.h"
#include "overlay016/struct_ov16_0223E0C8.h"
#include "battle/battle_context.h"
#include "overlay016/struct_ov16_0225BFFC_decl.h"
#include "battle/battle_message.h"
#include "overlay016/struct_ov16_02268520.h"
#include "overlay016/struct_ov16_02268A14_decl.h"
#include "overlay016/struct_ov16_0226D160_decl.h"

#include "enums.h"

UnkStruct_02018340 * ov16_0223DF00(UnkStruct_0207ADB4 * param0);
UnkStruct_0205AA50 * ov16_0223DF04(UnkStruct_0207ADB4 * param0, int param1);
u32 ov16_0223DF0C(UnkStruct_0207ADB4 * param0);
BattleContext * ov16_0223DF10(UnkStruct_0207ADB4 * param0);
UnkStruct_ov16_0225BFFC * ov16_0223DF14(UnkStruct_0207ADB4 * param0, int param1);
int ov16_0223DF1C(UnkStruct_0207ADB4 * param0);
Party * ov16_0223DF20(UnkStruct_0207ADB4 * param0, int param1);
int ov16_0223DF60(UnkStruct_0207ADB4 * param0, int param1);
Pokemon * ov16_0223DFAC(UnkStruct_0207ADB4 * param0, int param1, int param2);
UnkStruct_02007768 * ov16_0223E000(UnkStruct_0207ADB4 * param0);
UnkStruct_ov12_0221FCDC * ov16_0223E008(UnkStruct_0207ADB4 * param0);
UnkStruct_0200C6E4 * ov16_0223E010(UnkStruct_0207ADB4 * param0);
UnkStruct_0200C704 * ov16_0223E018(UnkStruct_0207ADB4 * param0);
UnkStruct_ov16_02268520 * ov16_0223E020(UnkStruct_0207ADB4 * param0, int param1);
UnkStruct_ov16_02268A14 * ov16_0223E02C(UnkStruct_0207ADB4 * param0);
UnkStruct_ov16_0226D160 * ov16_0223E034(UnkStruct_0207ADB4 * param0, UnkEnum_ov16_0226D194 param1);
void ov16_0223E040(UnkStruct_0207ADB4 * param0, UnkEnum_ov16_0226D194 param1, UnkStruct_ov16_0226D160 * param2);
UnkStruct_0200C440 * ov16_0223E04C(UnkStruct_0207ADB4 * param0);
UnkStruct_0200C440 * ov16_0223E054(UnkStruct_0207ADB4 * param0);
UnkStruct_0200B144 * ov16_0223E05C(UnkStruct_0207ADB4 * param0);
UnkStruct_0200B144 * ov16_0223E060(UnkStruct_0207ADB4 * param0);
UnkStruct_02002F38 * ov16_0223E064(UnkStruct_0207ADB4 * param0);
UnkStruct_02026324 * ov16_0223E068(UnkStruct_0207ADB4 * param0);
u8 * ov16_0223E06C(UnkStruct_0207ADB4 * param0);
u8 * ov16_0223E074(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223E080(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223E08C(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223E098(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223E0A4(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223E0B0(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223E0BC(UnkStruct_0207ADB4 * param0);
UnkStruct_ov16_0223E0C8 * ov16_0223E0C8(UnkStruct_0207ADB4 * param0);
UnkStruct_0200B358 * ov16_0223E0D0(UnkStruct_0207ADB4 * param0);
Strbuf* ov16_0223E0D4(UnkStruct_0207ADB4 * param0);
u16 ov16_0223E0D8(UnkStruct_0207ADB4 * param0, int param1);
TrainerData * ov16_0223E120(UnkStruct_0207ADB4 * param0, int param1);
UnkStruct_02025E6C * ov16_0223E16C(UnkStruct_0207ADB4 * param0, int param1);
UnkStruct_0207D3C0 * ov16_0223E1AC(UnkStruct_0207ADB4 * param0);
UnkStruct_0207D99C * ov16_0223E1B0(UnkStruct_0207ADB4 * param0);
u32 ov16_0223E1B4(UnkStruct_0207ADB4 * param0, int param1);
int ov16_0223E1C4(UnkStruct_0207ADB4 * param0, int param1);
u8 ov16_0223E1F8(UnkStruct_0207ADB4 * param0, int param1);
u8 ov16_0223E208(UnkStruct_0207ADB4 * param0, int param1);
void * ov16_0223E220(UnkStruct_0207ADB4 * param0);
UnkStruct_020797DC * ov16_0223E228(UnkStruct_0207ADB4 * param0);
int ov16_0223E22C(UnkStruct_0207ADB4 * param0);
int ov16_0223E240(UnkStruct_0207ADB4 * param0);
int ov16_0223E24C(UnkStruct_0207ADB4 * param0);
int ov16_0223E258(UnkStruct_0207ADB4 * param0, int param1);
int ov16_0223E2A4(UnkStruct_0207ADB4 * param0, int param1, int param2);
BOOL ov16_0223E30C(UnkStruct_0207ADB4 * param0, int param1, int param2, int param3, int param4);
u32 ov16_0223EBEC(UnkStruct_0207ADB4 * param0);
int ov16_0223EBF8(UnkStruct_0207ADB4 * param0);
int ov16_0223EC04(UnkStruct_0207ADB4 * param0);
u8 ov16_0223EC58(UnkStruct_0207ADB4 * param0, int param1, u8 param2);
u16 ov16_0223ECC4(BattleParams * param0, int * param1, int * param2);
u8 ov16_0223ED60(UnkStruct_0207ADB4 * param0);
u8 ov16_0223ED6C(UnkStruct_0207ADB4 * param0);
int ov16_0223ED8C(UnkStruct_0207ADB4 * param0);
void ov16_0223ED98(UnkStruct_0207ADB4 * param0, int param1);
UnkStruct_020279FC * ov16_0223EDA4(UnkStruct_0207ADB4 * param0);
BOOL ov16_0223EDAC(UnkStruct_0207ADB4 * param0);
int ov16_0223EDE0(UnkStruct_0207ADB4 * param0);
u8 ov16_0223EDF0(UnkStruct_0207ADB4 * param0);
int ov16_0223EE18(UnkStruct_0207ADB4 * param0);
UnkStruct_02015F84 * ov16_0223EE28(UnkStruct_0207ADB4 * param0);
UnkStruct_0202CC84 * ov16_0223EE30(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223EE70(UnkStruct_0207ADB4 * param0);
void ov16_0223EF2C(UnkStruct_0207ADB4 * param0, int param1, int param2);
void ov16_0223EF48(UnkStruct_0207ADB4 * param0, Pokemon * param1);
void ov16_0223EF68(UnkStruct_0207ADB4 * param0, Pokemon * param1);
void ov16_0223EF8C(UnkStruct_0207ADB4 * param0);
u8 * ov16_0223F1E8(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223F1F0(UnkStruct_0207ADB4 * param0);
int ov16_0223F1F8(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223F204(UnkStruct_0207ADB4 * param0);
u16 * ov16_0223F210(UnkStruct_0207ADB4 * param0);
int ov16_0223F21C(UnkStruct_0207ADB4 * param0);
u8 ov16_0223F228(UnkStruct_0207ADB4 * param0);
void ov16_0223F234(UnkStruct_0207ADB4 * param0, u8 param1);
int ov16_0223F240(UnkStruct_0207ADB4 * param0);
void ov16_0223F24C(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223F268(UnkStruct_0207ADB4 * param0);
void ov16_0223F288(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223F290(UnkStruct_0207ADB4 * param0, int param1);
void * ov16_0223F29C(UnkStruct_0207ADB4 * param0);
void ov16_0223F2A4(UnkStruct_0207ADB4 * param0, void * param1);
UnkStruct_ov16_0223E0C8 * ov16_0223F2AC(UnkStruct_0207ADB4 * param0, int param1);
u8 * ov16_0223F2B8(UnkStruct_ov16_0223E0C8 * param0, int param1);
void ov16_0223F2CC(UnkStruct_ov16_0223E0C8 * param0, int param1, int param2);
void ov16_0223F2E4(UnkStruct_ov16_0223E0C8 * param0, int param1, int param2);
void ov16_0223F2FC(UnkStruct_ov16_0223E0C8 * param0, int param1, int param2);
void ov16_0223F314(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223F320(UnkStruct_0207ADB4 * param0, u8 * param1);
void ov16_0223F32C(UnkStruct_0207ADB4 * param0, u8 * param1);
void ov16_0223F338(UnkStruct_0207ADB4 * param0, u8 param1);
void ov16_0223F344(UnkStruct_0207ADB4 * param0, u8 param1);
void ov16_0223F350(UnkStruct_0207ADB4 * param0, u8 param1);
void * ov16_0223F35C(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223F36C(UnkStruct_0207ADB4 * param0);
void ov16_0223F3BC(UnkStruct_0207ADB4 * param0);
void ov16_0223F3EC(UnkStruct_0207ADB4 * param0);
void ov16_0223F414(UnkStruct_0207ADB4 * param0);
u8 ov16_0223F438(UnkStruct_0207ADB4 * param0);
void ov16_0223F444(UnkStruct_0207ADB4 * param0, u8 param1);
u8 ov16_0223F450(UnkStruct_0207ADB4 * param0);
void ov16_0223F460(UnkStruct_0207ADB4 * param0, u8 param1);
u8 ov16_0223F47C(UnkStruct_0207ADB4 * param0);
void ov16_0223F48C(UnkStruct_0207ADB4 * param0, u8 param1);
void ov16_0223F4B0(UnkStruct_0207ADB4 * param0, int param1);
u16 ov16_0223F4BC(UnkStruct_0207ADB4 * param0);
u32 ov16_0223F4E8(UnkStruct_0207ADB4 * param0);
void ov16_0223F4F4(UnkStruct_0207ADB4 * param0, u32 param1);
void ov16_0223F500(UnkStruct_0207ADB4 * param0, int param1, u8 param2);
BOOL ov16_0223F530(UnkStruct_0207ADB4 * param0, int param1, u8 * param2);
u8 ov16_0223F58C(UnkStruct_0207ADB4 * param0, u8 * param1);
void ov16_0223F638(UnkStruct_0207ADB4 * param0, u16 param1, u8 * param2);
u16 ov16_0223F6E4(UnkStruct_0207ADB4 * param0);
int ov16_0223F6F0(UnkStruct_0207ADB4 * param0, u16 param1);
u16 ov16_0223F700(UnkStruct_0207ADB4 * param0, int param1, int param2);
u32 ov16_0223F710(UnkStruct_0207ADB4 * param0);
void ov16_0223F720(UnkStruct_0207ADB4 * param0, int param1);
BOOL ov16_0223F7A4(UnkStruct_0207ADB4 * param0);
void ov16_0223F7E8(UnkStruct_0207ADB4 * param0);
u8 ov16_0223F810(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223F858(UnkStruct_0207ADB4 * param0, u8 * param1);
void ov16_0223F87C(UnkStruct_0207ADB4 * param0, u8 * param1);
void ov16_0223F8AC(UnkStruct_0207ADB4 * param0, UnkStruct_02007C7C ** param1);
void ov16_0223F8DC(UnkStruct_0207ADB4 * param0, int param1);
u32 ov16_0223F904(Party * param0, UnkStruct_02025E6C * param1);
void ov16_0223F938(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223F9A0(UnkStruct_0207ADB4 * param0, int param1);
BOOL ov16_0223F9E0(UnkStruct_0207ADB4 * param0, int param1);
void ov16_0223F9F0(void);
u8 ov16_0223F9FC(UnkStruct_0207ADB4 * param0, int param1, int param2, int param3, int param4);
u8 ov16_0223FB24(UnkStruct_0207ADB4 * param0, UnkStruct_0200B144 * param1, BattleMessage * param2, int param3);
u8 ov16_0223FB78(UnkStruct_0207ADB4 * param0, UnkStruct_0205AA50 * param1, UnkStruct_0200B144 * param2, BattleMessage * param3, int param4, int param5, int param6, int param7, int param8);

#endif // POKEPLATINUM_OV16_0223DF00_H
