// AUTOMATICALLY GENERATED, DO NOT EDIT
using System;
using System.Runtime.InteropServices;

namespace Creaturelib.Generated
{
    internal static class BattleParty
    {
        /// <param name="out">BattleParty * &</param>
        /// <param name="p">CreatureParty *</param>
        /// <param name="creatureIndices">unsigned char *</param>
        /// <param name="numberOfIndices">long unsigned int</param>
        /// <returns>unsigned char</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_BattleParty_Construct")]
        internal static extern byte Construct(ref IntPtr @out, IntPtr p, IntPtr creatureIndices, ulong numberOfIndices);

        /// <param name="p">const BattleParty *</param>
        /// <returns>void</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_BattleParty_Destruct")]
        internal static extern void Destruct(IntPtr p);

        /// <param name="p">const BattleParty *</param>
        /// <returns>CreatureParty *</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_BattleParty_GetParty")]
        internal static extern IntPtr GetParty(IntPtr p);

        /// <param name="out">bool &</param>
        /// <param name="p">const BattleParty *</param>
        /// <param name="side">unsigned char</param>
        /// <param name="creature">unsigned char</param>
        /// <returns>unsigned char</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_BattleParty_IsResponsibleForIndex")]
        internal static extern byte IsResponsibleForIndex(ref byte @out, IntPtr p, byte side, byte creature);

        /// <param name="p">const BattleParty *</param>
        /// <returns>bool</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_BattleParty_HasCreaturesNotInField")]
        internal static extern byte HasCreaturesNotInField(IntPtr p);

    }
}
