Update to latest version of pkmnLib.
This commit is contained in:
@@ -106,10 +106,10 @@ namespace PkmnLibSharp.Battling
|
||||
}
|
||||
else
|
||||
{
|
||||
AbilityIndex = forme!.Abilities.IndexOf(Ability);
|
||||
AbilityIndex = forme!.Abilities.IndexOf(ability => ability!.Name == Ability);
|
||||
if (AbilityIndex == -1)
|
||||
{
|
||||
AbilityIndex = forme.HiddenAbilities.IndexOf(Ability);
|
||||
AbilityIndex = forme.HiddenAbilities.IndexOf(ability => ability!.Name == Ability);
|
||||
if (AbilityIndex == -1)
|
||||
{
|
||||
throw new Exception(
|
||||
|
||||
@@ -212,7 +212,7 @@ namespace Creaturelib.Generated
|
||||
internal static extern byte GetRealTalentIndex(IntPtr p);
|
||||
|
||||
/// <param name="p">const Creature *</param>
|
||||
/// <param name="out">const char * &</param>
|
||||
/// <param name="out">const Talent * &</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_GetActiveTalent")]
|
||||
internal static extern byte GetActiveTalent(IntPtr p, ref IntPtr @out);
|
||||
|
||||
@@ -7,5 +7,6 @@ namespace Creaturelib
|
||||
internal enum DamageSource : byte
|
||||
{
|
||||
AttackDamage = 0,
|
||||
Misc = 1,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,9 +13,10 @@ namespace Creaturelib.Generated
|
||||
/// <param name="items">ItemLibrary *</param>
|
||||
/// <param name="growthRates">GrowthRateLibrary *</param>
|
||||
/// <param name="typeLibrary">TypeLibrary *</param>
|
||||
/// <param name="talentLibrary">TalentLibrary *</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_DataLibrary_Construct")]
|
||||
internal static extern byte Construct(ref IntPtr @out, IntPtr settings, IntPtr species, IntPtr attacks, IntPtr items, IntPtr growthRates, IntPtr typeLibrary);
|
||||
internal static extern byte Construct(ref IntPtr @out, IntPtr settings, IntPtr species, IntPtr attacks, IntPtr items, IntPtr growthRates, IntPtr typeLibrary, IntPtr talentLibrary);
|
||||
|
||||
/// <param name="p">const DataLibrary *</param>
|
||||
/// <returns>void</returns>
|
||||
@@ -52,5 +53,10 @@ namespace Creaturelib.Generated
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_DataLibrary_GetTypeLibrary")]
|
||||
internal static extern IntPtr GetTypeLibrary(IntPtr p);
|
||||
|
||||
/// <param name="p">const DataLibrary *</param>
|
||||
/// <returns>const TalentLibrary *</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_DataLibrary_GetTalentLibrary")]
|
||||
internal static extern IntPtr GetTalentLibrary(IntPtr p);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace Creaturelib.Generated
|
||||
/// <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="talents">const Talent * *</param>
|
||||
/// <param name="talentsLength">long unsigned int</param>
|
||||
/// <param name="secretTalents">const char * *</param>
|
||||
/// <param name="secretTalents">const Talent * *</param>
|
||||
/// <param name="secretTalentsLength">long unsigned int</param>
|
||||
/// <param name="attacks">const LearnableAttacks *</param>
|
||||
/// <param name="flags">const char * *</param>
|
||||
@@ -84,7 +84,7 @@ namespace Creaturelib.Generated
|
||||
/// <param name="p">SpeciesVariant *</param>
|
||||
/// <param name="secret">bool</param>
|
||||
/// <param name="index">unsigned char</param>
|
||||
/// <param name="out">const char * &</param>
|
||||
/// <param name="out">const Talent * &</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesVariant_GetTalent")]
|
||||
internal static extern byte GetTalent(IntPtr p, byte secret, byte index, ref IntPtr @out);
|
||||
|
||||
33
PkmnLibSharp/Generated/Creaturelib/Talent.cs
Normal file
33
PkmnLibSharp/Generated/Creaturelib/Talent.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Creaturelib.Generated
|
||||
{
|
||||
internal static class Talent
|
||||
{
|
||||
/// <param name="name">const char *</param>
|
||||
/// <param name="effect">const char *</param>
|
||||
/// <param name="effectParameters">EffectParameter * *</param>
|
||||
/// <param name="effectParameterCount">long unsigned int</param>
|
||||
/// <returns>Talent *</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Talent_Construct")]
|
||||
internal static extern IntPtr Construct(IntPtr name, IntPtr effect, IntPtr effectParameters, ulong effectParameterCount);
|
||||
|
||||
/// <param name="p">const Talent *</param>
|
||||
/// <returns>void</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Talent_Destruct")]
|
||||
internal static extern void Destruct(IntPtr p);
|
||||
|
||||
/// <param name="talent">const Talent *</param>
|
||||
/// <returns>const char *</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Talent_GetName")]
|
||||
internal static extern IntPtr GetName(IntPtr talent);
|
||||
|
||||
/// <param name="talent">const Talent *</param>
|
||||
/// <returns>const char *</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Talent_GetEffect")]
|
||||
internal static extern IntPtr GetEffect(IntPtr talent);
|
||||
|
||||
}
|
||||
}
|
||||
87
PkmnLibSharp/Generated/Creaturelib/TalentLibrary.cs
Normal file
87
PkmnLibSharp/Generated/Creaturelib/TalentLibrary.cs
Normal file
@@ -0,0 +1,87 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Creaturelib.Generated
|
||||
{
|
||||
internal static class TalentLibrary
|
||||
{
|
||||
/// <param name="library">TalentLibrary * &</param>
|
||||
/// <param name="initialCapacity">long unsigned int</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_Construct")]
|
||||
internal static extern byte Construct(ref IntPtr library, ulong initialCapacity);
|
||||
|
||||
/// <param name="p">const TalentLibrary *</param>
|
||||
/// <returns>void</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_Destruct")]
|
||||
internal static extern void Destruct(IntPtr p);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="name">const char *</param>
|
||||
/// <param name="t">Talent *</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_Insert")]
|
||||
internal static extern byte Insert(IntPtr p, IntPtr name, IntPtr t);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="hashedKey">unsigned int</param>
|
||||
/// <param name="t">Talent *</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_InsertWithHash")]
|
||||
internal static extern byte InsertWithHash(IntPtr p, uint hashedKey, IntPtr t);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="name">const char *</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_Delete")]
|
||||
internal static extern byte Delete(IntPtr p, IntPtr name);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="hashedKey">unsigned int</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_DeleteWithHash")]
|
||||
internal static extern byte DeleteWithHash(IntPtr p, uint hashedKey);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="name">const char *</param>
|
||||
/// <param name="out">const Talent * &</param>
|
||||
/// <returns>bool</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_TryGet")]
|
||||
internal static extern byte TryGet(IntPtr p, IntPtr name, ref IntPtr @out);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="hashedKey">unsigned int</param>
|
||||
/// <param name="out">const Talent * &</param>
|
||||
/// <returns>bool</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_TryGetWithHash")]
|
||||
internal static extern byte TryGetWithHash(IntPtr p, uint hashedKey, ref IntPtr @out);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="name">const char *</param>
|
||||
/// <param name="out">const Talent * &</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_Get")]
|
||||
internal static extern byte Get(IntPtr p, IntPtr name, ref IntPtr @out);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="hashedKey">unsigned int</param>
|
||||
/// <param name="out">const Talent * &</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_GetWithHash")]
|
||||
internal static extern byte GetWithHash(IntPtr p, uint hashedKey, ref IntPtr @out);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <returns>long unsigned int</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_GetCount")]
|
||||
internal static extern ulong GetCount(IntPtr p);
|
||||
|
||||
/// <param name="p">TalentLibrary *</param>
|
||||
/// <param name="index">long unsigned int</param>
|
||||
/// <param name="out">const Talent * &</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libCreatureLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TalentLibrary_GetAtIndex")]
|
||||
internal static extern byte GetAtIndex(IntPtr p, ulong index, ref IntPtr @out);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -7,5 +7,6 @@ namespace Pkmnlib
|
||||
internal enum DamageSource : byte
|
||||
{
|
||||
AttackDamage = 0,
|
||||
Misc = 1,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Pkmnlib
|
||||
{
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum METADATATYPE : int
|
||||
{
|
||||
MDT_TYPE = 1,
|
||||
MDT_FUNC = 2,
|
||||
MDT_VAR = 3,
|
||||
MDT_VIRTPROP = 4,
|
||||
MDT_FUNC_OR_VAR = 5,
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,6 @@ namespace Pkmnlib
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum PkmnDamageSource : byte
|
||||
{
|
||||
Struggle = 1,
|
||||
Struggle = 2,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,9 +18,9 @@ namespace Pkmnlib.Generated
|
||||
/// <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="talents">const Talent * *</param>
|
||||
/// <param name="talentsLength">long unsigned int</param>
|
||||
/// <param name="secretTalents">const char * *</param>
|
||||
/// <param name="secretTalents">const Talent * *</param>
|
||||
/// <param name="secretTalentsLength">long unsigned int</param>
|
||||
/// <param name="attacks">const LearnableMoves *</param>
|
||||
/// <param name="flags">const char * *</param>
|
||||
|
||||
@@ -13,10 +13,11 @@ namespace Pkmnlib.Generated
|
||||
/// <param name="items">ItemLibrary *</param>
|
||||
/// <param name="growthRates">GrowthRateLibrary *</param>
|
||||
/// <param name="typeLibrary">TypeLibrary *</param>
|
||||
/// <param name="talentLibrary">TalentLibrary *</param>
|
||||
/// <param name="natures">NatureLibrary *</param>
|
||||
/// <returns>unsigned char</returns>
|
||||
[DllImport("libpkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_PokemonLibrary_Construct")]
|
||||
internal static extern byte Construct(ref IntPtr @out, IntPtr settings, IntPtr species, IntPtr moves, IntPtr items, IntPtr growthRates, IntPtr typeLibrary, IntPtr natures);
|
||||
internal static extern byte Construct(ref IntPtr @out, IntPtr settings, IntPtr species, IntPtr moves, IntPtr items, IntPtr growthRates, IntPtr typeLibrary, IntPtr talentLibrary, IntPtr natures);
|
||||
|
||||
/// <param name="p">const PokemonLibrary *</param>
|
||||
/// <returns>void</returns>
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Pkmnlib
|
||||
{
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum error_type : int
|
||||
{
|
||||
_S_error_collate = 0,
|
||||
_S_error_ctype = 1,
|
||||
_S_error_escape = 2,
|
||||
_S_error_backref = 3,
|
||||
_S_error_brack = 4,
|
||||
_S_error_paren = 5,
|
||||
_S_error_brace = 6,
|
||||
_S_error_badbrace = 7,
|
||||
_S_error_range = 8,
|
||||
_S_error_space = 9,
|
||||
_S_error_badrepeat = 10,
|
||||
_S_error_complexity = 11,
|
||||
_S_error_stack = 12,
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Pkmnlib
|
||||
{
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum file_type : byte
|
||||
{
|
||||
not_found = 255,
|
||||
none = 0,
|
||||
regular = 1,
|
||||
directory = 2,
|
||||
symlink = 3,
|
||||
block = 4,
|
||||
character = 5,
|
||||
fifo = 6,
|
||||
socket = 7,
|
||||
unknown = 8,
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Pkmnlib
|
||||
{
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum format : byte
|
||||
{
|
||||
native_format = 0,
|
||||
generic_format = 1,
|
||||
auto_format = 2,
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Pkmnlib
|
||||
{
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum match_flag_type : int
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Pkmnlib
|
||||
{
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum perms : int
|
||||
{
|
||||
none = 0,
|
||||
others_exec = 1,
|
||||
others_write = 2,
|
||||
others_read = 4,
|
||||
others_all = 7,
|
||||
group_exec = 8,
|
||||
group_write = 16,
|
||||
group_read = 32,
|
||||
group_all = 56,
|
||||
owner_exec = 64,
|
||||
owner_write = 128,
|
||||
owner_read = 256,
|
||||
owner_all = 448,
|
||||
all = 511,
|
||||
sticky_bit = 512,
|
||||
set_gid = 1024,
|
||||
set_uid = 2048,
|
||||
mask = 4095,
|
||||
unknown = 65535,
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
// AUTOMATICALLY GENERATED, DO NOT EDIT
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
|
||||
namespace Pkmnlib
|
||||
{
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
internal enum syntax_option_type : int
|
||||
{
|
||||
}
|
||||
}
|
||||
100
PkmnLibSharp/Library/AbilityLibrary.cs
Normal file
100
PkmnLibSharp/Library/AbilityLibrary.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
namespace PkmnLibSharp.Library
|
||||
{
|
||||
public class AbilityLibrary : PointerWrapper
|
||||
{
|
||||
private readonly Dictionary<string, Ability> _cache =
|
||||
new Dictionary<string, Ability>(StringComparer.InvariantCultureIgnoreCase);
|
||||
|
||||
public ulong Count => Creaturelib.Generated.TalentLibrary.GetCount(Ptr);
|
||||
|
||||
public void Insert(string key, Ability ability)
|
||||
{
|
||||
Creaturelib.Generated.TalentLibrary.Insert(Ptr, key.ToPtr(), ability.Ptr).Assert();
|
||||
_cache.Add(key, ability);
|
||||
}
|
||||
|
||||
public void Delete(string key)
|
||||
{
|
||||
Creaturelib.Generated.TalentLibrary.Delete(Ptr, key.ToPtr()).Assert();
|
||||
_cache.Remove(key);
|
||||
}
|
||||
|
||||
public bool TryGet(string key, out Ability? ability)
|
||||
{
|
||||
if (_cache.TryGetValue(key, out ability))
|
||||
return true;
|
||||
var ptr = IntPtr.Zero;
|
||||
if (Creaturelib.Generated.TalentLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True)
|
||||
return false;
|
||||
if (TryResolvePointer(ptr, out ability))
|
||||
{
|
||||
_cache.Add(key, ability!);
|
||||
return true;
|
||||
}
|
||||
|
||||
ability = Constructor.Active.ConstructAbility(ptr)!;
|
||||
_cache.Add(key, ability);
|
||||
return true;
|
||||
}
|
||||
|
||||
public Ability Get(string key)
|
||||
{
|
||||
if (_cache.TryGetValue(key, out var ability))
|
||||
return ability;
|
||||
var ptr = IntPtr.Zero;
|
||||
Creaturelib.Generated.TalentLibrary.Get(Ptr, key.ToPtr(), ref ptr).Assert();
|
||||
if (TryResolvePointer(ptr, out Ability? s))
|
||||
{
|
||||
_cache.Add(key, s!);
|
||||
return s!;
|
||||
}
|
||||
|
||||
ability = Constructor.Active.ConstructAbility(ptr)!;
|
||||
_cache.Add(key, ability);
|
||||
return ability;
|
||||
}
|
||||
|
||||
public IEnumerable<Ability> GetEnumerator()
|
||||
{
|
||||
var count = Creaturelib.Generated.TalentLibrary.GetCount(Ptr);
|
||||
var ptr = IntPtr.Zero;
|
||||
for (ulong i = 0; i < count; i++)
|
||||
{
|
||||
Creaturelib.Generated.TalentLibrary.GetAtIndex(Ptr, i, ref ptr).Assert();
|
||||
if (TryResolvePointer(ptr, out Ability? ability))
|
||||
yield return ability!;
|
||||
else
|
||||
yield return Constructor.Active.ConstructAbility(ptr)!;
|
||||
}
|
||||
}
|
||||
|
||||
internal AbilityLibrary(IntPtr ptr) : base(ptr)
|
||||
{
|
||||
}
|
||||
|
||||
public AbilityLibrary(ulong initialCapacity) : base()
|
||||
{
|
||||
var ptr = IntPtr.Zero;
|
||||
Creaturelib.Generated.TalentLibrary.Construct(ref ptr, initialCapacity).Assert();
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
protected override void DeletePtr()
|
||||
{
|
||||
Creaturelib.Generated.TalentLibrary.Destruct(Ptr);
|
||||
}
|
||||
|
||||
protected internal override void MarkAsDeleted()
|
||||
{
|
||||
base.MarkAsDeleted();
|
||||
foreach (var ability in _cache)
|
||||
{
|
||||
ability.Value.MarkAsDeleted();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -99,6 +99,21 @@ namespace PkmnLibSharp.Library
|
||||
}
|
||||
}
|
||||
|
||||
private AbilityLibrary? _abilityLibrary;
|
||||
|
||||
public AbilityLibrary AbilityLibrary
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_abilityLibrary != null) return _abilityLibrary;
|
||||
var ptr = DataLibrary.GetTalentLibrary(Ptr);
|
||||
if (TryResolvePointer(ptr, out _abilityLibrary))
|
||||
return _abilityLibrary!;
|
||||
_abilityLibrary = new AbilityLibrary(ptr);
|
||||
return _abilityLibrary;
|
||||
}
|
||||
}
|
||||
|
||||
private NatureLibrary? _natureLibrary;
|
||||
|
||||
public NatureLibrary NatureLibrary
|
||||
@@ -119,13 +134,12 @@ namespace PkmnLibSharp.Library
|
||||
{
|
||||
}
|
||||
|
||||
public PokemonLibrary(LibrarySettings settings, SpeciesLibrary species, MoveLibrary moves,
|
||||
ItemLibrary items,
|
||||
GrowthRateLibrary growthRates, TypeLibrary types, NatureLibrary natures)
|
||||
public PokemonLibrary(LibrarySettings settings, SpeciesLibrary species, MoveLibrary moves, ItemLibrary items,
|
||||
GrowthRateLibrary growthRates, TypeLibrary types, AbilityLibrary abilityLibrary, NatureLibrary natures)
|
||||
{
|
||||
var ptr = IntPtr.Zero;
|
||||
Pkmnlib.Generated.PokemonLibrary.Construct(ref ptr, settings.Ptr, species.Ptr, moves.Ptr, items.Ptr,
|
||||
growthRates.Ptr, types.Ptr, natures.Ptr).Assert();
|
||||
growthRates.Ptr, types.Ptr, abilityLibrary.Ptr, natures.Ptr).Assert();
|
||||
Initialize(ptr);
|
||||
_settings = settings;
|
||||
_species = species;
|
||||
|
||||
45
PkmnLibSharp/Library/Species/Ability.cs
Normal file
45
PkmnLibSharp/Library/Species/Ability.cs
Normal file
@@ -0,0 +1,45 @@
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using PkmnLibSharp.Utilities;
|
||||
|
||||
namespace PkmnLibSharp.Library
|
||||
{
|
||||
public class Ability : PointerWrapper
|
||||
{
|
||||
public Ability(string name, string effect, EffectParameter[] parameters)
|
||||
{
|
||||
var pars = parameters.Select(x => x.Ptr).ToArray();
|
||||
Initialize(Creaturelib.Generated.Talent.Construct(name.ToPtr(), effect.ToPtr(), pars.ArrayPtr(), (ulong)pars.Length));
|
||||
foreach (var intPtr in pars)
|
||||
Marshal.FreeHGlobal(intPtr);
|
||||
}
|
||||
|
||||
private string? _name;
|
||||
public string Name
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_name != null) return _name;
|
||||
_name = Creaturelib.Generated.Talent.GetName(Ptr).PtrString();
|
||||
return _name!;
|
||||
}
|
||||
}
|
||||
|
||||
private string? _effect;
|
||||
public string Effect
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_effect != null) return _effect;
|
||||
_effect = Creaturelib.Generated.Talent.GetEffect(Ptr).PtrString();
|
||||
return _effect!;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected override void DeletePtr()
|
||||
{
|
||||
Creaturelib.Generated.Talent.Destruct(Ptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -11,35 +11,31 @@ namespace PkmnLibSharp.Library
|
||||
{
|
||||
public class Forme : PointerWrapper
|
||||
{
|
||||
private ReadOnlyArray<string>? _abilities;
|
||||
private ReadOnlyArray<string>? _hiddenAbilities;
|
||||
private ReadOnlyArray<Ability>? _abilities;
|
||||
private ReadOnlyArray<Ability>? _hiddenAbilities;
|
||||
private LearnableMoves? _moves;
|
||||
private string? _name;
|
||||
private ReadOnlyArray<byte>? _types;
|
||||
|
||||
public Forme(string name, float height, float weight, uint baseExperience, byte[] types,
|
||||
ushort baseHealth, ushort baseAttack, ushort baseDefense, ushort baseSpecialAttack,
|
||||
ushort baseSpecialDefense, ushort baseSpeed, IReadOnlyCollection<string> abilities,
|
||||
IReadOnlyCollection<string> hiddenAbilities, LearnableMoves moves, IReadOnlyCollection<string> tags)
|
||||
|
||||
public Forme(string name, float height, float weight, uint baseExperience, byte[] types, ushort baseHealth,
|
||||
ushort baseAttack, ushort baseDefense, ushort baseSpecialAttack, ushort baseSpecialDefense,
|
||||
ushort baseSpeed, IReadOnlyCollection<Ability> abilities, IReadOnlyCollection<Ability> hiddenAbilities,
|
||||
LearnableMoves moves, IReadOnlyCollection<string> tags)
|
||||
{
|
||||
var abilitiesConverted = abilities.Select(x => x.ToPtr()).ToArray();
|
||||
var hiddenAbilitiesConverted = hiddenAbilities.Select(x => x.ToPtr()).ToArray();
|
||||
var abilitiesConverted = abilities.Select(x => x.Ptr).ToArray();
|
||||
var hiddenAbilitiesConverted = hiddenAbilities.Select(x => x.Ptr).ToArray();
|
||||
var tagsConverted = tags.Select(x => x.ToPtr()).ToArray();
|
||||
var ab = abilitiesConverted.ArrayPtr();
|
||||
var hab = hiddenAbilitiesConverted.ArrayPtr();
|
||||
var tagsPtr = tagsConverted.ArrayPtr();
|
||||
|
||||
|
||||
var ptr = PokemonForme.Construct(name.ToPtr(), height, weight, baseExperience, types.ArrayPtr(),
|
||||
(ulong) types.Length, baseHealth, baseAttack, baseDefense, baseSpecialAttack,
|
||||
baseSpecialDefense, baseSpeed, ab, (ulong) abilities.Count, hab,
|
||||
(ulong) hiddenAbilities.Count, moves.Ptr, tagsPtr, (ulong) tags.Count);
|
||||
foreach (var intPtr in abilitiesConverted)
|
||||
Marshal.FreeHGlobal(intPtr);
|
||||
foreach (var intPtr in hiddenAbilitiesConverted)
|
||||
Marshal.FreeHGlobal(intPtr);
|
||||
(ulong)types.Length, baseHealth, baseAttack, baseDefense, baseSpecialAttack, baseSpecialDefense,
|
||||
baseSpeed, ab, (ulong)abilities.Count, hab, (ulong)hiddenAbilities.Count, moves.Ptr, tagsPtr,
|
||||
(ulong)tags.Count);
|
||||
Initialize(ptr);
|
||||
}
|
||||
|
||||
|
||||
public string Name => _name ??= SpeciesVariant.GetName(Ptr).PtrString()!;
|
||||
public float Height => SpeciesVariant.GetHeight(Ptr);
|
||||
public float Weight => SpeciesVariant.GetWeight(Ptr);
|
||||
@@ -61,19 +57,19 @@ namespace PkmnLibSharp.Library
|
||||
}
|
||||
}
|
||||
|
||||
public uint BaseHealth => SpeciesVariant.GetStatistic(Ptr, (byte) Statistic.Health);
|
||||
public uint BaseAttack => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.Attack);
|
||||
public uint BaseDefense => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.Defense);
|
||||
public uint BaseHealth => SpeciesVariant.GetStatistic(Ptr, (byte)Statistic.Health);
|
||||
public uint BaseAttack => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic)Statistic.Attack);
|
||||
public uint BaseDefense => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic)Statistic.Defense);
|
||||
|
||||
public uint BaseSpecialAttack =>
|
||||
SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.SpecialAttack);
|
||||
SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic)Statistic.SpecialAttack);
|
||||
|
||||
public uint BaseSpecialDefense =>
|
||||
SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.SpecialDefense);
|
||||
SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic)Statistic.SpecialDefense);
|
||||
|
||||
public uint BaseSpeed => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic) Statistic.Speed);
|
||||
public uint BaseSpeed => SpeciesVariant.GetStatistic(Ptr, (Creaturelib.Statistic)Statistic.Speed);
|
||||
|
||||
public ReadOnlyArray<string> Abilities
|
||||
public ReadOnlyArray<Ability> Abilities
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -81,12 +77,12 @@ namespace PkmnLibSharp.Library
|
||||
return _abilities;
|
||||
|
||||
var abilityCount = SpeciesVariant.GetTalentCount(Ptr);
|
||||
var abilities = new string[abilityCount];
|
||||
var abilities = new Ability[abilityCount];
|
||||
for (byte i = 0; i < abilityCount; i++)
|
||||
{
|
||||
var s = IntPtr.Zero;
|
||||
SpeciesVariant.GetTalent(Ptr, MarshalHelper.False, i, ref s).Assert();
|
||||
abilities[i] = s.PtrString()!;
|
||||
abilities[i] = Constructor.Active.ConstructAbility(s)!;
|
||||
}
|
||||
|
||||
_abilities = abilities.ToReadOnly();
|
||||
@@ -94,7 +90,7 @@ namespace PkmnLibSharp.Library
|
||||
}
|
||||
}
|
||||
|
||||
public ReadOnlyArray<string> HiddenAbilities
|
||||
public ReadOnlyArray<Ability> HiddenAbilities
|
||||
{
|
||||
get
|
||||
{
|
||||
@@ -102,12 +98,12 @@ namespace PkmnLibSharp.Library
|
||||
return _hiddenAbilities;
|
||||
|
||||
var abilityCount = SpeciesVariant.GetSecretTalentCount(Ptr);
|
||||
var abilities = new string[abilityCount];
|
||||
var abilities = new Ability[abilityCount];
|
||||
for (byte i = 0; i < abilityCount; i++)
|
||||
{
|
||||
var s = IntPtr.Zero;
|
||||
SpeciesVariant.GetTalent(Ptr, MarshalHelper.True, i, ref s).Assert();
|
||||
abilities[i] = s.PtrString()!;
|
||||
abilities[i] = Constructor.Active.ConstructAbility(s)!;
|
||||
}
|
||||
|
||||
_hiddenAbilities = abilities.ToReadOnly();
|
||||
@@ -121,7 +117,7 @@ namespace PkmnLibSharp.Library
|
||||
{
|
||||
if (_moves != null) return _moves;
|
||||
var movesPtr = SpeciesVariant.GetLearnableAttacks(Ptr);
|
||||
if (!TryResolvePointer(movesPtr, out _moves))
|
||||
if (!TryResolvePointer(movesPtr, out _moves))
|
||||
_moves = Constructor.Active.ConstructLearnableMoves(movesPtr);
|
||||
|
||||
return _moves!;
|
||||
@@ -132,7 +128,7 @@ namespace PkmnLibSharp.Library
|
||||
{
|
||||
return Types[index];
|
||||
}
|
||||
|
||||
|
||||
public byte GetRandomAbility(Random rand)
|
||||
{
|
||||
return SpeciesVariant.GetRandomTalent(Ptr, rand.Ptr);
|
||||
|
||||
BIN
PkmnLibSharp/Native/Linux/libArbutils.so
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Linux/libArbutils.so
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Linux/libCreatureLib.so
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Linux/libCreatureLib.so
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Linux/libpkmnLib.so
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Linux/libpkmnLib.so
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Linux/libpkmnlib_ai.so
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Linux/libpkmnlib_ai.so
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Windows/libArbutils.dll
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Windows/libArbutils.dll
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Windows/libCreatureLib.dll
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Windows/libCreatureLib.dll
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Windows/libangelscript.dll
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Windows/libangelscript.dll
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Windows/libpkmnLib.dll
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Windows/libpkmnLib.dll
(Stored with Git LFS)
Binary file not shown.
BIN
PkmnLibSharp/Native/Windows/libpkmnlib_ai.dll
(Stored with Git LFS)
BIN
PkmnLibSharp/Native/Windows/libpkmnlib_ai.dll
(Stored with Git LFS)
Binary file not shown.
@@ -10,25 +10,29 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Native\Linux\*.so.*" Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' ">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
</Content>
|
||||
<Content Include="Native\Linux\*.so" Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Linux)))' ">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
</Content>
|
||||
<Content Include="Native\Windows\*.dll.*" Condition=" '$(OS)' == 'Windows_NT' ">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
<Link>%(Filename)%(Extension)</Link>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Nullable" Version="1.3.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Nullable" Version="1.3.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -14,21 +14,28 @@ namespace PkmnLibSharp.Utilities
|
||||
public abstract class Constructor
|
||||
{
|
||||
public static Constructor Active { get; set; } =
|
||||
new Constructor<
|
||||
Species, Forme, MoveData, Item, LearnableMoves,
|
||||
Pokemon, Battle, BattleParty, BattleSide, LearnedMove>();
|
||||
|
||||
new Constructor<Species, Forme, MoveData, Item, LearnableMoves, Pokemon, Battle, BattleParty, BattleSide,
|
||||
LearnedMove, Ability>();
|
||||
|
||||
internal enum GenericType
|
||||
{
|
||||
Species, Forme, MoveData, Item, LearnableMoves, EvolutionData,
|
||||
Pokemon, Battle,
|
||||
Species,
|
||||
Forme,
|
||||
MoveData,
|
||||
Item,
|
||||
LearnableMoves,
|
||||
EvolutionData,
|
||||
Pokemon,
|
||||
Battle,
|
||||
|
||||
BattleParty,
|
||||
BattleSide,
|
||||
LearnedMove
|
||||
LearnedMove,
|
||||
Ability
|
||||
}
|
||||
|
||||
internal abstract Species? ConstructSpecies(IntPtr ptr);
|
||||
internal abstract Ability? ConstructAbility(IntPtr ptr);
|
||||
internal abstract Forme? ConstructForme(IntPtr ptr);
|
||||
internal abstract MoveData? ConstructMove(IntPtr ptr);
|
||||
internal abstract Item? ConstructItem(IntPtr ptr);
|
||||
@@ -66,37 +73,36 @@ namespace PkmnLibSharp.Utilities
|
||||
}
|
||||
|
||||
public class Constructor<
|
||||
TSpecies, TForme, TMoveData, TItem, TLearnableMoves,
|
||||
TPokemon, TBattle, TBattleParty, TBattleSide, TLearnedMove>
|
||||
: Constructor
|
||||
where TSpecies : Species
|
||||
where TForme : Forme
|
||||
where TMoveData : MoveData
|
||||
where TItem: Item
|
||||
TSpecies, TForme, TMoveData, TItem, TLearnableMoves, TPokemon, TBattle, TBattleParty, TBattleSide, TLearnedMove,
|
||||
TAbility> : Constructor where TSpecies : Species
|
||||
where TForme : Forme
|
||||
where TMoveData : MoveData
|
||||
where TItem : Item
|
||||
where TLearnableMoves : LearnableMoves
|
||||
|
||||
where TPokemon : Pokemon
|
||||
where TBattle : Battle
|
||||
where TBattleParty : BattleParty
|
||||
where TBattleSide : BattleSide
|
||||
where TLearnedMove : LearnedMove
|
||||
where TAbility : Ability
|
||||
{
|
||||
private readonly Type _speciesType = typeof(TSpecies);
|
||||
private readonly Type _formeType = typeof(TForme);
|
||||
private readonly Type _moveDataType = typeof(TMoveData);
|
||||
private readonly Type _itemType = typeof(TItem);
|
||||
private readonly Type _learnableMovesType = typeof(TLearnableMoves);
|
||||
|
||||
private readonly Type _abilityType = typeof(TAbility);
|
||||
|
||||
private readonly Type _pokemonType = typeof(TPokemon);
|
||||
private readonly Type _battleType = typeof(TBattle);
|
||||
private readonly Type _battlePartyType = typeof(TBattleParty);
|
||||
private readonly Type _battleSideType = typeof(TBattleSide);
|
||||
private readonly Type _learnedMoveType = typeof(TLearnedMove);
|
||||
|
||||
|
||||
private static T? Create<T>(IntPtr ptr, Type t) where T : PointerWrapper
|
||||
{
|
||||
if (ptr == IntPtr.Zero) return null;
|
||||
var o = (T) FormatterServices.GetUninitializedObject(t);
|
||||
var o = (T)FormatterServices.GetUninitializedObject(t);
|
||||
o.Initialize(ptr);
|
||||
return o;
|
||||
}
|
||||
@@ -106,6 +112,11 @@ namespace PkmnLibSharp.Utilities
|
||||
return Create<TSpecies>(ptr, _speciesType);
|
||||
}
|
||||
|
||||
internal override Ability? ConstructAbility(IntPtr ptr)
|
||||
{
|
||||
return Create<TAbility>(ptr, _abilityType);
|
||||
}
|
||||
|
||||
internal override Forme? ConstructForme(IntPtr ptr)
|
||||
{
|
||||
return Create<TForme>(ptr, _formeType);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@@ -37,5 +38,19 @@ namespace PkmnLibSharp.Utilities
|
||||
{
|
||||
return _arr.IndexOf(item);
|
||||
}
|
||||
|
||||
public int IndexOf(Func<T, bool> predicate)
|
||||
{
|
||||
for (var index = 0; index < _arr.Count; index++)
|
||||
{
|
||||
var a = _arr[index];
|
||||
if (predicate(a))
|
||||
{
|
||||
return index;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -23,6 +23,12 @@ def write_enum(enum, enumNames):
|
||||
return
|
||||
if (enum["name"].startswith("as")):
|
||||
return
|
||||
if (enum["name"][0] >= 'a' and enum["name"][0] <= 'z'):
|
||||
return
|
||||
if (enum["name"] == "EPOLL_EVENTS"):
|
||||
return;
|
||||
if (enum["name"] == "METADATATYPE"):
|
||||
return;
|
||||
filename = "Generated/{}/{}.cs".format(clean_namespace(namespace), enum["name"])
|
||||
os.makedirs(os.path.dirname(filename), exist_ok=True)
|
||||
with open(filename, "w") as f:
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
{"enums":[{"byteSize":4,"filename":"libpkmnlib_ai","name":"memory_order","values":{"0":"relaxed","1":"consume","2":"acquire","3":"release","4":"acq_rel","5":"seq_cst"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"float_denorm_style","values":{"-1":"denorm_indeterminate","0":"denorm_absent","1":"denorm_present"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"float_round_style","values":{"-1":"round_indeterminate","0":"round_toward_zero","1":"round_to_nearest","2":"round_toward_infinity","3":"round_toward_neg_infinity"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"launch","values":{"1":"async","2":"deferred"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"errc","values":{"1":"operation_not_permitted","10":"no_child_process","100":"network_down","101":"network_unreachable","102":"network_reset","103":"connection_aborted","104":"connection_reset","105":"no_buffer_space","106":"already_connected","107":"not_connected","11":"operation_would_block","110":"timed_out","111":"connection_refused","113":"host_unreachable","114":"connection_already_in_progress","115":"operation_in_progress","12":"not_enough_memory","125":"operation_canceled","13":"permission_denied","130":"owner_dead","131":"state_not_recoverable","14":"bad_address","16":"device_or_resource_busy","17":"file_exists","18":"cross_device_link","19":"no_such_device","2":"no_such_file_or_directory","20":"not_a_directory","21":"is_a_directory","22":"invalid_argument","23":"too_many_files_open_in_system","24":"too_many_files_open","25":"inappropriate_io_control_operation","26":"text_file_busy","27":"file_too_large","28":"no_space_on_device","29":"invalid_seek","3":"no_such_process","30":"read_only_file_system","31":"too_many_links","32":"broken_pipe","33":"argument_out_of_domain","34":"result_out_of_range","35":"resource_deadlock_would_occur","36":"filename_too_long","37":"no_lock_available","38":"function_not_supported","39":"directory_not_empty","4":"interrupted","40":"too_many_symbolic_link_levels","42":"no_message","43":"identifier_removed","5":"io_error","6":"no_such_device_or_address","60":"not_a_stream","61":"no_message_available","62":"stream_timeout","63":"no_stream_resources","67":"no_link","7":"argument_list_too_long","71":"protocol_error","74":"bad_message","75":"value_too_large","8":"executable_format_error","84":"illegal_byte_sequence","88":"not_a_socket","89":"destination_address_required","9":"bad_file_descriptor","90":"message_size","91":"wrong_protocol_type","92":"no_protocol_option","93":"protocol_not_supported","95":"not_supported","97":"address_family_not_supported","98":"address_in_use","99":"address_not_available"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"future_errc","values":{"1":"future_already_retrieved","2":"promise_already_satisfied","3":"no_state","4":"broken_promise"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"AttackTarget","values":{"0":"Adjacent","1":"AdjacentAlly","10":"RandomOpponent","11":"Self","2":"AdjacentAllySelf","3":"AdjacentOpponent","4":"All","5":"AllAdjacent","6":"AllAdjacentOpponent","7":"AllAlly","8":"AllOpponent","9":"Any"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}}],"functions":[{"filename":"libpkmnlib_ai","name":"pkmnlibai_C_GetLastException","parameters":[],"returns":"const char *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_C_GetLastExceptionStacktrace","parameters":[],"returns":"const char *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_PokemonAI_Delete","parameters":[{"name":"p","type":"PokemonAI *"}],"returns":"void"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_PokemonAI_GetChoice","parameters":[{"name":"out","type":"BaseTurnChoice * &"},{"name":"p","type":"PokemonAI *"},{"name":"battle","type":"Battle *"},{"name":"user","type":"Pokemon *"}],"returns":"unsigned char"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_RandomAI_Create","parameters":[],"returns":"RandomAI *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_NaiveAI_Create","parameters":[],"returns":"NaiveAI *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_DepthSearchAI_Create","parameters":[],"returns":"DepthSearchAI *"}]}
|
||||
{"enums":[{"byteSize":4,"filename":"libpkmnlib_ai","name":"memory_order","values":{"0":"relaxed","1":"consume","2":"acquire","3":"release","4":"acq_rel","5":"seq_cst"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"float_denorm_style","values":{"-1":"denorm_indeterminate","0":"denorm_absent","1":"denorm_present"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"float_round_style","values":{"-1":"round_indeterminate","0":"round_toward_zero","1":"round_to_nearest","2":"round_toward_infinity","3":"round_toward_neg_infinity"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"launch","values":{"1":"async","2":"deferred"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"errc","values":{"1":"operation_not_permitted","10":"no_child_process","100":"network_down","101":"network_unreachable","102":"network_reset","103":"connection_aborted","104":"connection_reset","105":"no_buffer_space","106":"already_connected","107":"not_connected","11":"operation_would_block","110":"timed_out","111":"connection_refused","113":"host_unreachable","114":"connection_already_in_progress","115":"operation_in_progress","12":"not_enough_memory","125":"operation_canceled","13":"permission_denied","130":"owner_dead","131":"state_not_recoverable","14":"bad_address","16":"device_or_resource_busy","17":"file_exists","18":"cross_device_link","19":"no_such_device","2":"no_such_file_or_directory","20":"not_a_directory","21":"is_a_directory","22":"invalid_argument","23":"too_many_files_open_in_system","24":"too_many_files_open","25":"inappropriate_io_control_operation","26":"text_file_busy","27":"file_too_large","28":"no_space_on_device","29":"invalid_seek","3":"no_such_process","30":"read_only_file_system","31":"too_many_links","32":"broken_pipe","33":"argument_out_of_domain","34":"result_out_of_range","35":"resource_deadlock_would_occur","36":"filename_too_long","37":"no_lock_available","38":"function_not_supported","39":"directory_not_empty","4":"interrupted","40":"too_many_symbolic_link_levels","42":"no_message","43":"identifier_removed","5":"io_error","6":"no_such_device_or_address","60":"not_a_stream","61":"no_message_available","62":"stream_timeout","63":"no_stream_resources","67":"no_link","7":"argument_list_too_long","71":"protocol_error","74":"bad_message","75":"value_too_large","8":"executable_format_error","84":"illegal_byte_sequence","88":"not_a_socket","89":"destination_address_required","9":"bad_file_descriptor","90":"message_size","91":"wrong_protocol_type","92":"no_protocol_option","93":"protocol_not_supported","95":"not_supported","97":"address_family_not_supported","98":"address_in_use","99":"address_not_available"}},{"byteSize":4,"filename":"libpkmnlib_ai","name":"future_errc","values":{"1":"future_already_retrieved","2":"promise_already_satisfied","3":"no_state","4":"broken_promise"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"AttackTarget","values":{"0":"Adjacent","1":"AdjacentAlly","10":"RandomOpponent","11":"Self","2":"AdjacentAllySelf","3":"AdjacentOpponent","4":"All","5":"AllAdjacent","6":"AllAdjacentOpponent","7":"AllAlly","8":"AllOpponent","9":"Any"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"libpkmnlib_ai","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}}],"functions":[{"filename":"libpkmnlib_ai","name":"pkmnlibai_C_GetLastException","parameters":[],"returns":"const char *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_C_GetLastExceptionStacktrace","parameters":[],"returns":"const char *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_PokemonAI_Delete","parameters":[{"name":"p","type":"PokemonAI *"}],"returns":"void"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_PokemonAI_GetChoice","parameters":[{"name":"out","type":"BaseTurnChoice * &"},{"name":"p","type":"PokemonAI *"},{"name":"battle","type":"Battle *"},{"name":"user","type":"Pokemon *"}],"returns":"unsigned char"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_RandomAI_Create","parameters":[],"returns":"RandomAI *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_NaiveAI_Create","parameters":[],"returns":"NaiveAI *"},{"filename":"libpkmnlib_ai","name":"pkmnlibai_DepthSearchAI_Create","parameters":[],"returns":"DepthSearchAI *"}]}
|
||||
|
||||
Reference in New Issue
Block a user