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

namespace Pkmnlib.Generated
{
    internal static class PokemonForme
    {
        /// <param name="name">const char *</param>
        /// <param name="height">float</param>
        /// <param name="weight">float</param>
        /// <param name="baseExperience">unsigned int</param>
        /// <param name="types">unsigned char *</param>
        /// <param name="typeLength">long unsigned int</param>
        /// <param name="baseHealth">unsigned short</param>
        /// <param name="baseAttack">unsigned short</param>
        /// <param name="baseDefense">unsigned short</param>
        /// <param name="baseMagicalAttack">unsigned short</param>
        /// <param name="baseMagicalDefense">unsigned short</param>
        /// <param name="baseSpeed">unsigned short</param>
        /// <param name="talents">const char * *</param>
        /// <param name="talentsLength">long unsigned int</param>
        /// <param name="secretTalents">const char * *</param>
        /// <param name="secretTalentsLength">long unsigned int</param>
        /// <param name="attacks">const LearnableMoves *</param>
        /// <param name="flags">const char * *</param>
        /// <param name="flagsCount">long unsigned int</param>
        /// <returns>PokemonForme *</returns>
        [DllImport("libpkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_PokemonForme_Construct")]
        internal static extern IntPtr Construct(IntPtr name, float height, float weight, uint baseExperience, IntPtr types, ulong typeLength, ushort baseHealth, ushort baseAttack, ushort baseDefense, ushort baseMagicalAttack, ushort baseMagicalDefense, ushort baseSpeed, IntPtr talents, ulong talentsLength, IntPtr secretTalents, ulong secretTalentsLength, IntPtr attacks, IntPtr flags, ulong flagsCount);

    }
}
