using System; using System.Runtime.InteropServices; using PkmnLibSharp.StaticData; namespace PkmnLibSharp.FFI.StaticData { internal static class MoveData { [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr move_data_new(IntPtr name, TypeIdentifier moveType, MoveCategory category, byte basePower, byte accuracy, byte baseUsages, MoveTarget target, sbyte priority, IntPtr secondaryEffect, IntPtr flags, ulong flagsLength); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern void move_data_drop(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr move_data_name(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern TypeIdentifier move_data_move_type(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern MoveCategory move_data_category(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern byte move_data_base_power(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern byte move_data_accuracy(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern byte move_data_base_usages(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern MoveTarget move_data_target(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern sbyte move_data_priority(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr move_data_secondary_effect(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern byte move_data_has_flag(IntPtr p, IntPtr flag); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr secondary_effect_new(float chance, IntPtr effectName, IntPtr parameters, ulong parametersLength); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern void secondary_effect_drop(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern float secondary_effect_chance(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr secondary_effect_effect_name(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern ulong secondary_effect_parameter_length(IntPtr p); [DllImport(Data.DllName, CallingConvention = CallingConvention.Cdecl)] internal static extern IntPtr secondary_effect_parameter_get(IntPtr p, ulong index); } }