Update to latest version of pkmnLib.
This commit is contained in:
46 files changed
+642
-342
No files matched your search
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
{"enums":[{"byteSize":4,"filename":"libArbutils","name":"float_denorm_style","values":{"-1":"denorm_indeterminate","0":"denorm_absent","1":"denorm_present"}},{"byteSize":4,"filename":"libArbutils","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":"libArbutils","name":"bfd_flavour","values":{"0":"bfd_target_unknown_flavour","1":"bfd_target_aout_flavour","10":"bfd_target_som_flavour","11":"bfd_target_os9k_flavour","12":"bfd_target_versados_flavour","13":"bfd_target_msdos_flavour","14":"bfd_target_ovax_flavour","15":"bfd_target_evax_flavour","16":"bfd_target_mmo_flavour","17":"bfd_target_mach_o_flavour","18":"bfd_target_pef_flavour","19":"bfd_target_pef_xlib_flavour","2":"bfd_target_coff_flavour","20":"bfd_target_sym_flavour","3":"bfd_target_ecoff_flavour","4":"bfd_target_xcoff_flavour","5":"bfd_target_elf_flavour","6":"bfd_target_tekhex_flavour","7":"bfd_target_srec_flavour","8":"bfd_target_verilog_flavour","9":"bfd_target_ihex_flavour"}},{"byteSize":4,"filename":"libArbutils","name":"bfd_endian","values":{"0":"BFD_ENDIAN_BIG","1":"BFD_ENDIAN_LITTLE","2":"BFD_ENDIAN_UNKNOWN"}},{"byteSize":4,"filename":"libArbutils","name":"bfd_print_symbol","values":{"0":"bfd_print_symbol_name","1":"bfd_print_symbol_more","2":"bfd_print_symbol_all"}},{"byteSize":4,"filename":"libArbutils","name":"bfd_reloc_code_real","values":{"0":"_dummy_first_bfd_reloc_code_real","1":"BFD_RELOC_64","10":"BFD_RELOC_24_PCREL","100":"BFD_RELOC_SPARC_HH22","1000":"BFD_RELOC_NDS32_GOT_HI20","1001":"BFD_RELOC_NDS32_GOT_LO12","1002":"BFD_RELOC_NDS32_GOTPC_HI20","1003":"BFD_RELOC_NDS32_GOTPC_LO12","1004":"BFD_RELOC_NDS32_INSN16","1005":"BFD_RELOC_NDS32_LABEL","1006":"BFD_RELOC_NDS32_LONGCALL1","1007":"BFD_RELOC_NDS32_LONGCALL2","1008":"BFD_RELOC_NDS32_LONGCALL3","1009":"BFD_RELOC_NDS32_LONGJUMP1","101":"BFD_RELOC_SPARC_HM10","1010":"BFD_RELOC_NDS32_LONGJUMP2","1011":"BFD_RELOC_NDS32_LONGJUMP3","1012":"BFD_RELOC_NDS32_LOADSTORE","1013":"BFD_RELOC_NDS32_9_FIXED","1014":"BFD_RELOC_NDS32_15_FIXED","1015":"BFD_RELOC_NDS32_17_FIXED","1016":"BFD_RELOC_NDS32_25_FIXED","1017":"BFD_RELOC_NDS32_LONGCALL4","1018":"BFD_RELOC_NDS32_LONGCALL5","1019":"BFD_RELOC_NDS32_LONGCALL6","102":"BFD_RELOC_SPARC_LM22","1020":"BFD_RELOC_NDS32_LONGJUMP4","1021":"BFD_RELOC_NDS32_LONGJUMP5","1022":"BFD_RELOC_NDS32_LONGJUMP6","1023":"BFD_RELOC_NDS32_LONGJUMP7","1024":"BFD_RELOC_NDS32_PLTREL_HI20","1025":"BFD_RELOC_NDS32_PLTREL_LO12","1026":"BFD_RELOC_NDS32_PLT_GOTREL_HI20","1027":"BFD_RELOC_NDS32_PLT_GOTREL_LO12","1028":"BFD_RELOC_NDS32_SDA12S2_DP","1029":"BFD_RELOC_NDS32_SDA12S2_SP","103":"BFD_RELOC_SPARC_PC_HH22","1030":"BFD_RELOC_NDS32_LO12S2_DP","1031":"BFD_RELOC_NDS32_LO12S2_SP","1032":"BFD_RELOC_NDS32_DWARF2_OP1","1033":"BFD_RELOC_NDS32_DWARF2_OP2","1034":"BFD_RELOC_NDS32_DWARF2_LEB","1035":"BFD_RELOC_NDS32_UPDATE_TA","1036":"BFD_RELOC_NDS32_PLT_GOTREL_LO20","1037":"BFD_RELOC_NDS32_PLT_GOTREL_LO15","1038":"BFD_RELOC_NDS32_PLT_GOTREL_LO19","1039":"BFD_RELOC_NDS32_GOT_LO15","104":"BFD_RELOC_SPARC_PC_HM10","1040":"BFD_RELOC_NDS32_GOT_LO19","1041":"BFD_RELOC_NDS32_GOTOFF_LO15","1042":"BFD_RELOC_NDS32_GOTOFF_LO19","1043":"BFD_RELOC_NDS32_GOT15S2","1044":"BFD_RELOC_NDS32_GOT17S2","1045":"BFD_RELOC_NDS32_5","1046":"BFD_RELOC_NDS32_10_UPCREL","1047":"BFD_RELOC_NDS32_SDA_FP7U2_RELA","1048":"BFD_RELOC_NDS32_RELAX_ENTRY","1049":"BFD_RELOC_NDS32_GOT_SUFF","105":"BFD_RELOC_SPARC_PC_LM22","1050":"BFD_RELOC_NDS32_GOTOFF_SUFF","1051":"BFD_RELOC_NDS32_PLT_GOT_SUFF","1052":"BFD_RELOC_NDS32_MULCALL_SUFF","1053":"BFD_RELOC_NDS32_PTR","1054":"BFD_RELOC_NDS32_PTR_COUNT","1055":"BFD_RELOC_NDS32_PTR_RESOLVED","1056":"BFD_RELOC_NDS32_PLTBLOCK","1057":"BFD_RELOC_NDS32_RELAX_REGION_BEGIN","1058":"BFD_RELOC_NDS32_RELAX_REGION_END","1059":"BFD_RELOC_NDS32_MINUEND","106":"BFD_RELOC_SPARC_WDISP16","1060":"BFD_RELOC_NDS32_SUBTRAHEND","1061":"BFD_RELOC_NDS32_DIFF8","1062":"BFD_RELOC_NDS32_DIFF16","1063":"BFD_RELOC_NDS32_DIFF32","1064":"BFD_RELOC_NDS32_DIFF_ULEB128","1065":"BFD_RELOC_NDS32_EMPTY","1066":"BFD_RELOC_NDS32_25_ABS","1067":"BFD_RELOC_NDS32_DATA","1068":"BFD_RELOC_NDS32_TRAN","1069":"BFD_RELOC_NDS32_17IFC_PCREL","107":"BFD_RELOC_SPARC_WDISP19","1070":"BFD_RELOC_NDS32_10IFCU_PCREL","1071":"BFD_RELOC_NDS32_TPOFF","1072":"BFD_RELOC_NDS32_GOTTPOFF","1073":"BFD_RELOC_NDS32_TLS_LE_HI20","1074":"BFD_RELOC_NDS32_TLS_LE_LO12","1075":"BFD_RELOC_NDS32_TLS_LE_20","1076":"BFD_RELOC_NDS32_TLS_LE_15S0","1077":"BFD_RELOC_NDS32_TLS_LE_15S1","1078":"BFD_RELOC_NDS32_TLS_LE_15S2","1079":"BFD_RELOC_NDS32_TLS_LE_ADD","108":"BFD_RELOC_SPARC_7","1080":"BFD_RELOC_NDS32_TLS_LE_LS","1081":"BFD_RELOC_NDS32_TLS_IE_HI20","1082":"BFD_RELOC_NDS32_TLS_IE_LO12","1083":"BFD_RELOC_NDS32_TLS_IE_LO12S2","1084":"BFD_RELOC_NDS32_TLS_IEGP_HI20","1085":"BFD_RELOC_NDS32_TLS_IEGP_LO12","1086":"BFD_RELOC_NDS32_TLS_IEGP_LO12S2","1087":"BFD_RELOC_NDS32_TLS_IEGP_LW","1088":"BFD_RELOC_NDS32_TLS_DESLine truncated
|
||||
{"enums":[{"byteSize":4,"filename":"libArbutils","name":"bfd_flavour","values":{"0":"bfd_target_unknown_flavour","1":"bfd_target_aout_flavour","10":"bfd_target_som_flavour","11":"bfd_target_os9k_flavour","12":"bfd_target_versados_flavour","13":"bfd_target_msdos_flavour","14":"bfd_target_ovax_flavour","15":"bfd_target_evax_flavour","16":"bfd_target_mmo_flavour","17":"bfd_target_mach_o_flavour","18":"bfd_target_pef_flavour","19":"bfd_target_pef_xlib_flavour","2":"bfd_target_coff_flavour","20":"bfd_target_sym_flavour","3":"bfd_target_ecoff_flavour","4":"bfd_target_xcoff_flavour","5":"bfd_target_elf_flavour","6":"bfd_target_tekhex_flavour","7":"bfd_target_srec_flavour","8":"bfd_target_verilog_flavour","9":"bfd_target_ihex_flavour"}},{"byteSize":4,"filename":"libArbutils","name":"bfd_endian","values":{"0":"BFD_ENDIAN_BIG","1":"BFD_ENDIAN_LITTLE","2":"BFD_ENDIAN_UNKNOWN"}},{"byteSize":4,"filename":"libArbutils","name":"bfd_print_symbol","values":{"0":"bfd_print_symbol_name","1":"bfd_print_symbol_more","2":"bfd_print_symbol_all"}},{"byteSize":4,"filename":"libArbutils","name":"bfd_reloc_code_real","values":{"0":"_dummy_first_bfd_reloc_code_real","1":"BFD_RELOC_64","10":"BFD_RELOC_24_PCREL","100":"BFD_RELOC_SPARC_HH22","1000":"BFD_RELOC_NDS32_GOT_HI20","1001":"BFD_RELOC_NDS32_GOT_LO12","1002":"BFD_RELOC_NDS32_GOTPC_HI20","1003":"BFD_RELOC_NDS32_GOTPC_LO12","1004":"BFD_RELOC_NDS32_INSN16","1005":"BFD_RELOC_NDS32_LABEL","1006":"BFD_RELOC_NDS32_LONGCALL1","1007":"BFD_RELOC_NDS32_LONGCALL2","1008":"BFD_RELOC_NDS32_LONGCALL3","1009":"BFD_RELOC_NDS32_LONGJUMP1","101":"BFD_RELOC_SPARC_HM10","1010":"BFD_RELOC_NDS32_LONGJUMP2","1011":"BFD_RELOC_NDS32_LONGJUMP3","1012":"BFD_RELOC_NDS32_LOADSTORE","1013":"BFD_RELOC_NDS32_9_FIXED","1014":"BFD_RELOC_NDS32_15_FIXED","1015":"BFD_RELOC_NDS32_17_FIXED","1016":"BFD_RELOC_NDS32_25_FIXED","1017":"BFD_RELOC_NDS32_LONGCALL4","1018":"BFD_RELOC_NDS32_LONGCALL5","1019":"BFD_RELOC_NDS32_LONGCALL6","102":"BFD_RELOC_SPARC_LM22","1020":"BFD_RELOC_NDS32_LONGJUMP4","1021":"BFD_RELOC_NDS32_LONGJUMP5","1022":"BFD_RELOC_NDS32_LONGJUMP6","1023":"BFD_RELOC_NDS32_LONGJUMP7","1024":"BFD_RELOC_NDS32_PLTREL_HI20","1025":"BFD_RELOC_NDS32_PLTREL_LO12","1026":"BFD_RELOC_NDS32_PLT_GOTREL_HI20","1027":"BFD_RELOC_NDS32_PLT_GOTREL_LO12","1028":"BFD_RELOC_NDS32_SDA12S2_DP","1029":"BFD_RELOC_NDS32_SDA12S2_SP","103":"BFD_RELOC_SPARC_PC_HH22","1030":"BFD_RELOC_NDS32_LO12S2_DP","1031":"BFD_RELOC_NDS32_LO12S2_SP","1032":"BFD_RELOC_NDS32_DWARF2_OP1","1033":"BFD_RELOC_NDS32_DWARF2_OP2","1034":"BFD_RELOC_NDS32_DWARF2_LEB","1035":"BFD_RELOC_NDS32_UPDATE_TA","1036":"BFD_RELOC_NDS32_PLT_GOTREL_LO20","1037":"BFD_RELOC_NDS32_PLT_GOTREL_LO15","1038":"BFD_RELOC_NDS32_PLT_GOTREL_LO19","1039":"BFD_RELOC_NDS32_GOT_LO15","104":"BFD_RELOC_SPARC_PC_HM10","1040":"BFD_RELOC_NDS32_GOT_LO19","1041":"BFD_RELOC_NDS32_GOTOFF_LO15","1042":"BFD_RELOC_NDS32_GOTOFF_LO19","1043":"BFD_RELOC_NDS32_GOT15S2","1044":"BFD_RELOC_NDS32_GOT17S2","1045":"BFD_RELOC_NDS32_5","1046":"BFD_RELOC_NDS32_10_UPCREL","1047":"BFD_RELOC_NDS32_SDA_FP7U2_RELA","1048":"BFD_RELOC_NDS32_RELAX_ENTRY","1049":"BFD_RELOC_NDS32_GOT_SUFF","105":"BFD_RELOC_SPARC_PC_LM22","1050":"BFD_RELOC_NDS32_GOTOFF_SUFF","1051":"BFD_RELOC_NDS32_PLT_GOT_SUFF","1052":"BFD_RELOC_NDS32_MULCALL_SUFF","1053":"BFD_RELOC_NDS32_PTR","1054":"BFD_RELOC_NDS32_PTR_COUNT","1055":"BFD_RELOC_NDS32_PTR_RESOLVED","1056":"BFD_RELOC_NDS32_PLTBLOCK","1057":"BFD_RELOC_NDS32_RELAX_REGION_BEGIN","1058":"BFD_RELOC_NDS32_RELAX_REGION_END","1059":"BFD_RELOC_NDS32_MINUEND","106":"BFD_RELOC_SPARC_WDISP16","1060":"BFD_RELOC_NDS32_SUBTRAHEND","1061":"BFD_RELOC_NDS32_DIFF8","1062":"BFD_RELOC_NDS32_DIFF16","1063":"BFD_RELOC_NDS32_DIFF32","1064":"BFD_RELOC_NDS32_DIFF_ULEB128","1065":"BFD_RELOC_NDS32_EMPTY","1066":"BFD_RELOC_NDS32_25_ABS","1067":"BFD_RELOC_NDS32_DATA","1068":"BFD_RELOC_NDS32_TRAN","1069":"BFD_RELOC_NDS32_17IFC_PCREL","107":"BFD_RELOC_SPARC_WDISP19","1070":"BFD_RELOC_NDS32_10IFCU_PCREL","1071":"BFD_RELOC_NDS32_TPOFF","1072":"BFD_RELOC_NDS32_GOTTPOFF","1073":"BFD_RELOC_NDS32_TLS_LE_HI20","1074":"BFD_RELOC_NDS32_TLS_LE_LO12","1075":"BFD_RELOC_NDS32_TLS_LE_20","1076":"BFD_RELOC_NDS32_TLS_LE_15S0","1077":"BFD_RELOC_NDS32_TLS_LE_15S1","1078":"BFD_RELOC_NDS32_TLS_LE_15S2","1079":"BFD_RELOC_NDS32_TLS_LE_ADD","108":"BFD_RELOC_SPARC_7","1080":"BFD_RELOC_NDS32_TLS_LE_LS","1081":"BFD_RELOC_NDS32_TLS_IE_HI20","1082":"BFD_RELOC_NDS32_TLS_IE_LO12","1083":"BFD_RELOC_NDS32_TLS_IE_LO12S2","1084":"BFD_RELOC_NDS32_TLS_IEGP_HI20","1085":"BFD_RELOC_NDS32_TLS_IEGP_LO12","1086":"BFD_RELOC_NDS32_TLS_IEGP_LO12S2","1087":"BFD_RELOC_NDS32_TLS_IEGP_LW","1088":"BFD_RELOC_NDS32_TLS_DESC","1089":"BFD_RELOC_NDS32_TLS_DESC_HI20","109":"BFD_RELOC_SPARC_6","1090":"BFD_RELOC_NDS32_TLS_DESC_LO12","1091":"BFD_RELOC_NDS32_TLS_DESC_20","1092":"BFD_RELOC_NDS32_TLS_DESC_SDA17S2","1093":"BFD_RELOC_NDS32_TLS_DESC_ADD","1094":"BFD_RELOC_NDS32_TLS_DESC_FUNC","1095":"BFD_RELOC_NDS32_TLS_DESC_CALL","1096":"BFD_RELOC_NDS32_TLS_DESC_MEM","1097":"BFD_RELOC_NDLine truncated
|
||||
@@ -1 +1 @@
|
||||
{"enums":[{"byteSize":4,"filename":"libCreatureLib","name":"float_denorm_style","values":{"-1":"denorm_indeterminate","0":"denorm_absent","1":"denorm_present"}},{"byteSize":4,"filename":"libCreatureLib","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":1,"filename":"libCreatureLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":1,"filename":"libCreatureLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"libCreatureLib","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"libCreatureLib","name":"DamageSource","values":{"0":"AttackDamage"}},{"byteSize":1,"filename":"libCreatureLib","name":"EventDataKind","values":{"0":"Damage","1":"Heal","10":"ChangeVariant","11":"AttackUse","12":"ChangeStatBoost","13":"Fail","14":"Swap","15":"StatusChange","2":"Faint","3":"Switch","4":"TurnStart","5":"TurnEnd","6":"ExperienceGain","7":"Miss","8":"DisplayText","9":"ChangeSpecies"}},{"byteSize":1,"filename":"libCreatureLib","name":"HistoryElementKind","values":{"0":"AttackUse","1":"Damage"}},{"byteSize":4,"filename":"libCreatureLib","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"libCreatureLib","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"libCreatureLib","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"libCreatureLib","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"libCreatureLib","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":"libCreatureLib","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"libCreatureLib","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}}],"functions":[{"filename":"libCreatureLib","name":"CreatureLib_Battle_Construct","parameters":[{"name":"out","type":"Battle * &"},{"name":"library","type":"const BattleLibrary *"},{"name":"partyArr","type":"BattleParty * *"},{"name":"numberOfParties","type":"long unsigned int"},{"name":"canFlee","type":"bool"},{"name":"numberOfSides","type":"unsigned char"},{"name":"creaturesPerSide","type":"unsigned char"},{"name":"randomSeed","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_Destruct","parameters":[{"name":"p","type":"const Battle *"}],"returns":"void"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetLibrary","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleLibrary *"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CanUse","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_TrySetChoice","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CanFlee","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CheckChoicesSetAndRun","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCurrentTurn","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCreaturesPerSide","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCurrentTurnQueue","parameters":[{"name":"p","type":"const Battle *"}],"returns":"ChoiceQueue *"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetRandom","parameters":[{"name":"p","type":"Battle *"}],"returns":"BattleRandom *"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CreatureInField","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const Battle *"},{"name":"sLine truncated
|
||||
{"enums":[{"byteSize":4,"filename":"libCreatureLib","name":"float_denorm_style","values":{"-1":"denorm_indeterminate","0":"denorm_absent","1":"denorm_present"}},{"byteSize":4,"filename":"libCreatureLib","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":1,"filename":"libCreatureLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"libCreatureLib","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"libCreatureLib","name":"DamageSource","values":{"0":"AttackDamage","1":"Misc"}},{"byteSize":1,"filename":"libCreatureLib","name":"EventDataKind","values":{"0":"Damage","1":"Heal","10":"ChangeVariant","11":"AttackUse","12":"ChangeStatBoost","13":"Fail","14":"Swap","15":"StatusChange","2":"Faint","3":"Switch","4":"TurnStart","5":"TurnEnd","6":"ExperienceGain","7":"Miss","8":"DisplayText","9":"ChangeSpecies"}},{"byteSize":1,"filename":"libCreatureLib","name":"HistoryElementKind","values":{"0":"AttackUse","1":"Damage"}},{"byteSize":4,"filename":"libCreatureLib","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"libCreatureLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":1,"filename":"libCreatureLib","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"libCreatureLib","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"libCreatureLib","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":"libCreatureLib","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"libCreatureLib","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"libCreatureLib","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}}],"functions":[{"filename":"libCreatureLib","name":"CreatureLib_Battle_Construct","parameters":[{"name":"out","type":"Battle * &"},{"name":"library","type":"const BattleLibrary *"},{"name":"partyArr","type":"BattleParty * *"},{"name":"numberOfParties","type":"long unsigned int"},{"name":"canFlee","type":"bool"},{"name":"numberOfSides","type":"unsigned char"},{"name":"creaturesPerSide","type":"unsigned char"},{"name":"randomSeed","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_Destruct","parameters":[{"name":"p","type":"const Battle *"}],"returns":"void"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetLibrary","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleLibrary *"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CanUse","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_TrySetChoice","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CanFlee","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CheckChoicesSetAndRun","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCurrentTurn","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCreaturesPerSide","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned int"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCurrentTurnQueue","parameters":[{"name":"p","type":"const Battle *"}],"returns":"ChoiceQueue *"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetRandom","parameters":[{"name":"p","type":"Battle *"}],"returns":"BattleRandom *"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_CreatureInField","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"libCreatureLib","name":"CreatureLib_Battle_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const Battle *"}Line truncated
|
||||
@@ -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:
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"enums":[{"byteSize":4,"filename":"libpkmnLib","name":"memory_order","values":{"0":"relaxed","1":"consume","2":"acquire","3":"release","4":"acq_rel","5":"seq_cst"}},{"byteSize":4,"filename":"libpkmnLib","name":"float_denorm_style","values":{"-1":"denorm_indeterminate","0":"denorm_absent","1":"denorm_present"}},{"byteSize":4,"filename":"libpkmnLib","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","name":"netdb_errors","values":{"1":"host_not_found","2":"host_not_found_try_again","3":"no_recovery","4":"no_data"}},{"byteSize":4,"filename":"libpkmnLib","name":"addrinfo_errors","values":{"-7":"socket_type_not_supported","-8":"service_not_found"}},{"byteSize":4,"filename":"libpkmnLib","name":"misc_errors","values":{"1":"already_open","2":"eof","3":"not_found","4":"fd_set_failure"}},{"byteSize":4,"filename":"libpkmnLib","name":"adopt_lock_t","values":{"0":"adopt_lock"}},{"byteSize":4,"filename":"libpkmnLib","name":"status","values":{"0":"not_done","1":"done","2":"done_and_exhausted"}},{"byteSize":4,"filename":"libpkmnLib","name":"fork_event","values":{"0":"fork_prepare","1":"fork_parent","2":"fork_child"}},{"byteSize":4,"filename":"libpkmnLib","name":"wait_type","values":{"0":"wait_read","1":"wait_write","2":"wait_error"}},{"byteSize":4,"filename":"libpkmnLib","name":"shutdown_type","values":{"0":"shutdown_receive","1":"shutdown_send","2":"shutdown_both"}},{"byteSize":1,"filename":"libpkmnLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":8,"filename":"libpkmnLib","name":"asEObjTypeFlags","values":{"-2147483648":"asOBJ_APP_CLASS_MORE_CONSTRUCTORS","1":"asOBJ_REF","1024":"asOBJ_APP_CLASS_DESTRUCTOR","1048576":"asOBJ_IMPLICIT_HANDLE","1073741824":"asOBJ_APP_ALIGN16","128":"asOBJ_ASHANDLE","1280":"asOBJ_APP_CLASS_D","131072":"asOBJ_APP_CLASS_ALLFLOATS","134217728":"asOBJ_TEMPLATE_SUBTYPE","16":"asOBJ_NOHANDLE","16384":"asOBJ_APP_FLOAT","16777216":"asOBJ_FUNCDEF","1792":"asOBJ_APP_CLASS_CD","2":"asOBJ_VALUE","2048":"asOBJ_APP_CLASS_ASSIGNMENT","2097152":"asOBJ_SCRIPT_OBJECT","2149580799":"asOBJ_MASK_VALID_FLAGS","2304":"asOBJ_APP_CLASS_A","256":"asOBJ_APP_CLASS","262144":"asOBJ_NOCOUNT","268435456":"asOBJ_TYPEDEF","2816":"asOBJ_APP_CLASS_CA","32":"asOBJ_SCOPED","32768":"asOBJ_APP_ARRAY","3328":"asOBJ_APP_CLASS_DA","33554432":"asOBJ_LIST_PATTERN","3840":"asOBJ_APP_CLASS_CDA","4":"asOBJ_GC","4096":"asOBJ_APP_CLASS_COPY_CONSTRUCTOR","4194304":"asOBJ_SHARED","4352":"asOBJ_APP_CLASS_K","4864":"asOBJ_APP_CLASS_CK","512":"asOBJ_APP_CLASS_CONSTRUCTOR","524288":"asOBJ_APP_CLASS_ALIGN8","536870912":"asOBJ_ABSTRACT","5376":"asOBJ_APP_CLASS_DK","5888":"asOBJ_APP_CLASS_CDK","64":"asOBJ_TEMPLATE","6400":"asOBJ_APP_CLASS_AK","65536":"asOBJ_APP_CLASS_ALLINTS","67108864":"asOBJ_ENUM","6912":"asOBJ_APP_CLASS_CAK","7424":"asOBJ_APP_CLASS_DAK","768":"asOBJ_APP_CLASS_C","7936":"asOBJ_APP_CLASS_CDAK","8":"asOBJ_POD","8192":"asOBJ_APP_PRIMITIVE","8388608":"asOBJ_NOINHERIT"}},{"byteSize":4,"filename":"libpkmnLib","name":"asECallConvTypes","values":{"0":"asCALL_CDECL","1":"asCALL_STDCALL","2":"asCALL_THISCALL_ASGLOBAL","3":"asCALL_THISCALL","4":"asCALL_CDECL_OBJLAST","5":"asCALL_CDECL_OBJFIRST","6":"asCALL_GENERIC","7":"asCALL_THISCALL_OBJLAST","8":"asCALL_THISCALL_OBJFIRST"}},{"byteSize":4,"filename":"libpkmnLib","name":"EPOLL_EVENTS","values":{"1":"EPOLLIN","1024":"EPOLLMSG","1073741824":"EPOLLONESHOT","128":"EPOLLRDBAND","16":"EPOLLHUP","2":"EPOLLPRI","2147483648":"EPOLLET","256":"EPOLLWRNORM","268435456":"EPOLLEXCLUSIVE","4":"EPOLLOUT","512":"EPOLLWRBAND","536870912":"EPOLLWAKEUP","64":"EPOLLRDNORM","8":"EPOLLERR","8192":"EPOLLRDHUP"}},{"byteSize":1,"filename":"libpkmnLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"libpkmnLib","name":"EventDataKind","values":{"0":"Damage","1":"Heal","10":"ChangeVariant","11":"AttackUse","12":"ChangeStatBoost","13":"Fail","14":"Swap","15":"StatusChange","2":"Faint","3":"Switch","4":"TurnStart","5":"TurnEnd","6":"ExperienceGain","7":"Miss","8":"DisplayText","9":"ChangeSpecies"}},{"byteSize":1,"filename":"libpkmnLib","name":"PkmnEventDataKind","values":{"128":"WeatherChange"}},{"byteSize":1,"filename":"libpkmnLib","name":"TimeOfDay","values":{"0":"Night","1":"Morning","2":"Afternoon","3":"Evening"}},{"byteSize":1,"filename":"libpkmnLib","name":"EvolutionMethod","values":{"0":"Level","1":"HighFriendship","10":"EvolutionItemUseWithGender","11":"Trade","12":"TradeWithHeldItem","13":"TradeWithSpecificPokemon","14":"Custom","2":"HighFriendshipTime","3":"KnownMove","4":"LocationBased","5":"TimeBased","6":"HoldsItem","7":"HoldsItemTime","8":"IsGenderAndLevel","9":"EvolutionItemUse"}},{"byteSize":1,"filename":"libpkmnLib","name":"MoveCategory","values":{"0Line truncated
|
||||
{"enums":[{"byteSize":4,"filename":"libpkmnLib","name":"memory_order","values":{"0":"relaxed","1":"consume","2":"acquire","3":"release","4":"acq_rel","5":"seq_cst"}},{"byteSize":4,"filename":"libpkmnLib","name":"float_denorm_style","values":{"-1":"denorm_indeterminate","0":"denorm_absent","1":"denorm_present"}},{"byteSize":4,"filename":"libpkmnLib","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","name":"netdb_errors","values":{"1":"host_not_found","2":"host_not_found_try_again","3":"no_recovery","4":"no_data"}},{"byteSize":4,"filename":"libpkmnLib","name":"addrinfo_errors","values":{"-7":"socket_type_not_supported","-8":"service_not_found"}},{"byteSize":4,"filename":"libpkmnLib","name":"misc_errors","values":{"1":"already_open","2":"eof","3":"not_found","4":"fd_set_failure"}},{"byteSize":4,"filename":"libpkmnLib","name":"adopt_lock_t","values":{"0":"adopt_lock"}},{"byteSize":4,"filename":"libpkmnLib","name":"fork_event","values":{"0":"fork_prepare","1":"fork_parent","2":"fork_child"}},{"byteSize":1,"filename":"libpkmnLib","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":8,"filename":"libpkmnLib","name":"asEObjTypeFlags","values":{"-2147483648":"asOBJ_APP_CLASS_MORE_CONSTRUCTORS","1":"asOBJ_REF","1024":"asOBJ_APP_CLASS_DESTRUCTOR","1048576":"asOBJ_IMPLICIT_HANDLE","1073741824":"asOBJ_APP_ALIGN16","128":"asOBJ_ASHANDLE","1280":"asOBJ_APP_CLASS_D","131072":"asOBJ_APP_CLASS_ALLFLOATS","134217728":"asOBJ_TEMPLATE_SUBTYPE","16":"asOBJ_NOHANDLE","16384":"asOBJ_APP_FLOAT","16777216":"asOBJ_FUNCDEF","1792":"asOBJ_APP_CLASS_CD","2":"asOBJ_VALUE","2048":"asOBJ_APP_CLASS_ASSIGNMENT","2097152":"asOBJ_SCRIPT_OBJECT","2149580799":"asOBJ_MASK_VALID_FLAGS","2304":"asOBJ_APP_CLASS_A","256":"asOBJ_APP_CLASS","262144":"asOBJ_NOCOUNT","268435456":"asOBJ_TYPEDEF","2816":"asOBJ_APP_CLASS_CA","32":"asOBJ_SCOPED","32768":"asOBJ_APP_ARRAY","3328":"asOBJ_APP_CLASS_DA","33554432":"asOBJ_LIST_PATTERN","3840":"asOBJ_APP_CLASS_CDA","4":"asOBJ_GC","4096":"asOBJ_APP_CLASS_COPY_CONSTRUCTOR","4194304":"asOBJ_SHARED","4352":"asOBJ_APP_CLASS_K","4864":"asOBJ_APP_CLASS_CK","512":"asOBJ_APP_CLASS_CONSTRUCTOR","524288":"asOBJ_APP_CLASS_ALIGN8","536870912":"asOBJ_ABSTRACT","5376":"asOBJ_APP_CLASS_DK","5888":"asOBJ_APP_CLASS_CDK","64":"asOBJ_TEMPLATE","6400":"asOBJ_APP_CLASS_AK","65536":"asOBJ_APP_CLASS_ALLINTS","67108864":"asOBJ_ENUM","6912":"asOBJ_APP_CLASS_CAK","7424":"asOBJ_APP_CLASS_DAK","768":"asOBJ_APP_CLASS_C","7936":"asOBJ_APP_CLASS_CDAK","8":"asOBJ_POD","8192":"asOBJ_APP_PRIMITIVE","8388608":"asOBJ_NOINHERIT"}},{"byteSize":4,"filename":"libpkmnLib","name":"asECallConvTypes","values":{"0":"asCALL_CDECL","1":"asCALL_STDCALL","2":"asCALL_THISCALL_ASGLOBAL","3":"asCALL_THISCALL","4":"asCALL_CDECL_OBJLAST","5":"asCALL_CDECL_OBJFIRST","6":"asCALL_GENERIC","7":"asCALL_THISCALL_OBJLAST","8":"asCALL_THISCALL_OBJFIRST"}},{"byteSize":4,"filename":"libpkmnLib","name":"EPOLL_EVENTS","values":{"1":"EPOLLIN","1024":"EPOLLMSG","1073741824":"EPOLLONESHOT","128":"EPOLLRDBAND","16":"EPOLLHUP","2":"EPOLLPRI","2147483648":"EPOLLET","256":"EPOLLWRNORM","268435456":"EPOLLEXCLUSIVE","4":"EPOLLOUT","512":"EPOLLWRBAND","536870912":"EPOLLWAKEUP","64":"EPOLLRDNORM","8":"EPOLLERR","8192":"EPOLLRDHUP"}},{"byteSize":1,"filename":"libpkmnLib","name":"EventDataKind","values":{"0":"Damage","1":"Heal","10":"ChangeVariant","11":"AttackUse","12":"ChangeStatBoost","13":"Fail","14":"Swap","15":"StatusChange","2":"Faint","3":"Switch","4":"TurnStart","5":"TurnEnd","6":"ExperienceGain","7":"Miss","8":"DisplayText","9":"ChangeSpecies"}},{"byteSize":1,"filename":"libpkmnLib","name":"PkmnEventDataKind","values":{"128":"WeatherChange"}},{"byteSize":1,"filename":"libpkmnLib","name":"TimeOfDay","values":{"0":"Night","1":"Morning","2":"Afternoon","3":"Evening"}},{"byteSize":1,"filename":"libpkmnLib","name":"MoveCategory","values":{"0":"Physical","1":"Special","2":"Status"}},{"byteSize":1,"filename":"libpkmnLib","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","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":4,"filename":"libpkmnLib","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"libpkmnLib","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"libpkmnLib","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"libpkmnLib","name":"EvolutionMethod","values":{"0":"Level","1":"HighFriendship","Line truncated
|
||||
@@ -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