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

namespace Pkmnlib.Generated
{
    internal static class Item
    {
        /// <param name="name">const char *</param>
        /// <param name="category">ItemCategory</param>
        /// <param name="battleCategory">BattleItemCategory</param>
        /// <param name="price">int</param>
        /// <param name="flags">const char * *</param>
        /// <param name="flagsCount">long unsigned int</param>
        /// <param name="flingPower">unsigned char</param>
        /// <returns>Item *</returns>
        [DllImport("libpkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Item_Construct")]
        internal static extern IntPtr Construct(IntPtr name, ItemCategory category, BattleItemCategory battleCategory, int price, IntPtr flags, ulong flagsCount, byte flingPower);

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

        /// <param name="p">const Item *</param>
        /// <returns>unsigned char</returns>
        [DllImport("libpkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Item_GetFlingPower")]
        internal static extern byte GetFlingPower(IntPtr p);

    }
}
