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

namespace Creaturelib.Generated
{
    internal static class GrowthRate
    {
        /// <param name="p">const GrowthRate *</param>
        /// <returns>void</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_GrowthRate_Destruct")]
        internal static extern void Destruct(IntPtr p);

        /// <param name="out">unsigned char &</param>
        /// <param name="p">const GrowthRate *</param>
        /// <param name="experience">unsigned int</param>
        /// <returns>unsigned char</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_GrowthRate_CalculateLevel")]
        internal static extern byte CalculateLevel(ref byte @out, IntPtr p, uint experience);

        /// <param name="out">unsigned int &</param>
        /// <param name="p">const GrowthRate *</param>
        /// <param name="level">unsigned char</param>
        /// <returns>unsigned char</returns>
        [DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_GrowthRate_CalculateExperience")]
        internal static extern byte CalculateExperience(ref uint @out, IntPtr p, byte level);

    }
}
