From 049eb480c026c8cb5a89aff5d6a3a4d49cad5a83 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sat, 18 Jul 2020 16:49:11 +0200 Subject: [PATCH] Initial work on battle side. --- PkmnLibSharp/Battling/AngelScriptResolver.cs | 31 ++++ PkmnLibSharp/Battling/BattleLibrary.cs | 99 +++++++++++ PkmnLibSharp/Battling/DamageLibrary.cs | 54 ++++++ PkmnLibSharp/Battling/ExperienceLibrary.cs | 30 ++++ PkmnLibSharp/Battling/Gender.cs | 7 + PkmnLibSharp/Battling/LearnedMove.cs | 25 +++ PkmnLibSharp/Battling/MiscLibrary.cs | 43 +++++ PkmnLibSharp/Battling/MoveLearnMethod.cs | 8 + PkmnLibSharp/Battling/Pokemon.cs | 30 ++++ PkmnLibSharp/Battling/PokemonBuilder.cs | 154 ++++++++++++++++++ PkmnLibSharp/Battling/ScriptResolver.cs | 12 ++ PkmnLibSharp/Battling/StatCalculator.cs | 38 +++++ PkmnLibSharp/Generated/Arbutils/Random.cs | 75 +++++++++ .../Generated/Creaturelibbattling/Creature.cs | 5 +- .../Creatureliblibrary/CreatureSpecies.cs | 10 +- .../Creatureliblibrary/SpeciesVariant.cs | 6 + .../Generated/Pkmnlib/ExperienceLibrary.cs | 27 +++ PkmnLibSharp/Library/Forme.cs | 57 +++---- .../Library/Items/BattleItemCategory.cs | 2 +- PkmnLibSharp/Library/Items/Item.cs | 8 +- PkmnLibSharp/Library/Items/ItemCategory.cs | 2 +- PkmnLibSharp/Library/Items/ItemLibrary.cs | 32 ++-- PkmnLibSharp/Library/Moves/MoveCategory.cs | 2 +- PkmnLibSharp/Library/Moves/MoveData.cs | 13 +- PkmnLibSharp/Library/Moves/MoveLibrary.cs | 21 +-- PkmnLibSharp/Library/Moves/MoveTarget.cs | 2 +- PkmnLibSharp/Library/NatureLibrary.cs | 6 + PkmnLibSharp/Library/PokemonLibrary.cs | 2 +- PkmnLibSharp/Library/Species.cs | 8 + PkmnLibSharp/Library/StatisticSet.cs | 24 +++ PkmnLibSharp/Native/libArubtils.so | 3 + PkmnLibSharp/Native/libCreatureLibBattling.so | 4 +- PkmnLibSharp/Native/libCreatureLibLibrary.so | 4 +- PkmnLibSharp/Native/libpkmnLib.so | 4 +- PkmnLibSharp/Utilities/Random.cs | 59 +++++++ PkmnLibSharp/arbutils.json | 1 + PkmnLibSharp/creaturelib.json | 2 +- PkmnLibSharp/generator.py | 9 +- PkmnLibSharpTests/PkmnLibSharpTests.csproj | 4 + 39 files changed, 835 insertions(+), 88 deletions(-) create mode 100644 PkmnLibSharp/Battling/AngelScriptResolver.cs create mode 100644 PkmnLibSharp/Battling/BattleLibrary.cs create mode 100644 PkmnLibSharp/Battling/DamageLibrary.cs create mode 100644 PkmnLibSharp/Battling/ExperienceLibrary.cs create mode 100644 PkmnLibSharp/Battling/Gender.cs create mode 100644 PkmnLibSharp/Battling/LearnedMove.cs create mode 100644 PkmnLibSharp/Battling/MiscLibrary.cs create mode 100644 PkmnLibSharp/Battling/MoveLearnMethod.cs create mode 100644 PkmnLibSharp/Battling/Pokemon.cs create mode 100644 PkmnLibSharp/Battling/PokemonBuilder.cs create mode 100644 PkmnLibSharp/Battling/ScriptResolver.cs create mode 100644 PkmnLibSharp/Battling/StatCalculator.cs create mode 100644 PkmnLibSharp/Generated/Arbutils/Random.cs create mode 100644 PkmnLibSharp/Generated/Pkmnlib/ExperienceLibrary.cs create mode 100644 PkmnLibSharp/Library/StatisticSet.cs create mode 100755 PkmnLibSharp/Native/libArubtils.so create mode 100644 PkmnLibSharp/Utilities/Random.cs create mode 100644 PkmnLibSharp/arbutils.json diff --git a/PkmnLibSharp/Battling/AngelScriptResolver.cs b/PkmnLibSharp/Battling/AngelScriptResolver.cs new file mode 100644 index 0000000..164b2db --- /dev/null +++ b/PkmnLibSharp/Battling/AngelScriptResolver.cs @@ -0,0 +1,31 @@ +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public class AngelScriptResolver : ScriptResolver + { + public AngelScriptResolver() : base(Pkmnlib.Generated.AngelScriptResolver.Construct()) + { + } + + public void Initialize(BattleLibrary library) + { + Pkmnlib.Generated.AngelScriptResolver.Initialize(Ptr, library.Ptr).Assert(); + } + + public void CreateScript(string name, string script) + { + Pkmnlib.Generated.AngelScriptResolver.CreateScript(Ptr, name.ToPtr(), script.ToPtr()).Assert(); + } + + public void FinalizeModule() + { + Pkmnlib.Generated.AngelScriptResolver.FinalizeModule(Ptr).Assert(); + } + + protected override void DeletePtr() + { + Pkmnlib.Generated.AngelScriptResolver.Destruct(Ptr).Assert(); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/BattleLibrary.cs b/PkmnLibSharp/Battling/BattleLibrary.cs new file mode 100644 index 0000000..cb3da8e --- /dev/null +++ b/PkmnLibSharp/Battling/BattleLibrary.cs @@ -0,0 +1,99 @@ +using System; +using PkmnLibSharp.Library; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public class BattleLibrary : PointerWrapper + { + private PokemonLibrary _static; + private StatCalculator _statCalculator; + private DamageLibrary _damageLibrary; + private MiscLibrary _miscLibrary; + private ExperienceLibrary _experienceLibrary; + + public PokemonLibrary StaticLibrary + { + get + { + if (_static != null) return _static; + var ptr = Creaturelibbattling.Generated.BattleLibrary.GetStaticLib(Ptr); + if (TryResolvePointer(ptr, out _static)) + return _static; + _static = new PokemonLibrary(ptr); + return _static; + } + } + + public StatCalculator StatCalculator + { + get + { + if (_statCalculator != null) return _statCalculator; + var ptr = Creaturelibbattling.Generated.BattleLibrary.GetStatCalculator(Ptr); + if (TryResolvePointer(ptr, out _statCalculator)) + return _statCalculator; + _statCalculator = new StatCalculator(ptr); + return _statCalculator; + } + } + + public DamageLibrary DamageLibrary + { + get + { + if (_damageLibrary != null) return _damageLibrary; + var ptr = Creaturelibbattling.Generated.BattleLibrary.GetDamageLibrary(Ptr); + if (TryResolvePointer(ptr, out _damageLibrary)) + return _damageLibrary; + _damageLibrary = new DamageLibrary(ptr); + return _damageLibrary; + } + } + + public MiscLibrary MiscLibrary + { + get + { + if (_miscLibrary != null) return _miscLibrary; + var ptr = Creaturelibbattling.Generated.BattleLibrary.GetMiscLibrary(Ptr); + if (TryResolvePointer(ptr, out _miscLibrary)) + return _miscLibrary; + _miscLibrary = new MiscLibrary(ptr); + return _miscLibrary; + } + } + + public ExperienceLibrary ExperienceLibrary + { + get + { + if (_experienceLibrary != null) return _experienceLibrary; + var ptr = Creaturelibbattling.Generated.BattleLibrary.GetExperienceLibrary(Ptr); + if (TryResolvePointer(ptr, out _experienceLibrary)) + return _experienceLibrary; + _experienceLibrary = new ExperienceLibrary(ptr); + return _experienceLibrary; + } + } + + private BattleLibrary(IntPtr ptr) : base(ptr) + { + } + + public static BattleLibrary Create(PokemonLibrary staticLibrary, StatCalculator statCalculator, + DamageLibrary damageLibrary, ExperienceLibrary experienceLibrary, ScriptResolver scriptResolver, + MiscLibrary miscLibrary) + { + var ptr = IntPtr.Zero; + Pkmnlib.Generated.BattleLibrary.Construct(ref ptr, staticLibrary.Ptr, statCalculator.Ptr, damageLibrary.Ptr, + experienceLibrary.Ptr, scriptResolver.Ptr, miscLibrary.Ptr).Assert(); + return new BattleLibrary(ptr); + } + + protected override void DeletePtr() + { + Pkmnlib.Generated.BattleLibrary.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/DamageLibrary.cs b/PkmnLibSharp/Battling/DamageLibrary.cs new file mode 100644 index 0000000..4a02306 --- /dev/null +++ b/PkmnLibSharp/Battling/DamageLibrary.cs @@ -0,0 +1,54 @@ +using System; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public class DamageLibrary : PointerWrapper + { + internal DamageLibrary(IntPtr ptr) : base(ptr) + { + } + public DamageLibrary() : base(Pkmnlib.Generated.DamageLibrary.Construct()) + { + } + + public uint GetDamage(IntPtr attack, Pokemon target, byte hitIndex, IntPtr hitData) + { + uint val = 0; + Creaturelibbattling.Generated.DamageLibrary.GetDamage(ref val, Ptr, attack, target.Ptr, hitIndex, hitData) + .Assert(); + return val; + } + + public byte GetBasePower(IntPtr attack, Pokemon target, byte hitIndex, IntPtr hitData) + { + byte val = 0; + Creaturelibbattling.Generated.DamageLibrary.GetBasePower(ref val, Ptr, attack, target.Ptr, hitIndex, hitData) + .Assert(); + return val; + } + + public float GetStatModifier(IntPtr attack, Pokemon target, byte hitIndex, IntPtr hitData) + { + float val = 0; + Creaturelibbattling.Generated.DamageLibrary.GetStatModifier(ref val, Ptr, attack, target.Ptr, hitIndex, hitData) + .Assert(); + return val; + } + + public float GetDamageModifier(IntPtr attack, Pokemon target, byte hitIndex, IntPtr hitData) + { + float val = 0; + Creaturelibbattling.Generated.DamageLibrary + .GetDamageModifier(ref val, Ptr, attack, target.Ptr, hitIndex, hitData) + .Assert(); + return val; + } + + + protected override void DeletePtr() + { + Pkmnlib.Generated.DamageLibrary.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/ExperienceLibrary.cs b/PkmnLibSharp/Battling/ExperienceLibrary.cs new file mode 100644 index 0000000..6750d51 --- /dev/null +++ b/PkmnLibSharp/Battling/ExperienceLibrary.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public class ExperienceLibrary : PointerWrapper + { + public ExperienceLibrary(IntPtr ptr) : base(ptr) + { + } + + public ExperienceLibrary() : base(Pkmnlib.Generated.ExperienceLibrary.Construct()) + { + } + + void HandleExperienceGain(Pokemon faintedMon, IReadOnlyCollection opponents) + { + Pkmnlib.Generated.ExperienceLibrary.HandleExperienceGain(Ptr, faintedMon.Ptr, + opponents.Select(x => x.Ptr).ToArray().ArrayPtr(), + (ulong) opponents.Count); + } + + protected override void DeletePtr() + { + Pkmnlib.Generated.ExperienceLibrary.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/Gender.cs b/PkmnLibSharp/Battling/Gender.cs new file mode 100644 index 0000000..565ca0e --- /dev/null +++ b/PkmnLibSharp/Battling/Gender.cs @@ -0,0 +1,7 @@ +namespace PkmnLibSharp.Battling +{ + public enum Gender + { + Male, Female, Genderless + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/LearnedMove.cs b/PkmnLibSharp/Battling/LearnedMove.cs new file mode 100644 index 0000000..7ee2d66 --- /dev/null +++ b/PkmnLibSharp/Battling/LearnedMove.cs @@ -0,0 +1,25 @@ +using System; +using Creaturelibbattling; +using Creaturelibbattling.Generated; +using PkmnLibSharp.Library.Moves; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public class LearnedMove : PointerWrapper + { + internal LearnedMove(IntPtr ptr) : base(ptr){} + + public static LearnedMove Create(MoveData move, byte maxUses, MoveLearnMethod learnMethod) + { + var ptr = IntPtr.Zero; + LearnedAttack.Construct(ref ptr, move.Ptr, maxUses, (AttackLearnMethod) learnMethod).Assert(); + return new LearnedMove(ptr); + } + + protected override void DeletePtr() + { + LearnedAttack.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/MiscLibrary.cs b/PkmnLibSharp/Battling/MiscLibrary.cs new file mode 100644 index 0000000..b952ebc --- /dev/null +++ b/PkmnLibSharp/Battling/MiscLibrary.cs @@ -0,0 +1,43 @@ +using System; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public class MiscLibrary : PointerWrapper + { + internal MiscLibrary(IntPtr ptr) : base(ptr) + { + } + public MiscLibrary() : base(Pkmnlib.Generated.MiscLibrary.Construct()) + { + } + + public bool IsCritical(IntPtr move, Pokemon target, byte hitNumber) + { + byte b = 0; + Creaturelibbattling.Generated.MiscLibrary.IsCritical(ref b, Ptr, move, target.Ptr, hitNumber).Assert(); + return b == MarshalHelper.True; + } + + public bool CanFlee(IntPtr switchChoice) + { + byte b = 0; + Creaturelibbattling.Generated.MiscLibrary.CanFlee(ref b, Ptr, switchChoice).Assert(); + return b == MarshalHelper.True; + } + + public IntPtr ReplacementAttack(Pokemon user, byte sideTarget, byte creatureTarget) + { + var b = IntPtr.Zero; + Creaturelibbattling.Generated.MiscLibrary.ReplacementAttack(ref b, Ptr, user.Ptr, sideTarget, creatureTarget) + .Assert(); + return b; + } + + + protected override void DeletePtr() + { + Pkmnlib.Generated.MiscLibrary.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/MoveLearnMethod.cs b/PkmnLibSharp/Battling/MoveLearnMethod.cs new file mode 100644 index 0000000..1173c68 --- /dev/null +++ b/PkmnLibSharp/Battling/MoveLearnMethod.cs @@ -0,0 +1,8 @@ +namespace PkmnLibSharp.Battling +{ + public enum MoveLearnMethod + { + Unknown = 0, + Level = 1, + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/Pokemon.cs b/PkmnLibSharp/Battling/Pokemon.cs new file mode 100644 index 0000000..0165ebe --- /dev/null +++ b/PkmnLibSharp/Battling/Pokemon.cs @@ -0,0 +1,30 @@ +using System.Collections.Generic; +using System.Linq; +using PkmnLibSharp.Library; +using PkmnLibSharp.Utilities; +using Item = PkmnLibSharp.Library.Items.Item; +using Nature = PkmnLibSharp.Library.Nature; + +namespace PkmnLibSharp.Battling +{ + public class Pokemon : PointerWrapper + { + public Pokemon(BattleLibrary library, Species species, Forme forme, byte level, uint experience, uint uid, + Gender gender, byte coloring, Item heldItem, string nickname, bool hiddenAbility, byte abilityIndex, + IReadOnlyCollection moves, StatisticSet ivs, StatisticSet evs, Nature nature) : + base(Pkmnlib.Generated.Pokemon.Construct(library.Ptr, species.Ptr, forme.Ptr, level, experience, + uid, (Pkmnlib.Gender) gender, coloring, heldItem.Ptr, nickname.ToPtr(), hiddenAbility.ToNative(), + abilityIndex, + moves.Select(x => x.Ptr).ToArray().ArrayPtr(), + (ulong) moves.Count, + ivs.HP, ivs.Attack, ivs.Defense, ivs.SpecialAttack, + ivs.SpecialDefense, ivs.Speed, evs.HP, evs.Attack, evs.Defense, + evs.SpecialAttack, evs.SpecialDefense, evs.Speed, nature.Ptr)) + {} + + protected override void DeletePtr() + { + Pkmnlib.Generated.Pokemon.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/PokemonBuilder.cs b/PkmnLibSharp/Battling/PokemonBuilder.cs new file mode 100644 index 0000000..3156466 --- /dev/null +++ b/PkmnLibSharp/Battling/PokemonBuilder.cs @@ -0,0 +1,154 @@ +using System; +using System.Collections.Generic; +using PkmnLibSharp.Library; +using PkmnLibSharp.Library.Items; +using Random = PkmnLibSharp.Utilities.Random; + +namespace PkmnLibSharp.Battling +{ + public class PokemonBuilder + { + private BattleLibrary _library; + public string Species { get; } + public string Forme { get; private set; } = "default"; + public string Nickname { get; private set; } = ""; + public string Ability { get; private set; } = ""; + public string Nature { get; private set; } = ""; + public Gender Gender { get; private set; } = (Gender) (-1); + public uint Identifier { get; private set; } = 0; + public byte Level { get; } + + public StatisticSet IVs; + public StatisticSet EVs; + + public bool? IsForceShiny { get; private set; } + public string HeldItem { get; private set; } + + public List<(string moveName, MoveLearnMethod learnMethod)> LearnedMoves { get; } = + new List<(string moveName, MoveLearnMethod learnMethod)>(); + + public PokemonBuilder(BattleLibrary library, string species, byte level) + { + _library = library; + Species = species; + Level = level; + } + + public PokemonBuilder WithForme(string forme) + { + Forme = forme; + return this; + } + + public PokemonBuilder WithGender(Gender gender) + { + Gender = gender; + return this; + } + + public PokemonBuilder ForceShiny(bool value) + { + IsForceShiny = value; + return this; + } + + public PokemonBuilder WithHeldItem(string heldItem) + { + HeldItem = heldItem; + return this; + } + + public PokemonBuilder LearnMove(string moveName, MoveLearnMethod moveLearnMethod) + { + if (LearnedMoves.Count > _library.StaticLibrary.Settings.MaximalMoves) + { + throw new Exception("Too many moves for Pokemon."); + } + LearnedMoves.Add((moveName, moveLearnMethod)); + return this; + } + + public Pokemon Build() + { + if (!_library.StaticLibrary.SpeciesLibrary.TryGet(Species, out var species)) + { + throw new Exception($"Species '{Species}' was not found."); + } + + if (!species.TryGetForme(Forme, out var forme)) + { + throw new Exception($"Forme '{Forme}' was not found on species '{Species}'"); + } + + var experience = _library.StaticLibrary.GrowthRateLibrary.CalculateExperience(species.GrowthRate, Level); + var random = new Random(); + var uid = random.GetUnsigned(0, uint.MaxValue); + if (Gender == (Gender) (-1)) + { + Gender = species.GetRandomGender(random); + } + + byte coloring = 0; + if (IsForceShiny.HasValue) + { + coloring = (byte) (IsForceShiny.Value ? 1 : 0); + } + else if (random.Get(_library.StaticLibrary.Settings.ShinyRate) == 0) + { + coloring = 1; + } + + Item heldItem = null; + if (HeldItem != null) + { + if (!_library.StaticLibrary.ItemLibrary.TryGet(HeldItem, out heldItem)) + { + throw new Exception($"Item '{HeldItem}' was not found."); + } + } + + byte abilityIndex = 0; + var isHiddenAbility = false; + if (string.IsNullOrEmpty(Ability)) + { + abilityIndex = forme.GetRandomAbility(random); + } + else + { + abilityIndex = (byte) forme.Abilities.IndexOf(Ability); + if (abilityIndex == -1) + { + abilityIndex = (byte) forme.HiddenAbilities.IndexOf(Ability); + if (abilityIndex == -1) + { + throw new Exception( + $"Invalid ability '{Ability}' for Pokemon '{species.Name}' and forme '{forme.Name}'."); + } + + isHiddenAbility = true; + } + } + + var moves = new LearnedMove[_library.StaticLibrary.Settings.MaximalMoves]; + for (var i = 0; i < LearnedMoves.Count; i++) + { + if (!_library.StaticLibrary.MoveLibrary.TryGet(LearnedMoves[i].moveName, out var move)) + { + throw new Exception($"Move '{LearnedMoves[i].moveName}' was not found."); + } + + moves[i] = LearnedMove.Create(move, move.BaseUsages, LearnedMoves[i].learnMethod); + } + + if (string.IsNullOrEmpty(Nature)) + { + Nature = _library.StaticLibrary.NatureLibrary.GetRandomNatureName(random); + } + + var nature = _library.StaticLibrary.NatureLibrary.GetNature(Nature); + + return new Pokemon(_library, species, forme, Level, experience, uid, Gender, coloring, heldItem, Nickname, + isHiddenAbility, abilityIndex, moves, IVs, EVs, nature); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/ScriptResolver.cs b/PkmnLibSharp/Battling/ScriptResolver.cs new file mode 100644 index 0000000..41425d0 --- /dev/null +++ b/PkmnLibSharp/Battling/ScriptResolver.cs @@ -0,0 +1,12 @@ +using System; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public abstract class ScriptResolver : PointerWrapper + { + protected ScriptResolver(IntPtr ptr) : base(ptr) + { + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Battling/StatCalculator.cs b/PkmnLibSharp/Battling/StatCalculator.cs new file mode 100644 index 0000000..2dc8218 --- /dev/null +++ b/PkmnLibSharp/Battling/StatCalculator.cs @@ -0,0 +1,38 @@ +using System; +using PkmnLibSharp.Library; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Battling +{ + public class StatCalculator : PointerWrapper + { + internal StatCalculator(IntPtr ptr) : base(ptr) + { + } + + public StatCalculator() : base(Pkmnlib.Generated.StatCalculator.Construct()) + { + } + + public uint CalculateFlatStat(Pokemon pokemon, Statistic stat) + { + uint val = 0; + Creaturelibbattling.Generated.BattleStatCalculator + .CalculateFlatStat(ref val, Ptr, pokemon.Ptr, (Creaturelibbattling.Statistic) stat).Assert(); + return val; + } + + public uint CalculateBoostedStat(Pokemon pokemon, Statistic stat) + { + uint val = 0; + Creaturelibbattling.Generated.BattleStatCalculator + .CalculateBoostedStat(ref val, Ptr, pokemon.Ptr, (Creaturelibbattling.Statistic) stat).Assert(); + return val; + } + + protected override void DeletePtr() + { + Pkmnlib.Generated.StatCalculator.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Generated/Arbutils/Random.cs b/PkmnLibSharp/Generated/Arbutils/Random.cs new file mode 100644 index 0000000..34de68d --- /dev/null +++ b/PkmnLibSharp/Generated/Arbutils/Random.cs @@ -0,0 +1,75 @@ +// AUTOMATICALLY GENERATED, DO NOT EDIT +using System; +using System.Runtime.InteropServices; + +namespace Arbutils.Generated +{ + internal static class Random + { + /// Random * + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_Construct")] + internal static extern IntPtr Construct(); + + /// long unsigned int + /// Random * + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_ConstructWithSeed")] + internal static extern IntPtr ConstructWithSeed(ulong seed); + + /// Random * + /// void + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_Destruct")] + internal static extern void Destruct(IntPtr p); + + /// Random * + /// float + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetFloat")] + internal static extern float GetFloat(IntPtr p); + + /// Random * + /// double + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetDouble")] + internal static extern double GetDouble(IntPtr p); + + /// Random * + /// int + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_Get")] + internal static extern int Get(IntPtr p); + + /// Random * + /// int + /// int + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetWithMax")] + internal static extern int GetWithMax(IntPtr p, int max); + + /// Random * + /// int + /// int + /// int + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetInLimits")] + internal static extern int GetInLimits(IntPtr p, int min, int max); + + /// Random * + /// unsigned int + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetUnsigned")] + internal static extern uint GetUnsigned(IntPtr p); + + /// Random * + /// unsigned int + /// unsigned int + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetUnsignedWithMax")] + internal static extern uint GetUnsignedWithMax(IntPtr p, uint max); + + /// Random * + /// unsigned int + /// unsigned int + /// unsigned int + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetUnsignedInLimits")] + internal static extern uint GetUnsignedInLimits(IntPtr p, uint min, uint max); + + /// Random * + /// long unsigned int + [DllImport("Arbutils", CallingConvention = CallingConvention.Cdecl, EntryPoint= "Arbutils_Random_GetSeed")] + internal static extern ulong GetSeed(IntPtr p); + + } +} diff --git a/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs b/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs index 6174ebf..7a503ca 100644 --- a/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs +++ b/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs @@ -211,10 +211,9 @@ namespace Creaturelibbattling.Generated internal static extern ulong GetAttacksCount(IntPtr p); /// Creature * - /// long unsigned int /// const LearnedAttack * * - [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_GetAttack")] - internal static extern IntPtr GetAttack(IntPtr p, ulong index); + [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_GetAttacks")] + internal static extern IntPtr GetAttacks(IntPtr p); /// const Creature * /// const CreatureSpecies * diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs b/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs index 53a65ca..8ea31ff 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs @@ -80,12 +80,12 @@ namespace Creatureliblibrary.Generated [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_GetVariant")] internal static extern byte GetVariant(ref IntPtr @out, IntPtr p, IntPtr name); - /// const SpeciesVariant * + /// const SpeciesVariant * & /// const CreatureSpecies * /// unsigned int /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_GetVariantWithHash")] - internal static extern byte GetVariantWithHash(IntPtr @out, IntPtr p, uint hash); + internal static extern byte GetVariantWithHash(ref IntPtr @out, IntPtr p, uint hash); /// CreatureSpecies * /// const char * @@ -94,5 +94,11 @@ namespace Creatureliblibrary.Generated [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_SetVariant")] internal static extern byte SetVariant(IntPtr p, IntPtr name, IntPtr variant); + /// CreatureSpecies * + /// Random * + /// Gender + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_GetRandomGender")] + internal static extern Gender GetRandomGender(IntPtr p, IntPtr random); + } } diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs b/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs index 0baeb81..39590da 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs @@ -92,5 +92,11 @@ namespace Creatureliblibrary.Generated [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesVariant_GetLearnableAttacks")] internal static extern IntPtr GetLearnableAttacks(IntPtr p); + /// SpeciesVariant * + /// Random * + /// unsigned char + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesVariant_GetRandomTalent")] + internal static extern byte GetRandomTalent(IntPtr p, IntPtr rand); + } } diff --git a/PkmnLibSharp/Generated/Pkmnlib/ExperienceLibrary.cs b/PkmnLibSharp/Generated/Pkmnlib/ExperienceLibrary.cs new file mode 100644 index 0000000..a760d5a --- /dev/null +++ b/PkmnLibSharp/Generated/Pkmnlib/ExperienceLibrary.cs @@ -0,0 +1,27 @@ +// AUTOMATICALLY GENERATED, DO NOT EDIT +using System; +using System.Runtime.InteropServices; + +namespace Pkmnlib.Generated +{ + internal static class ExperienceLibrary + { + /// ExperienceLibrary * + [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_ExperienceLibrary_Construct")] + internal static extern IntPtr Construct(); + + /// ExperienceLibrary * + /// Creature * + /// const Creature * * + /// long unsigned int + /// unsigned char + [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_ExperienceLibrary_HandleExperienceGain")] + internal static extern byte HandleExperienceGain(IntPtr p, IntPtr faintedMon, IntPtr opponents, ulong numberOfOpponents); + + /// ExperienceLibrary * + /// void + [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_ExperienceLibrary_Destruct")] + internal static extern void Destruct(IntPtr p); + + } +} diff --git a/PkmnLibSharp/Library/Forme.cs b/PkmnLibSharp/Library/Forme.cs index fa90923..ea1f273 100644 --- a/PkmnLibSharp/Library/Forme.cs +++ b/PkmnLibSharp/Library/Forme.cs @@ -2,19 +2,23 @@ using System; using System.Collections.Immutable; using System.Linq; using System.Runtime.InteropServices; -using Creatureliblibrary; using Creatureliblibrary.Generated; using PkmnLibSharp.Utilities; +using Random = PkmnLibSharp.Utilities.Random; namespace PkmnLibSharp.Library { public class Forme : PointerWrapper { - private string _name; - private ImmutableArray _types; private ImmutableArray _abilities; private ImmutableArray _hiddenAbilities; private LearnableMoves _moves; + private string _name; + private ImmutableArray _types; + + internal Forme(IntPtr parent) : base(parent) + { + } public string Name => _name ??= SpeciesVariant.GetName(Ptr).PtrString(); public float Height => SpeciesVariant.GetHeight(Ptr); @@ -30,10 +34,7 @@ namespace PkmnLibSharp.Library var typesCount = SpeciesVariant.GetTypeCount(Ptr); var types = new byte[typesCount]; - for (ulong i = 0; i < typesCount; i++) - { - types[i] = SpeciesVariant.GetType(Ptr, i); - } + for (ulong i = 0; i < typesCount; i++) types[i] = SpeciesVariant.GetType(Ptr, i); _types = types.ToImmutableArray(); return _types; @@ -63,7 +64,7 @@ namespace PkmnLibSharp.Library var abilities = new string[abilityCount]; for (byte i = 0; i < abilityCount; i++) { - IntPtr s = IntPtr.Zero; + var s = IntPtr.Zero; SpeciesVariant.GetTalent(Ptr, MarshalHelper.False, i, ref s).Assert(); abilities[i] = s.PtrString(); } @@ -84,7 +85,7 @@ namespace PkmnLibSharp.Library var abilities = new string[abilityCount]; for (byte i = 0; i < abilityCount; i++) { - IntPtr s = IntPtr.Zero; + var s = IntPtr.Zero; SpeciesVariant.GetTalent(Ptr, MarshalHelper.True, i, ref s).Assert(); abilities[i] = s.PtrString(); } @@ -100,10 +101,7 @@ namespace PkmnLibSharp.Library { if (_moves != null) return _moves; var movesPtr = SpeciesVariant.GetLearnableAttacks(Ptr); - if (!TryResolvePointer(movesPtr, out _moves)) - { - _moves = new LearnableMoves(movesPtr); - } + if (!TryResolvePointer(movesPtr, out _moves)) _moves = new LearnableMoves(movesPtr); return _moves; } @@ -114,33 +112,30 @@ namespace PkmnLibSharp.Library return Types[index]; } - public static unsafe Forme Create(string name, float height, float weight, uint baseExperience, byte[] types, + public static Forme Create(string name, float height, float weight, uint baseExperience, byte[] types, ushort baseHealth, ushort baseAttack, ushort baseDefense, ushort baseSpecialAttack, ushort baseSpecialDefense, ushort baseSpeed, string[] abilities, string[] hiddenAbilities, LearnableMoves moves) { var abilitiesConverted = abilities.Select(x => x.ToPtr()).ToArray(); var hiddenAbilitiesConverted = hiddenAbilities.Select(x => x.ToPtr()).ToArray(); - fixed (IntPtr* ab = abilitiesConverted) - { - fixed (IntPtr* hab = hiddenAbilitiesConverted) - { - var ptr = SpeciesVariant.Construct(name.ToPtr(), height, weight, baseExperience, types.ArrayPtr(), - (ulong) types.Length, baseHealth, baseAttack, baseDefense, baseSpecialAttack, - baseSpecialDefense, baseSpeed, (IntPtr) ab, (ulong) abilities.Length, (IntPtr) hab, - (ulong) hiddenAbilities.Length, moves.Ptr); - var f = new Forme(ptr); - foreach (var intPtr in abilitiesConverted) - Marshal.FreeHGlobal(intPtr); - foreach (var intPtr in hiddenAbilitiesConverted) - Marshal.FreeHGlobal(intPtr); - return f; - } - } + var ab = abilitiesConverted.ArrayPtr(); + var hab = abilitiesConverted.ArrayPtr(); + var ptr = SpeciesVariant.Construct(name.ToPtr(), height, weight, baseExperience, types.ArrayPtr(), + (ulong) types.Length, baseHealth, baseAttack, baseDefense, baseSpecialAttack, + baseSpecialDefense, baseSpeed, (IntPtr) ab, (ulong) abilities.Length, (IntPtr) hab, + (ulong) hiddenAbilities.Length, moves.Ptr); + var f = new Forme(ptr); + foreach (var intPtr in abilitiesConverted) + Marshal.FreeHGlobal(intPtr); + foreach (var intPtr in hiddenAbilitiesConverted) + Marshal.FreeHGlobal(intPtr); + return f; } - internal Forme(IntPtr parent) : base(parent) + public byte GetRandomAbility(Random rand) { + return SpeciesVariant.GetRandomTalent(Ptr, rand.Ptr); } protected internal override void MarkAsDeleted() diff --git a/PkmnLibSharp/Library/Items/BattleItemCategory.cs b/PkmnLibSharp/Library/Items/BattleItemCategory.cs index a4246c5..95b3a4f 100644 --- a/PkmnLibSharp/Library/Items/BattleItemCategory.cs +++ b/PkmnLibSharp/Library/Items/BattleItemCategory.cs @@ -6,6 +6,6 @@ namespace PkmnLibSharp.Library.Items Healing = 1, StatusHealing = 2, Pokeball = 3, - MiscBattleItem = 4, + MiscBattleItem = 4 } } \ No newline at end of file diff --git a/PkmnLibSharp/Library/Items/Item.cs b/PkmnLibSharp/Library/Items/Item.cs index 31a52c4..b02b2a3 100644 --- a/PkmnLibSharp/Library/Items/Item.cs +++ b/PkmnLibSharp/Library/Items/Item.cs @@ -8,6 +8,10 @@ namespace PkmnLibSharp.Library.Items { private string _name; + internal Item(IntPtr ptr) : base(ptr) + { + } + public string Name => _name ??= Creatureliblibrary.Generated.Item.GetName(Ptr).PtrString(); public ItemCategory Category => (ItemCategory) Creatureliblibrary.Generated.Item.GetCategory(Ptr); @@ -22,10 +26,6 @@ namespace PkmnLibSharp.Library.Items return Creatureliblibrary.Generated.Item.HasFlag(Ptr, s.ToPtr()) == MarshalHelper.True; } - internal Item(IntPtr ptr) : base(ptr) - { - } - public static Item Create(string name, ItemCategory category, BattleItemCategory battleCategory, int price, string[] flags, byte flingPower) diff --git a/PkmnLibSharp/Library/Items/ItemCategory.cs b/PkmnLibSharp/Library/Items/ItemCategory.cs index a975396..4c15ea8 100644 --- a/PkmnLibSharp/Library/Items/ItemCategory.cs +++ b/PkmnLibSharp/Library/Items/ItemCategory.cs @@ -9,6 +9,6 @@ namespace PkmnLibSharp.Library TechnicalMachine = 4, FormeChanger = 5, KeyItem = 6, - Mail = 7, + Mail = 7 } } \ No newline at end of file diff --git a/PkmnLibSharp/Library/Items/ItemLibrary.cs b/PkmnLibSharp/Library/Items/ItemLibrary.cs index d5872bf..a1b17be 100644 --- a/PkmnLibSharp/Library/Items/ItemLibrary.cs +++ b/PkmnLibSharp/Library/Items/ItemLibrary.cs @@ -6,7 +6,18 @@ namespace PkmnLibSharp.Library.Items { public class ItemLibrary : PointerWrapper { - private readonly Dictionary _cache = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private readonly Dictionary _cache = + new Dictionary(StringComparer.InvariantCultureIgnoreCase); + + internal ItemLibrary(IntPtr ptr) : base(ptr) + { + } + + public ItemLibrary(ulong initialCapacity) : base( + Creatureliblibrary.Generated.ItemLibrary.Construct(initialCapacity)) + { + } + public ulong Count => Creatureliblibrary.Generated.ItemLibrary.GetCount(Ptr); public void Insert(string key, Item item) @@ -26,13 +37,14 @@ namespace PkmnLibSharp.Library.Items if (_cache.TryGetValue(key, out item)) return true; var ptr = IntPtr.Zero; - if (Creatureliblibrary.Generated.ItemLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True) + if (Creatureliblibrary.Generated.ItemLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True) return false; if (TryResolvePointer(ptr, out item)) { _cache.Add(key, item); return true; } + item = new Item(ptr); _cache.Add(key, item); return true; @@ -49,33 +61,21 @@ namespace PkmnLibSharp.Library.Items _cache.Add(key, item); return item; } + item = new Item(ptr); _cache.Add(key, item); return item; } - internal ItemLibrary(IntPtr ptr) : base(ptr) - { - } - - public ItemLibrary(ulong initialCapacity) : base( - Creatureliblibrary.Generated.ItemLibrary.Construct(initialCapacity)) - { - } - protected internal override void MarkAsDeleted() { base.MarkAsDeleted(); - foreach (var item in _cache) - { - item.Value.MarkAsDeleted(); - } + foreach (var item in _cache) item.Value.MarkAsDeleted(); } protected override void DeletePtr() { Creatureliblibrary.Generated.ItemLibrary.Destruct(Ptr); } - } } \ No newline at end of file diff --git a/PkmnLibSharp/Library/Moves/MoveCategory.cs b/PkmnLibSharp/Library/Moves/MoveCategory.cs index b5774c2..7701189 100644 --- a/PkmnLibSharp/Library/Moves/MoveCategory.cs +++ b/PkmnLibSharp/Library/Moves/MoveCategory.cs @@ -4,6 +4,6 @@ namespace PkmnLibSharp.Library.Moves { Physical = 0, Special = 1, - Status = 2, + Status = 2 } } \ No newline at end of file diff --git a/PkmnLibSharp/Library/Moves/MoveData.cs b/PkmnLibSharp/Library/Moves/MoveData.cs index 99df2b7..ac3b2eb 100644 --- a/PkmnLibSharp/Library/Moves/MoveData.cs +++ b/PkmnLibSharp/Library/Moves/MoveData.cs @@ -1,9 +1,8 @@ using System; using System.Linq; +using Creatureliblibrary; using Creatureliblibrary.Generated; -using Pkmnlib; using PkmnLibSharp.Utilities; -using AttackCategory = Creatureliblibrary.AttackCategory; namespace PkmnLibSharp.Library.Moves { @@ -12,6 +11,10 @@ namespace PkmnLibSharp.Library.Moves private string _name; private string _secondaryEffectName; + internal MoveData(IntPtr ptr) : base(ptr) + { + } + public string Name => _name ??= AttackData.GetName(Ptr).PtrString(); public byte Type => AttackData.GetType(Ptr); public MoveCategory Category => (MoveCategory) AttackData.GetCategory(Ptr); @@ -40,15 +43,11 @@ namespace PkmnLibSharp.Library.Moves var f = flags.Select(x => x.ToPtr()).ToArray().ArrayPtr(); AttackData.Construct(ref ptr, name.ToPtr(), type, (AttackCategory) category, power, accuracy, baseUsage, - (Creatureliblibrary.AttackTarget) target, priority, effectChance, effectName.ToPtr(), pars, + (AttackTarget) target, priority, effectChance, effectName.ToPtr(), pars, (ulong) parameters.Length, f, (ulong) flags.Length).Assert(); return new MoveData(ptr); } - internal MoveData(IntPtr ptr) : base(ptr) - { - } - protected override void DeletePtr() { AttackData.Destruct(Ptr); diff --git a/PkmnLibSharp/Library/Moves/MoveLibrary.cs b/PkmnLibSharp/Library/Moves/MoveLibrary.cs index 08d91e9..51aa2a8 100644 --- a/PkmnLibSharp/Library/Moves/MoveLibrary.cs +++ b/PkmnLibSharp/Library/Moves/MoveLibrary.cs @@ -7,7 +7,13 @@ namespace PkmnLibSharp.Library.Moves { public class MoveLibrary : PointerWrapper { - private readonly Dictionary _cache = new Dictionary(StringComparer.InvariantCultureIgnoreCase); + private readonly Dictionary _cache = + new Dictionary(StringComparer.InvariantCultureIgnoreCase); + + internal MoveLibrary(IntPtr ptr) : base(ptr) + { + } + public ulong Count => AttackLibrary.GetCount(Ptr); public void Insert(string key, MoveData move) @@ -27,13 +33,14 @@ namespace PkmnLibSharp.Library.Moves if (_cache.TryGetValue(key, out move)) return true; var ptr = IntPtr.Zero; - if (AttackLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True) + if (AttackLibrary.TryGet(Ptr, key.ToPtr(), ref ptr) != MarshalHelper.True) return false; if (TryResolvePointer(ptr, out move)) { _cache.Add(key, move); return true; } + move = new MoveData(ptr); _cache.Add(key, move); return true; @@ -50,6 +57,7 @@ namespace PkmnLibSharp.Library.Moves _cache.Add(key, move); return move; } + move = new MoveData(ptr); _cache.Add(key, move); return move; @@ -61,18 +69,11 @@ namespace PkmnLibSharp.Library.Moves AttackLibrary.Construct(ref ptr, defaultCapacity).Assert(); return new MoveLibrary(ptr); } - - internal MoveLibrary(IntPtr ptr) : base(ptr) - { - } protected internal override void MarkAsDeleted() { base.MarkAsDeleted(); - foreach (var moveData in _cache) - { - moveData.Value.MarkAsDeleted(); - } + foreach (var moveData in _cache) moveData.Value.MarkAsDeleted(); } protected override void DeletePtr() diff --git a/PkmnLibSharp/Library/Moves/MoveTarget.cs b/PkmnLibSharp/Library/Moves/MoveTarget.cs index f64603f..0e95057 100644 --- a/PkmnLibSharp/Library/Moves/MoveTarget.cs +++ b/PkmnLibSharp/Library/Moves/MoveTarget.cs @@ -13,6 +13,6 @@ namespace PkmnLibSharp.Library.Moves AllOpponent = 8, Any = 9, RandomOpponent = 10, - Self = 11, + Self = 11 } } \ No newline at end of file diff --git a/PkmnLibSharp/Library/NatureLibrary.cs b/PkmnLibSharp/Library/NatureLibrary.cs index 22e85ac..089ca17 100644 --- a/PkmnLibSharp/Library/NatureLibrary.cs +++ b/PkmnLibSharp/Library/NatureLibrary.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using PkmnLibSharp.Utilities; +using Random = PkmnLibSharp.Utilities.Random; namespace PkmnLibSharp.Library { @@ -54,6 +55,11 @@ namespace PkmnLibSharp.Library return ptr.PtrString(); } + public string GetRandomNatureName(Random random) + { + return Pkmnlib.Generated.NatureLibrary.GetRandomNatureName(Ptr, random.Ptr).PtrString(); + } + protected override void DeletePtr() { Pkmnlib.Generated.NatureLibrary.Destruct(Ptr); diff --git a/PkmnLibSharp/Library/PokemonLibrary.cs b/PkmnLibSharp/Library/PokemonLibrary.cs index 39ff734..14ddadd 100644 --- a/PkmnLibSharp/Library/PokemonLibrary.cs +++ b/PkmnLibSharp/Library/PokemonLibrary.cs @@ -115,7 +115,7 @@ namespace PkmnLibSharp.Library } - private PokemonLibrary(IntPtr ptr) : base(ptr) + internal PokemonLibrary(IntPtr ptr) : base(ptr) { } diff --git a/PkmnLibSharp/Library/Species.cs b/PkmnLibSharp/Library/Species.cs index e96b1c8..2d90263 100644 --- a/PkmnLibSharp/Library/Species.cs +++ b/PkmnLibSharp/Library/Species.cs @@ -1,8 +1,11 @@ using System; using System.Collections.Generic; using Creatureliblibrary.Generated; +using Pkmnlib; using Pkmnlib.Generated; using PkmnLibSharp.Utilities; +using Gender = PkmnLibSharp.Battling.Gender; +using Random = PkmnLibSharp.Utilities.Random; namespace PkmnLibSharp.Library { @@ -68,6 +71,11 @@ namespace PkmnLibSharp.Library CreatureSpecies.SetVariant(Ptr, s.ToPtr(), forme.Ptr).Assert(); } + public Gender GetRandomGender(Random random) + { + return (Gender) CreatureSpecies.GetRandomGender(Ptr, random.Ptr); + } + internal Species(IntPtr ptr) : base(ptr) { diff --git a/PkmnLibSharp/Library/StatisticSet.cs b/PkmnLibSharp/Library/StatisticSet.cs new file mode 100644 index 0000000..fc76eab --- /dev/null +++ b/PkmnLibSharp/Library/StatisticSet.cs @@ -0,0 +1,24 @@ +using System; + +namespace PkmnLibSharp.Library +{ + public class StatisticSet where T : IComparable + { + public T HP { get; set; } + public T Attack { get; set; } + public T Defense { get; set; } + public T SpecialAttack { get; set; } + public T SpecialDefense { get; set; } + public T Speed { get; set; } + + public StatisticSet(T hp, T attack, T defense, T specialAttack, T specialDefense, T speed) + { + HP = hp; + Attack = attack; + Defense = defense; + SpecialAttack = specialAttack; + SpecialDefense = specialDefense; + Speed = speed; + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Native/libArubtils.so b/PkmnLibSharp/Native/libArubtils.so new file mode 100755 index 0000000..6c0aa88 --- /dev/null +++ b/PkmnLibSharp/Native/libArubtils.so @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4436c3b0bc9969c3e463cd21ce36554e5d1d62311d233a5d5c612a8b5fbac79 +size 1926872 diff --git a/PkmnLibSharp/Native/libCreatureLibBattling.so b/PkmnLibSharp/Native/libCreatureLibBattling.so index 7f3b7be..1360ce4 100755 --- a/PkmnLibSharp/Native/libCreatureLibBattling.so +++ b/PkmnLibSharp/Native/libCreatureLibBattling.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:36111ee575ad569c76116f3587f7d82d547d694b073cc88417031fd0ec31b7b3 -size 373624 +oid sha256:b0fbf52993ca99e73ba704a582f56e35a7c5c224e6866ea3c1a286d817d36b08 +size 369296 diff --git a/PkmnLibSharp/Native/libCreatureLibLibrary.so b/PkmnLibSharp/Native/libCreatureLibLibrary.so index a692c74..eb51d2d 100755 --- a/PkmnLibSharp/Native/libCreatureLibLibrary.so +++ b/PkmnLibSharp/Native/libCreatureLibLibrary.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2afdc9b03ab77564cb104248d3953a1d371caf12d451ebcb391700a8028ae0a8 -size 350440 +oid sha256:d666d450889788e7c2a096e102f2065916e20dcd375db409880fe57f0a0eb03d +size 236384 diff --git a/PkmnLibSharp/Native/libpkmnLib.so b/PkmnLibSharp/Native/libpkmnLib.so index 0754835..299d352 100755 --- a/PkmnLibSharp/Native/libpkmnLib.so +++ b/PkmnLibSharp/Native/libpkmnLib.so @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f4ef10f75ce0df454b8aff75218632be9053407826925a067da10d1ed13327f8 -size 1073120 +oid sha256:25ad97f61d6393585db0097a2549001ea3627b6539ef5efb6db720fa032e5ec5 +size 1073104 diff --git a/PkmnLibSharp/Utilities/Random.cs b/PkmnLibSharp/Utilities/Random.cs new file mode 100644 index 0000000..41657ee --- /dev/null +++ b/PkmnLibSharp/Utilities/Random.cs @@ -0,0 +1,59 @@ +namespace PkmnLibSharp.Utilities +{ + public class Random : PointerWrapper + { + public Random() : base(Arbutils.Generated.Random.Construct()) + { + } + + public Random(ulong seed) : base(Arbutils.Generated.Random.ConstructWithSeed(seed)) + { + } + + public float GetFloat() + { + return Arbutils.Generated.Random.GetFloat(Ptr); + } + + public double GetDouble() + { + return Arbutils.Generated.Random.GetDouble(Ptr); + } + + public int Get() + { + return Arbutils.Generated.Random.Get(Ptr); + } + + public int Get(int max) + { + return Arbutils.Generated.Random.GetWithMax(Ptr, max); + } + + public int Get(int min, int max) + { + return Arbutils.Generated.Random.GetInLimits(Ptr, min, max); + } + + public uint GetUnsigned() + { + return Arbutils.Generated.Random.GetUnsigned(Ptr); + } + + public uint GetUnsigned(uint max) + { + return Arbutils.Generated.Random.GetUnsignedWithMax(Ptr, max); + } + + public uint GetUnsigned(uint min, uint max) + { + return Arbutils.Generated.Random.GetUnsignedInLimits(Ptr, min, max); + } + + + protected override void DeletePtr() + { + Arbutils.Generated.Random.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/arbutils.json b/PkmnLibSharp/arbutils.json new file mode 100644 index 0000000..64f2b36 --- /dev/null +++ b/PkmnLibSharp/arbutils.json @@ -0,0 +1 @@ +{"enums":[],"functions":[{"filename":"Arbutils","name":"Arbutils_Random_Construct","parameters":[],"returns":"Random *"},{"filename":"Arbutils","name":"Arbutils_Random_ConstructWithSeed","parameters":[{"name":"seed","type":"long unsigned int"}],"returns":"Random *"},{"filename":"Arbutils","name":"Arbutils_Random_Destruct","parameters":[{"name":"p","type":"Random *"}],"returns":"void"},{"filename":"Arbutils","name":"Arbutils_Random_GetFloat","parameters":[{"name":"p","type":"Random *"}],"returns":"float"},{"filename":"Arbutils","name":"Arbutils_Random_GetDouble","parameters":[{"name":"p","type":"Random *"}],"returns":"double"},{"filename":"Arbutils","name":"Arbutils_Random_Get","parameters":[{"name":"p","type":"Random *"}],"returns":"int"},{"filename":"Arbutils","name":"Arbutils_Random_GetWithMax","parameters":[{"name":"p","type":"Random *"},{"name":"max","type":"int"}],"returns":"int"},{"filename":"Arbutils","name":"Arbutils_Random_GetInLimits","parameters":[{"name":"p","type":"Random *"},{"name":"min","type":"int"},{"name":"max","type":"int"}],"returns":"int"},{"filename":"Arbutils","name":"Arbutils_Random_GetUnsigned","parameters":[{"name":"p","type":"Random *"}],"returns":"unsigned int"},{"filename":"Arbutils","name":"Arbutils_Random_GetUnsignedWithMax","parameters":[{"name":"p","type":"Random *"},{"name":"max","type":"unsigned int"}],"returns":"unsigned int"},{"filename":"Arbutils","name":"Arbutils_Random_GetUnsignedInLimits","parameters":[{"name":"p","type":"Random *"},{"name":"min","type":"unsigned int"},{"name":"max","type":"unsigned int"}],"returns":"unsigned int"},{"filename":"Arbutils","name":"Arbutils_Random_GetSeed","parameters":[{"name":"p","type":"Random *"}],"returns":"long unsigned int"}]} diff --git a/PkmnLibSharp/creaturelib.json b/PkmnLibSharp/creaturelib.json index a768ad3..662932f 100644 --- a/PkmnLibSharp/creaturelib.json +++ b/PkmnLibSharp/creaturelib.json @@ -1 +1 @@ -{"enums":[{"byteSize":1,"filename":"CreatureLibLibrary","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"CreatureLibLibrary","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":"CreatureLibLibrary","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"DamageSource","values":{"0":"AttackDamage"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"EventDataKind","values":{"0":"Damage","1":"Heal","2":"Faint","3":"DisplayText"}},{"byteSize":4,"filename":"CreatureLibBattling","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"CreatureLibBattling","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"}}],"functions":[{"filename":"CreatureLibLibrary","name":"CreatureLib_C_GetLastException","parameters":[],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_Construct","parameters":[{"name":"out","type":"AttackData * &"},{"name":"name","type":"const char *"},{"name":"type","type":"unsigned char"},{"name":"category","type":"AttackCategory"},{"name":"power","type":"unsigned char"},{"name":"accuracy","type":"unsigned char"},{"name":"baseUsage","type":"unsigned char"},{"name":"target","type":"AttackTarget"},{"name":"priority","type":"signed char"},{"name":"effectChance","type":"float"},{"name":"effectName","type":"const char *"},{"name":"effectParameters","type":"EffectParameter * *"},{"name":"effectParameterCount","type":"long unsigned int"},{"name":"flags","type":"const char * *"},{"name":"flagsCount","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_Destruct","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetName","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetType","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetCategory","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"AttackCategory"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetBasePower","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetAccuracy","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetBaseUsages","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetTarget","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"AttackTarget"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetPriority","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"signed char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_HasSecondaryEffect","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetSecondaryEffectChance","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetSecondaryEffectName","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_HasFlag","parameters":[{"name":"p","type":"const AttackData *"},{"name":"key","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Construct","parameters":[{"name":"library","type":"AttackLibrary * &"},{"name":"initialCapacity","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Destruct","parameters":[{"name":"p","type":"const AttackLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Insert","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"},{"name":"t","type":"AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_InsertWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"t","type":"AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Delete","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_DeleteWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_TryGet","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const AttackData * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_TryGetWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const AttackData * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Get","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const AttackData * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_GetWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const AttackData * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_GetCount","parameters":[{"name":"p","type":"AttackLibrary *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_Construct","parameters":[{"name":"out","type":"CreatureSpecies * &"},{"name":"id","type":"unsigned short"},{"name":"name","type":"const char *"},{"name":"defaultVariant","type":"SpeciesVariant *"},{"name":"genderRatio","type":"float"},{"name":"growthRate","type":"const char *"},{"name":"captureRate","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_Destruct","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetId","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"unsigned short"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetGenderRate","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetCaptureRate","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetName","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetGrowthRate","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_HasVariant","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"name","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_HasVariantWithHash","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"hash","type":"unsigned int"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_TryGetVariant","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"name","type":"const char *"},{"name":"out","type":"const SpeciesVariant * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_TryGetVariantWithHash","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"hash","type":"unsigned int"},{"name":"out","type":"const SpeciesVariant * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetVariant","parameters":[{"name":"out","type":"const SpeciesVariant * &"},{"name":"p","type":"const CreatureSpecies *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetVariantWithHash","parameters":[{"name":"out","type":"const SpeciesVariant *"},{"name":"p","type":"const CreatureSpecies *"},{"name":"hash","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_SetVariant","parameters":[{"name":"p","type":"CreatureSpecies *"},{"name":"name","type":"const char *"},{"name":"variant","type":"SpeciesVariant *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_Construct","parameters":[{"name":"out","type":"const DataLibrary * &"},{"name":"settings","type":"LibrarySettings *"},{"name":"species","type":"SpeciesLibrary *"},{"name":"attacks","type":"AttackLibrary *"},{"name":"items","type":"ItemLibrary *"},{"name":"growthRates","type":"GrowthRateLibrary *"},{"name":"typeLibrary","type":"TypeLibrary *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_Destruct","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetSettings","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const LibrarySettings *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetSpeciesLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const SpeciesLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetAttackLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const AttackLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetItemLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const ItemLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetGrowthRates","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const GrowthRateLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetTypeLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const TypeLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromBool","parameters":[{"name":"b","type":"bool"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromInt","parameters":[{"name":"i","type":"long int"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromFloat","parameters":[{"name":"f","type":"float"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromString","parameters":[{"name":"c","type":"const char *"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_Destruct","parameters":[{"name":"p","type":"const EffectParameter *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_GetType","parameters":[{"name":"p","type":"const EffectParameter *"}],"returns":"EffectParameterType"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsBool","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"bool &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsInt","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"long int &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsFloat","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"float &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsString","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"const char * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LookupGrowthRate_Construct","parameters":[{"name":"experiencePerLevel","type":"unsigned int *"},{"name":"count","type":"long unsigned int"}],"returns":"GrowthRate *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ExternGrowthRate_Construct","parameters":[{"name":"out","type":"GrowthRate * &"},{"name":"calcLevel","type":"Function *"},{"name":"calcExperience","type":"Function *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRate_Destruct","parameters":[{"name":"p","type":"const GrowthRate *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LookupGrowthRate_Destruct","parameters":[{"name":"p","type":"const LookupGrowthRate *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ExternGrowthRate_Destruct","parameters":[{"name":"p","type":"const ExternGrowthRate *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRate_CalculateLevel","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const GrowthRate *"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRate_CalculateExperience","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const GrowthRate *"},{"name":"level","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"GrowthRateLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_Destruct","parameters":[{"name":"p","type":"GrowthRateLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateLevel","parameters":[{"name":"out","type":"unsigned char &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRate","type":"const char *"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateLevelWithHash","parameters":[{"name":"out","type":"unsigned char &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateHash","type":"unsigned int"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateExperience","parameters":[{"name":"out","type":"unsigned int &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRate","type":"const char *"},{"name":"level","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateExperienceWithHash","parameters":[{"name":"out","type":"unsigned int &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateHash","type":"unsigned int"},{"name":"level","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_AddGrowthRate","parameters":[{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateName","type":"const char *"},{"name":"growthRate","type":"GrowthRate *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_AddGrowthRateWithHash","parameters":[{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateHash","type":"unsigned int"},{"name":"growthRate","type":"GrowthRate *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_Construct","parameters":[{"name":"name","type":"const char *"},{"name":"category","type":"ItemCategory"},{"name":"battleCategory","type":"BattleItemCategory"},{"name":"price","type":"int"},{"name":"flags","type":"const char * *"},{"name":"flagsCount","type":"long unsigned int"}],"returns":"Item *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_Destruct","parameters":[{"name":"p","type":"const Item *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetName","parameters":[{"name":"p","type":"const Item *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetCategory","parameters":[{"name":"p","type":"const Item *"}],"returns":"ItemCategory"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetBattleCategory","parameters":[{"name":"p","type":"const Item *"}],"returns":"BattleItemCategory"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetPrice","parameters":[{"name":"p","type":"const Item *"}],"returns":"int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_HasFlag","parameters":[{"name":"p","type":"const Item *"},{"name":"key","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"const ItemLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Destruct","parameters":[{"name":"p","type":"const ItemLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Insert","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"},{"name":"t","type":"Item *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_InsertWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"t","type":"Item *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Delete","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_DeleteWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_TryGet","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const Item * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_TryGetWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const Item * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Get","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const Item * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_GetWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const Item * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_GetCount","parameters":[{"name":"p","type":"ItemLibrary *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_Construct","parameters":[{"name":"out","type":"LearnableAttacks * &"},{"name":"levelAttackCapacity","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_Destruct","parameters":[{"name":"p","type":"LearnableAttacks *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_AddLevelAttack","parameters":[{"name":"p","type":"LearnableAttacks *"},{"name":"level","type":"unsigned char"},{"name":"attack","type":"const AttackData *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_GetAttacksForLevel","parameters":[{"name":"p","type":"LearnableAttacks *"},{"name":"level","type":"unsigned char"}],"returns":"const const AttackData * *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_GetAttacksForLevelCount","parameters":[{"name":"p","type":"LearnableAttacks *"},{"name":"level","type":"unsigned char"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_Construct","parameters":[{"name":"maximalLevel","type":"unsigned char"},{"name":"maximalMoves","type":"unsigned char"}],"returns":"const LibrarySettings *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_Destruct","parameters":[{"name":"p","type":"const LibrarySettings *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_GetMaximalLevel","parameters":[{"name":"p","type":"const LibrarySettings *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_GetMaximalMoves","parameters":[{"name":"p","type":"const LibrarySettings *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"const SpeciesLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Destruct","parameters":[{"name":"p","type":"const SpeciesLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Insert","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"},{"name":"t","type":"CreatureSpecies *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_InsertWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"t","type":"CreatureSpecies *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Delete","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_DeleteWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_TryGet","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_TryGetWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Get","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_GetWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_GetCount","parameters":[{"name":"p","type":"SpeciesLibrary *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_Construct","parameters":[{"name":"name","type":"const char *"},{"name":"height","type":"float"},{"name":"weight","type":"float"},{"name":"baseExperience","type":"unsigned int"},{"name":"types","type":"unsigned char *"},{"name":"typeLength","type":"long unsigned int"},{"name":"baseHealth","type":"unsigned short"},{"name":"baseAttack","type":"unsigned short"},{"name":"baseDefense","type":"unsigned short"},{"name":"baseMagicalAttack","type":"unsigned short"},{"name":"baseMagicalDefense","type":"unsigned short"},{"name":"baseSpeed","type":"unsigned short"},{"name":"talents","type":"const char * *"},{"name":"talentsLength","type":"long unsigned int"},{"name":"secretTalents","type":"const char * *"},{"name":"secretTalentsLength","type":"long unsigned int"},{"name":"attacks","type":"const LearnableAttacks *"}],"returns":"SpeciesVariant *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_Destruct","parameters":[{"name":"p","type":"SpeciesVariant *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetName","parameters":[{"name":"p","type":"SpeciesVariant *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetHeight","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetWeight","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetBaseExperience","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetTypeCount","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetType","parameters":[{"name":"p","type":"SpeciesVariant *"},{"name":"index","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetStatistic","parameters":[{"name":"p","type":"SpeciesVariant *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned short"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetTalentCount","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetSecretTalentCount","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetTalent","parameters":[{"name":"p","type":"SpeciesVariant *"},{"name":"secret","type":"bool"},{"name":"index","type":"unsigned char"},{"name":"out","type":"const char * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetLearnableAttacks","parameters":[{"name":"p","type":"SpeciesVariant *"}],"returns":"const LearnableAttacks *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"TypeLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_Destruct","parameters":[{"name":"p","type":"const TypeLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetTypeId","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const TypeLibrary *"},{"name":"type","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetTypeIdWithHash","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const TypeLibrary *"},{"name":"type","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_RegisterType","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"TypeLibrary *"},{"name":"type","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_RegisterTypeWithHash","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"TypeLibrary *"},{"name":"type","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_SetEffectiveness","parameters":[{"name":"p","type":"TypeLibrary *"},{"name":"attacking","type":"unsigned char"},{"name":"defensive","type":"unsigned char"},{"name":"effectiveness","type":"float"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetSingleEffectiveness","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"TypeLibrary *"},{"name":"attacking","type":"unsigned char"},{"name":"defensive","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetEffectiveness","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"TypeLibrary *"},{"name":"attacking","type":"unsigned char"},{"name":"defensive","type":"unsigned char *"},{"name":"defensiveCount","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","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"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_Destruct","parameters":[{"name":"p","type":"const Battle *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetLibrary","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CanUse","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_TrySetChoice","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CanFlee","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CheckChoicesSetAndRun","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetCurrentTurnQueue","parameters":[{"name":"p","type":"const Battle *"}],"returns":"ChoiceQueue *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetRandom","parameters":[{"name":"p","type":"Battle *"}],"returns":"BattleRandom *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CreatureInField","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_ForceRecall","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_SwitchCreature","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CanSlotBeFilled","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_ValidateBattleState","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_HasEnded","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_HasConclusiveResult","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetWinningSide","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetSidesCount","parameters":[{"name":"p","type":"const Battle *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetSides","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleSide * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetPartiesCount","parameters":[{"name":"p","type":"const Battle *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetParties","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleParty * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"Script *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_AddVolatileScriptByName","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_AddVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_RemoveVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_RemoveVolatileScriptWithScript","parameters":[{"name":"p","type":"Battle *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_HasVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_RegisterEventListener","parameters":[{"name":"p","type":"Battle *"},{"name":"func","type":"Function *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_TriggerEventListener","parameters":[{"name":"p","type":"Battle *"},{"name":"data","type":"EventData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_Construct","parameters":[{"name":"out","type":"const BattleLibrary * &"},{"name":"staticLib","type":"const DataLibrary *"},{"name":"statCalculator","type":"BattleStatCalculator *"},{"name":"damageLibrary","type":"DamageLibrary *"},{"name":"experienceLibrary","type":"ExperienceLibrary *"},{"name":"scriptResolver","type":"ScriptResolver *"},{"name":"miscLibrary","type":"MiscLibrary *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_Destruct","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetStaticLib","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const DataLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetStatCalculator","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const BattleStatCalculator *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetDamageLibrary","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const DamageLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetMiscLibrary","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const MiscLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetExperienceLibrary","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const ExperienceLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_Construct","parameters":[{"name":"out","type":"BattleParty * &"},{"name":"p","type":"CreatureParty *"},{"name":"creatureIndices","type":"unsigned char *"},{"name":"numberOfIndices","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_Destruct","parameters":[{"name":"p","type":"const BattleParty *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_IsResponsibleForIndex","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const BattleParty *"},{"name":"side","type":"unsigned char"},{"name":"creature","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_HasCreaturesNotInField","parameters":[{"name":"p","type":"const BattleParty *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_Construct","parameters":[],"returns":"BattleRandom *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_ConstructWithSeed","parameters":[{"name":"seed","type":"long unsigned int"}],"returns":"BattleRandom *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_Destruct","parameters":[{"name":"p","type":"BattleRandom *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_EffectChance","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"BattleRandom *"},{"name":"chance","type":"float"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_Get","parameters":[{"name":"p","type":"BattleRandom *"}],"returns":"int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_GetMax","parameters":[{"name":"p","type":"BattleRandom *"},{"name":"max","type":"int"}],"returns":"int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_GetMinMax","parameters":[{"name":"p","type":"BattleRandom *"},{"name":"min","type":"int"},{"name":"max","type":"int"}],"returns":"int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_GetSeed","parameters":[{"name":"p","type":"BattleRandom *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_Construct","parameters":[{"name":"index","type":"unsigned char"},{"name":"battle","type":"Battle *"},{"name":"creaturesPerSide","type":"unsigned char"}],"returns":"BattleSide *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_Destruct","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_AllChoicesSet","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_AllPossibleSlotsFilled","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"BattleSide *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_SetChoice","parameters":[{"name":"p","type":"BattleSide *"},{"name":"choice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_ResetChoices","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_SetCreature","parameters":[{"name":"p","type":"BattleSide *"},{"name":"creature","type":"Creature *"},{"name":"index","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"BattleSide *"},{"name":"index","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_GetSideIndex","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_GetCreatureIndex","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"BattleSide *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_MarkSlotAsUnfillable","parameters":[{"name":"p","type":"BattleSide *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_IsDefeated","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_HasFled","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_MarkAsFled","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_Construct","parameters":[],"returns":"const BattleStatCalculator *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_Destruct","parameters":[{"name":"p","type":"const BattleStatCalculator *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_CalculateFlatStat","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const BattleStatCalculator *"},{"name":"creature","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_CalculateBoostedStat","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const BattleStatCalculator *"},{"name":"creature","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Construct","parameters":[{"name":"out","type":"Creature * &"},{"name":"library","type":"const BattleLibrary *"},{"name":"species","type":"const CreatureSpecies *"},{"name":"variant","type":"const SpeciesVariant *"},{"name":"level","type":"unsigned char"},{"name":"experience","type":"unsigned int"},{"name":"uid","type":"unsigned int"},{"name":"gender","type":"Gender"},{"name":"coloring","type":"unsigned char"},{"name":"heldItem","type":"const Item *"},{"name":"nickname","type":"const char *"},{"name":"secretTalent","type":"bool"},{"name":"talent","type":"unsigned char"},{"name":"attacks","type":"LearnedAttack * *"},{"name":"attacksNum","type":"long unsigned int"},{"name":"allowedExperienceGain","type":"bool"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Destruct","parameters":[{"name":"p","type":"const Creature *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetSpecies","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const CreatureSpecies *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetVariant","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const SpeciesVariant *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ChangeVariant","parameters":[{"name":"p","type":"Creature *"},{"name":"variant","type":"const SpeciesVariant *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetLevel","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetExperience","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetGender","parameters":[{"name":"p","type":"const Creature *"}],"returns":"Gender"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetColoring","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasHeldItem","parameters":[{"name":"p","type":"const Creature *"},{"name":"name","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasHeldItemWithHash","parameters":[{"name":"p","type":"const Creature *"},{"name":"hash","type":"unsigned int"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetHeldItem","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const Item *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetHeldItem","parameters":[{"name":"p","type":"Creature *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetHeldItemWithHash","parameters":[{"name":"p","type":"Creature *"},{"name":"hash","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetHeldItemFromItem","parameters":[{"name":"p","type":"Creature *"},{"name":"item","type":"const Item *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetCurrentHealth","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBattle","parameters":[{"name":"p","type":"const Creature *"}],"returns":"Battle *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBattleSide","parameters":[{"name":"p","type":"const Creature *"}],"returns":"BattleSide *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_IsOnBattleField","parameters":[{"name":"p","type":"const Creature *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetNickname","parameters":[{"name":"p","type":"Creature *"}],"returns":"const char *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasType","parameters":[{"name":"p","type":"Creature *"},{"name":"type","type":"unsigned char"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetMaxHealth","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ChangeLevelBy","parameters":[{"name":"p","type":"Creature *"},{"name":"level","type":"signed char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Damage","parameters":[{"name":"p","type":"Creature *"},{"name":"damage","type":"unsigned int"},{"name":"source","type":"DamageSource"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Heal","parameters":[{"name":"p","type":"Creature *"},{"name":"health","type":"unsigned int"},{"name":"canRevive","type":"bool"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_OverrideActiveTalent","parameters":[{"name":"p","type":"Creature *"},{"name":"talent","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_AddExperience","parameters":[{"name":"p","type":"Creature *"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ClearVolatileScripts","parameters":[{"name":"p","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_AddVolatileScriptByName","parameters":[{"name":"p","type":"Creature *"},{"name":"scriptName","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_AddVolatileScript","parameters":[{"name":"p","type":"Creature *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_RemoveVolatileScriptByName","parameters":[{"name":"p","type":"Creature *"},{"name":"scriptName","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_RemoveVolatileScript","parameters":[{"name":"p","type":"Creature *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasVolatileScript","parameters":[{"name":"p","type":"Creature *"},{"name":"scriptName","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetAttacksCount","parameters":[{"name":"p","type":"Creature *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetAttack","parameters":[{"name":"p","type":"Creature *"},{"name":"index","type":"long unsigned int"}],"returns":"const LearnedAttack * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetDisplaySpecies","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const CreatureSpecies *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetDisplayVariant","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const SpeciesVariant *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetDisplaySpecies","parameters":[{"name":"p","type":"Creature *"},{"name":"species","type":"const CreatureSpecies *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetDisplayVariant","parameters":[{"name":"p","type":"Creature *"},{"name":"variant","type":"const SpeciesVariant *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ChangeStatBoost","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"},{"name":"diffAmount","type":"signed char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetFlatStat","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBoostedStat","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBaseStat","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetStatBoost","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"signed char"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_ConstructWithSize","parameters":[{"name":"size","type":"long unsigned int"}],"returns":"CreatureParty *"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_ConstructFromArray","parameters":[{"name":"creatures","type":"Creature * *"},{"name":"size","type":"long unsigned int"}],"returns":"CreatureParty *"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_Destruct","parameters":[{"name":"p","type":"const CreatureParty *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_GetAtIndex","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const CreatureParty *"},{"name":"index","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_Switch","parameters":[{"name":"p","type":"CreatureParty *"},{"name":"a","type":"long unsigned int"},{"name":"b","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_HasAvailableCreatures","parameters":[{"name":"p","type":"const CreatureParty *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_GetLength","parameters":[{"name":"p","type":"const CreatureParty *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_GetParty","parameters":[{"name":"p","type":"CreatureParty *"}],"returns":"const Creature * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_Construct","parameters":[],"returns":"const DamageLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_Destruct","parameters":[{"name":"p","type":"const DamageLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetDamage","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetBasePower","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetStatModifier","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetDamageModifier","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_EventData_Destruct","parameters":[{"name":"p","type":"const EventData *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_EventData_GetKind","parameters":[{"name":"p","type":"const EventData *"}],"returns":"EventDataKind"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetCreature","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetDamageSource","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"DamageSource"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetOriginalHealth","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetNewHealth","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_HealEvent_GetCreature","parameters":[{"name":"p","type":"const HealEvent *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_HealEvent_GetOriginalHealth","parameters":[{"name":"p","type":"const HealEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_HealEvent_GetNewHealth","parameters":[{"name":"p","type":"const HealEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_FaintEvent_GetCreature","parameters":[{"name":"p","type":"const FaintEvent *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DisplayTextEvent_GetText","parameters":[{"name":"p","type":"const DisplayTextEvent *"}],"returns":"const char *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_Construct","parameters":[{"name":"out","type":"ExecutingAttack * &"},{"name":"targets","type":"const Creature * *"},{"name":"targetCount","type":"long unsigned int"},{"name":"numberHits","type":"unsigned char"},{"name":"user","type":"Creature *"},{"name":"attack","type":"LearnedAttack *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_Destruct","parameters":[{"name":"p","type":"ExecutingAttack *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_GetHitData","parameters":[{"name":"out","type":"HitData * &"},{"name":"p","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hit","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_IsCreatureTarget","parameters":[{"name":"p","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_GetUser","parameters":[{"name":"p","type":"ExecutingAttack *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_GetAttack","parameters":[{"name":"p","type":"ExecutingAttack *"}],"returns":"LearnedAttack *"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_IsCritical","parameters":[{"name":"p","type":"const HitData *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetBasePower","parameters":[{"name":"p","type":"const HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetEffectiveness","parameters":[{"name":"p","type":"const HitData *"}],"returns":"float"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetDamage","parameters":[{"name":"p","type":"const HitData *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetType","parameters":[{"name":"p","type":"const HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetCritical","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"bool"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetBasePower","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetEffectiveness","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"float"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetDamage","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"unsigned int"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetType","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExperienceLibrary_Construct","parameters":[],"returns":"const ExperienceLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExperienceLibrary_Destruct","parameters":[{"name":"p","type":"const ExperienceLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExperienceLibrary_HandleExperienceGain","parameters":[{"name":"p","type":"const ExperienceLibrary *"},{"name":"faintedMon","type":"Creature *"},{"name":"opponents","type":"Creature * *"},{"name":"opponentsCount","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_Construct","parameters":[{"name":"out","type":"LearnedAttack * &"},{"name":"attack","type":"const AttackData *"},{"name":"maxUses","type":"unsigned char"},{"name":"learnMethod","type":"AttackLearnMethod"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_Destruct","parameters":[{"name":"p","type":"LearnedAttack *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetAttack","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"const AttackData *"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetMaxUses","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetRemainingUses","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetLearnMethod","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"AttackLearnMethod"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_TryUse","parameters":[{"name":"p","type":"LearnedAttack *"},{"name":"uses","type":"unsigned char"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_DecreaseUses","parameters":[{"name":"p","type":"LearnedAttack *"},{"name":"uses","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_RestoreUses","parameters":[{"name":"p","type":"LearnedAttack *"},{"name":"uses","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_RestoreAllUses","parameters":[{"name":"p","type":"LearnedAttack *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_Construct","parameters":[],"returns":"MiscLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_Destruct","parameters":[{"name":"p","type":"const MiscLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_IsCritical","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"MiscLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hit","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_CanFlee","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"MiscLibrary *"},{"name":"switchChoice","type":"FleeTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_ReplacementAttack","parameters":[{"name":"out","type":"BaseTurnChoice * &"},{"name":"p","type":"MiscLibrary *"},{"name":"user","type":"Creature *"},{"name":"sideTarget","type":"unsigned char"},{"name":"creatureTarget","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_Destruct","parameters":[{"name":"p","type":"Script *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_Stack","parameters":[{"name":"p","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnRemove","parameters":[{"name":"p","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_GetName","parameters":[{"name":"p","type":"Script *"}],"returns":"const char *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnBeforeTurn","parameters":[{"name":"p","type":"Script *"},{"name":"choice","type":"const BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ChangeAttack","parameters":[{"name":"p","type":"Script *"},{"name":"choice","type":"AttackTurnChoice *"},{"name":"outAttack","type":"StringView *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_PreventAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_FailAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_StopBeforeAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnBeforeAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_FailIncomingAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_IsInvulnerable","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnAttackMiss","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ChangeAttackType","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"outType","type":"unsigned char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OverrideBasePower","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"basePower","type":"unsigned char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ChangeDamageStatsUser","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"statsUser","type":"Creature * *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_BypassDefensiveStat","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"bypass","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_BypassOffensiveStat","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"bypass","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyStatModifier","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"modifier","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyDamageModifier","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"modifier","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OverrideDamage","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"damage","type":"unsigned int *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_PreventSecondaryEffects","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnSecondaryEffect","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnAfterHits","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_PreventSelfSwitch","parameters":[{"name":"p","type":"Script *"},{"name":"choice","type":"const SwitchTurnChoice *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyEffectChance","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"const ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"chance","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyIncomingEffectChance","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"const ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"chance","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_Construct","parameters":[],"returns":"ScriptResolver *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_Destruct","parameters":[{"name":"p","type":"const ScriptResolver *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_Initialize","parameters":[{"name":"p","type":"ScriptResolver *"},{"name":"library","type":"BattleLibrary *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_LoadScript","parameters":[{"name":"out","type":"Script * &"},{"name":"p","type":"ScriptResolver *"},{"name":"category","type":"ScriptCategory"},{"name":"scriptName","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"},{"name":"attack","type":"LearnedAttack *"},{"name":"sideIndex","type":"unsigned char"},{"name":"targetIndex","type":"unsigned char"}],"returns":"AttackTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_FleeTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"}],"returns":"FleeTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_PassTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"}],"returns":"PassTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_SwitchTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"},{"name":"newCreature","type":"Creature *"}],"returns":"SwitchTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_Destruct","parameters":[{"name":"p","type":"const BaseTurnChoice *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetKind","parameters":[{"name":"p","type":"const BaseTurnChoice *"}],"returns":"TurnChoiceKind"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetUser","parameters":[{"name":"p","type":"const BaseTurnChoice *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_GetAttack","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"LearnedAttack *"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_GetKind","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"TurnChoiceKind"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetPriority","parameters":[{"name":"out","type":"signed char &"},{"name":"p","type":"AttackTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_GetAttackScript","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"Script *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetTargetSideIndex","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetTargetCreatureIndex","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_SwitchTurnChoice_GetNewCreature","parameters":[{"name":"p","type":"const SwitchTurnChoice *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_C_GetLastException","parameters":[],"returns":"const char *"}]} +{"enums":[{"byteSize":1,"filename":"CreatureLibLibrary","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"CreatureLibLibrary","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":"CreatureLibLibrary","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"CreatureLibLibrary","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"ScriptCategory","values":{"0":"Attack","1":"Talent","2":"Status","3":"Creature","4":"Battle","5":"Side"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"Statistic","values":{"0":"Health","1":"PhysicalAttack","2":"PhysicalDefense","3":"MagicalAttack","4":"MagicalDefense","5":"Speed"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"Gender","values":{"0":"Male","1":"Female","2":"Genderless"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"ItemCategory","values":{"0":"MiscItem","1":"CaptureDevice","2":"Medicine","3":"Berry","4":"MoveLearner","5":"VariantChanger","6":"KeyItem","7":"Mail"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"BattleItemCategory","values":{"0":"None","1":"Healing","2":"StatusHealing","3":"CaptureDevice","4":"MiscBattleItem"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"DamageSource","values":{"0":"AttackDamage"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"EventDataKind","values":{"0":"Damage","1":"Heal","2":"Faint","3":"DisplayText"}},{"byteSize":4,"filename":"CreatureLibBattling","name":"AttackLearnMethod","values":{"0":"Unknown","1":"Level"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"TurnChoiceKind","values":{"0":"Pass","1":"Attack","2":"Item","3":"Switch","4":"Flee"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"EffectParameterType","values":{"0":"None","1":"Bool","2":"Int","3":"Float","4":"String"}},{"byteSize":1,"filename":"CreatureLibBattling","name":"AttackCategory","values":{"0":"Physical","1":"Magical","2":"Status"}},{"byteSize":1,"filename":"CreatureLibBattling","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"}}],"functions":[{"filename":"CreatureLibLibrary","name":"CreatureLib_C_GetLastException","parameters":[],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_Construct","parameters":[{"name":"out","type":"AttackData * &"},{"name":"name","type":"const char *"},{"name":"type","type":"unsigned char"},{"name":"category","type":"AttackCategory"},{"name":"power","type":"unsigned char"},{"name":"accuracy","type":"unsigned char"},{"name":"baseUsage","type":"unsigned char"},{"name":"target","type":"AttackTarget"},{"name":"priority","type":"signed char"},{"name":"effectChance","type":"float"},{"name":"effectName","type":"const char *"},{"name":"effectParameters","type":"EffectParameter * *"},{"name":"effectParameterCount","type":"long unsigned int"},{"name":"flags","type":"const char * *"},{"name":"flagsCount","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_Destruct","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetName","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetType","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetCategory","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"AttackCategory"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetBasePower","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetAccuracy","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetBaseUsages","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetTarget","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"AttackTarget"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetPriority","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"signed char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_HasSecondaryEffect","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetSecondaryEffectChance","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_GetSecondaryEffectName","parameters":[{"name":"p","type":"const AttackData *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackData_HasFlag","parameters":[{"name":"p","type":"const AttackData *"},{"name":"key","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Construct","parameters":[{"name":"library","type":"AttackLibrary * &"},{"name":"initialCapacity","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Destruct","parameters":[{"name":"p","type":"const AttackLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Insert","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"},{"name":"t","type":"AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_InsertWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"t","type":"AttackData *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Delete","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_DeleteWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_TryGet","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const AttackData * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_TryGetWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const AttackData * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_Get","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const AttackData * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_GetWithHash","parameters":[{"name":"p","type":"AttackLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const AttackData * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_AttackLibrary_GetCount","parameters":[{"name":"p","type":"AttackLibrary *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_Construct","parameters":[{"name":"out","type":"CreatureSpecies * &"},{"name":"id","type":"unsigned short"},{"name":"name","type":"const char *"},{"name":"defaultVariant","type":"SpeciesVariant *"},{"name":"genderRatio","type":"float"},{"name":"growthRate","type":"const char *"},{"name":"captureRate","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_Destruct","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetId","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"unsigned short"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetGenderRate","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetCaptureRate","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetName","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetGrowthRate","parameters":[{"name":"p","type":"const CreatureSpecies *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_HasVariant","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"name","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_HasVariantWithHash","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"hash","type":"unsigned int"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_TryGetVariant","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"name","type":"const char *"},{"name":"out","type":"const SpeciesVariant * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_TryGetVariantWithHash","parameters":[{"name":"p","type":"const CreatureSpecies *"},{"name":"hash","type":"unsigned int"},{"name":"out","type":"const SpeciesVariant * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetVariant","parameters":[{"name":"out","type":"const SpeciesVariant * &"},{"name":"p","type":"const CreatureSpecies *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetVariantWithHash","parameters":[{"name":"out","type":"const SpeciesVariant * &"},{"name":"p","type":"const CreatureSpecies *"},{"name":"hash","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_SetVariant","parameters":[{"name":"p","type":"CreatureSpecies *"},{"name":"name","type":"const char *"},{"name":"variant","type":"SpeciesVariant *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_CreatureSpecies_GetRandomGender","parameters":[{"name":"p","type":"CreatureSpecies *"},{"name":"random","type":"Random *"}],"returns":"Gender"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_Construct","parameters":[{"name":"out","type":"const DataLibrary * &"},{"name":"settings","type":"LibrarySettings *"},{"name":"species","type":"SpeciesLibrary *"},{"name":"attacks","type":"AttackLibrary *"},{"name":"items","type":"ItemLibrary *"},{"name":"growthRates","type":"GrowthRateLibrary *"},{"name":"typeLibrary","type":"TypeLibrary *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_Destruct","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetSettings","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const LibrarySettings *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetSpeciesLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const SpeciesLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetAttackLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const AttackLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetItemLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const ItemLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetGrowthRates","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const GrowthRateLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_DataLibrary_GetTypeLibrary","parameters":[{"name":"p","type":"const DataLibrary *"}],"returns":"const TypeLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromBool","parameters":[{"name":"b","type":"bool"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromInt","parameters":[{"name":"i","type":"long int"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromFloat","parameters":[{"name":"f","type":"float"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_FromString","parameters":[{"name":"c","type":"const char *"}],"returns":"EffectParameter *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_Destruct","parameters":[{"name":"p","type":"const EffectParameter *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_GetType","parameters":[{"name":"p","type":"const EffectParameter *"}],"returns":"EffectParameterType"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsBool","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"bool &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsInt","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"long int &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsFloat","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"float &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_EffectParameter_AsString","parameters":[{"name":"p","type":"const EffectParameter *"},{"name":"out","type":"const char * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LookupGrowthRate_Construct","parameters":[{"name":"experiencePerLevel","type":"unsigned int *"},{"name":"count","type":"long unsigned int"}],"returns":"GrowthRate *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ExternGrowthRate_Construct","parameters":[{"name":"out","type":"GrowthRate * &"},{"name":"calcLevel","type":"Function *"},{"name":"calcExperience","type":"Function *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRate_Destruct","parameters":[{"name":"p","type":"const GrowthRate *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LookupGrowthRate_Destruct","parameters":[{"name":"p","type":"const LookupGrowthRate *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ExternGrowthRate_Destruct","parameters":[{"name":"p","type":"const ExternGrowthRate *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRate_CalculateLevel","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const GrowthRate *"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRate_CalculateExperience","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const GrowthRate *"},{"name":"level","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"GrowthRateLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_Destruct","parameters":[{"name":"p","type":"GrowthRateLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateLevel","parameters":[{"name":"out","type":"unsigned char &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRate","type":"const char *"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateLevelWithHash","parameters":[{"name":"out","type":"unsigned char &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateHash","type":"unsigned int"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateExperience","parameters":[{"name":"out","type":"unsigned int &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRate","type":"const char *"},{"name":"level","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_CalculateExperienceWithHash","parameters":[{"name":"out","type":"unsigned int &"},{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateHash","type":"unsigned int"},{"name":"level","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_AddGrowthRate","parameters":[{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateName","type":"const char *"},{"name":"growthRate","type":"GrowthRate *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_GrowthRateLibrary_AddGrowthRateWithHash","parameters":[{"name":"library","type":"GrowthRateLibrary *"},{"name":"growthRateHash","type":"unsigned int"},{"name":"growthRate","type":"GrowthRate *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_Construct","parameters":[{"name":"name","type":"const char *"},{"name":"category","type":"ItemCategory"},{"name":"battleCategory","type":"BattleItemCategory"},{"name":"price","type":"int"},{"name":"flags","type":"const char * *"},{"name":"flagsCount","type":"long unsigned int"}],"returns":"Item *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_Destruct","parameters":[{"name":"p","type":"const Item *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetName","parameters":[{"name":"p","type":"const Item *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetCategory","parameters":[{"name":"p","type":"const Item *"}],"returns":"ItemCategory"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetBattleCategory","parameters":[{"name":"p","type":"const Item *"}],"returns":"BattleItemCategory"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_GetPrice","parameters":[{"name":"p","type":"const Item *"}],"returns":"int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_Item_HasFlag","parameters":[{"name":"p","type":"const Item *"},{"name":"key","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"const ItemLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Destruct","parameters":[{"name":"p","type":"const ItemLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Insert","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"},{"name":"t","type":"Item *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_InsertWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"t","type":"Item *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Delete","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_DeleteWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_TryGet","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const Item * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_TryGetWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const Item * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_Get","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const Item * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_GetWithHash","parameters":[{"name":"p","type":"ItemLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const Item * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_ItemLibrary_GetCount","parameters":[{"name":"p","type":"ItemLibrary *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_Construct","parameters":[{"name":"out","type":"LearnableAttacks * &"},{"name":"levelAttackCapacity","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_Destruct","parameters":[{"name":"p","type":"LearnableAttacks *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_AddLevelAttack","parameters":[{"name":"p","type":"LearnableAttacks *"},{"name":"level","type":"unsigned char"},{"name":"attack","type":"const AttackData *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_GetAttacksForLevel","parameters":[{"name":"p","type":"LearnableAttacks *"},{"name":"level","type":"unsigned char"}],"returns":"const const AttackData * *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LearnableAttacks_GetAttacksForLevelCount","parameters":[{"name":"p","type":"LearnableAttacks *"},{"name":"level","type":"unsigned char"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_Construct","parameters":[{"name":"maximalLevel","type":"unsigned char"},{"name":"maximalMoves","type":"unsigned char"}],"returns":"const LibrarySettings *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_Destruct","parameters":[{"name":"p","type":"const LibrarySettings *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_GetMaximalLevel","parameters":[{"name":"p","type":"const LibrarySettings *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_LibrarySettings_GetMaximalMoves","parameters":[{"name":"p","type":"const LibrarySettings *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"const SpeciesLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Destruct","parameters":[{"name":"p","type":"const SpeciesLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Insert","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"},{"name":"t","type":"CreatureSpecies *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_InsertWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"t","type":"CreatureSpecies *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Delete","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_DeleteWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_TryGet","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_TryGetWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"bool"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_Get","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"name","type":"const char *"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_GetWithHash","parameters":[{"name":"p","type":"SpeciesLibrary *"},{"name":"hashedKey","type":"unsigned int"},{"name":"out","type":"const CreatureSpecies * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesLibrary_GetCount","parameters":[{"name":"p","type":"SpeciesLibrary *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_Construct","parameters":[{"name":"name","type":"const char *"},{"name":"height","type":"float"},{"name":"weight","type":"float"},{"name":"baseExperience","type":"unsigned int"},{"name":"types","type":"unsigned char *"},{"name":"typeLength","type":"long unsigned int"},{"name":"baseHealth","type":"unsigned short"},{"name":"baseAttack","type":"unsigned short"},{"name":"baseDefense","type":"unsigned short"},{"name":"baseMagicalAttack","type":"unsigned short"},{"name":"baseMagicalDefense","type":"unsigned short"},{"name":"baseSpeed","type":"unsigned short"},{"name":"talents","type":"const char * *"},{"name":"talentsLength","type":"long unsigned int"},{"name":"secretTalents","type":"const char * *"},{"name":"secretTalentsLength","type":"long unsigned int"},{"name":"attacks","type":"const LearnableAttacks *"}],"returns":"SpeciesVariant *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_Destruct","parameters":[{"name":"p","type":"SpeciesVariant *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetName","parameters":[{"name":"p","type":"SpeciesVariant *"}],"returns":"const char *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetHeight","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetWeight","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"float"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetBaseExperience","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetTypeCount","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetType","parameters":[{"name":"p","type":"SpeciesVariant *"},{"name":"index","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetStatistic","parameters":[{"name":"p","type":"SpeciesVariant *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned short"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetTalentCount","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetSecretTalentCount","parameters":[{"name":"p","type":"const SpeciesVariant *"}],"returns":"long unsigned int"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetTalent","parameters":[{"name":"p","type":"SpeciesVariant *"},{"name":"secret","type":"bool"},{"name":"index","type":"unsigned char"},{"name":"out","type":"const char * &"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetLearnableAttacks","parameters":[{"name":"p","type":"SpeciesVariant *"}],"returns":"const LearnableAttacks *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_SpeciesVariant_GetRandomTalent","parameters":[{"name":"p","type":"SpeciesVariant *"},{"name":"rand","type":"Random *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_Construct","parameters":[{"name":"initialCapacity","type":"long unsigned int"}],"returns":"TypeLibrary *"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_Destruct","parameters":[{"name":"p","type":"const TypeLibrary *"}],"returns":"void"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetTypeId","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const TypeLibrary *"},{"name":"type","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetTypeIdWithHash","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const TypeLibrary *"},{"name":"type","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_RegisterType","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"TypeLibrary *"},{"name":"type","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_RegisterTypeWithHash","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"TypeLibrary *"},{"name":"type","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_SetEffectiveness","parameters":[{"name":"p","type":"TypeLibrary *"},{"name":"attacking","type":"unsigned char"},{"name":"defensive","type":"unsigned char"},{"name":"effectiveness","type":"float"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetSingleEffectiveness","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"TypeLibrary *"},{"name":"attacking","type":"unsigned char"},{"name":"defensive","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibLibrary","name":"CreatureLib_TypeLibrary_GetEffectiveness","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"TypeLibrary *"},{"name":"attacking","type":"unsigned char"},{"name":"defensive","type":"unsigned char *"},{"name":"defensiveCount","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","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"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_Destruct","parameters":[{"name":"p","type":"const Battle *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetLibrary","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CanUse","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_TrySetChoice","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"Battle *"},{"name":"turnChoice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CanFlee","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CheckChoicesSetAndRun","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetCurrentTurnQueue","parameters":[{"name":"p","type":"const Battle *"}],"returns":"ChoiceQueue *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetRandom","parameters":[{"name":"p","type":"Battle *"}],"returns":"BattleRandom *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CreatureInField","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_ForceRecall","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_SwitchCreature","parameters":[{"name":"p","type":"Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_CanSlotBeFilled","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const Battle *"},{"name":"side","type":"unsigned char"},{"name":"target","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_ValidateBattleState","parameters":[{"name":"p","type":"Battle *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_HasEnded","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_HasConclusiveResult","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetWinningSide","parameters":[{"name":"p","type":"const Battle *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetSidesCount","parameters":[{"name":"p","type":"const Battle *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetSides","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleSide * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetPartiesCount","parameters":[{"name":"p","type":"const Battle *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetParties","parameters":[{"name":"p","type":"const Battle *"}],"returns":"const BattleParty * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_GetVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"Script *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_AddVolatileScriptByName","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_AddVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_RemoveVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_RemoveVolatileScriptWithScript","parameters":[{"name":"p","type":"Battle *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_HasVolatileScript","parameters":[{"name":"p","type":"Battle *"},{"name":"key","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_RegisterEventListener","parameters":[{"name":"p","type":"Battle *"},{"name":"func","type":"Function *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Battle_TriggerEventListener","parameters":[{"name":"p","type":"Battle *"},{"name":"data","type":"EventData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_Construct","parameters":[{"name":"out","type":"const BattleLibrary * &"},{"name":"staticLib","type":"const DataLibrary *"},{"name":"statCalculator","type":"BattleStatCalculator *"},{"name":"damageLibrary","type":"DamageLibrary *"},{"name":"experienceLibrary","type":"ExperienceLibrary *"},{"name":"scriptResolver","type":"ScriptResolver *"},{"name":"miscLibrary","type":"MiscLibrary *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_Destruct","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetStaticLib","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const DataLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetStatCalculator","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const BattleStatCalculator *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetDamageLibrary","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const DamageLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetMiscLibrary","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const MiscLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleLibrary_GetExperienceLibrary","parameters":[{"name":"p","type":"const BattleLibrary *"}],"returns":"const ExperienceLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_Construct","parameters":[{"name":"out","type":"BattleParty * &"},{"name":"p","type":"CreatureParty *"},{"name":"creatureIndices","type":"unsigned char *"},{"name":"numberOfIndices","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_Destruct","parameters":[{"name":"p","type":"const BattleParty *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_IsResponsibleForIndex","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"const BattleParty *"},{"name":"side","type":"unsigned char"},{"name":"creature","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleParty_HasCreaturesNotInField","parameters":[{"name":"p","type":"const BattleParty *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_Construct","parameters":[],"returns":"BattleRandom *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_ConstructWithSeed","parameters":[{"name":"seed","type":"long unsigned int"}],"returns":"BattleRandom *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_Destruct","parameters":[{"name":"p","type":"BattleRandom *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_EffectChance","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"BattleRandom *"},{"name":"chance","type":"float"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_Get","parameters":[{"name":"p","type":"BattleRandom *"}],"returns":"int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_GetMax","parameters":[{"name":"p","type":"BattleRandom *"},{"name":"max","type":"int"}],"returns":"int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_GetMinMax","parameters":[{"name":"p","type":"BattleRandom *"},{"name":"min","type":"int"},{"name":"max","type":"int"}],"returns":"int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleRandom_GetSeed","parameters":[{"name":"p","type":"BattleRandom *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_Construct","parameters":[{"name":"index","type":"unsigned char"},{"name":"battle","type":"Battle *"},{"name":"creaturesPerSide","type":"unsigned char"}],"returns":"BattleSide *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_Destruct","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_AllChoicesSet","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_AllPossibleSlotsFilled","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"BattleSide *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_SetChoice","parameters":[{"name":"p","type":"BattleSide *"},{"name":"choice","type":"BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_ResetChoices","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_SetCreature","parameters":[{"name":"p","type":"BattleSide *"},{"name":"creature","type":"Creature *"},{"name":"index","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_GetCreature","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"BattleSide *"},{"name":"index","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_GetSideIndex","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_GetCreatureIndex","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"BattleSide *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_MarkSlotAsUnfillable","parameters":[{"name":"p","type":"BattleSide *"},{"name":"c","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_IsDefeated","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_HasFled","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleSide_MarkAsFled","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_Construct","parameters":[],"returns":"const BattleStatCalculator *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_Destruct","parameters":[{"name":"p","type":"const BattleStatCalculator *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_CalculateFlatStat","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const BattleStatCalculator *"},{"name":"creature","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BattleStatCalculator_CalculateBoostedStat","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const BattleStatCalculator *"},{"name":"creature","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Construct","parameters":[{"name":"out","type":"Creature * &"},{"name":"library","type":"const BattleLibrary *"},{"name":"species","type":"const CreatureSpecies *"},{"name":"variant","type":"const SpeciesVariant *"},{"name":"level","type":"unsigned char"},{"name":"experience","type":"unsigned int"},{"name":"uid","type":"unsigned int"},{"name":"gender","type":"Gender"},{"name":"coloring","type":"unsigned char"},{"name":"heldItem","type":"const Item *"},{"name":"nickname","type":"const char *"},{"name":"secretTalent","type":"bool"},{"name":"talent","type":"unsigned char"},{"name":"attacks","type":"LearnedAttack * *"},{"name":"attacksNum","type":"long unsigned int"},{"name":"allowedExperienceGain","type":"bool"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Destruct","parameters":[{"name":"p","type":"const Creature *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetSpecies","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const CreatureSpecies *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetVariant","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const SpeciesVariant *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ChangeVariant","parameters":[{"name":"p","type":"Creature *"},{"name":"variant","type":"const SpeciesVariant *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetLevel","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetExperience","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetGender","parameters":[{"name":"p","type":"const Creature *"}],"returns":"Gender"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetColoring","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasHeldItem","parameters":[{"name":"p","type":"const Creature *"},{"name":"name","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasHeldItemWithHash","parameters":[{"name":"p","type":"const Creature *"},{"name":"hash","type":"unsigned int"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetHeldItem","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const Item *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetHeldItem","parameters":[{"name":"p","type":"Creature *"},{"name":"name","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetHeldItemWithHash","parameters":[{"name":"p","type":"Creature *"},{"name":"hash","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetHeldItemFromItem","parameters":[{"name":"p","type":"Creature *"},{"name":"item","type":"const Item *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetCurrentHealth","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBattle","parameters":[{"name":"p","type":"const Creature *"}],"returns":"Battle *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBattleSide","parameters":[{"name":"p","type":"const Creature *"}],"returns":"BattleSide *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_IsOnBattleField","parameters":[{"name":"p","type":"const Creature *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetNickname","parameters":[{"name":"p","type":"Creature *"}],"returns":"const char *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasType","parameters":[{"name":"p","type":"Creature *"},{"name":"type","type":"unsigned char"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetMaxHealth","parameters":[{"name":"p","type":"const Creature *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ChangeLevelBy","parameters":[{"name":"p","type":"Creature *"},{"name":"level","type":"signed char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Damage","parameters":[{"name":"p","type":"Creature *"},{"name":"damage","type":"unsigned int"},{"name":"source","type":"DamageSource"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_Heal","parameters":[{"name":"p","type":"Creature *"},{"name":"health","type":"unsigned int"},{"name":"canRevive","type":"bool"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_OverrideActiveTalent","parameters":[{"name":"p","type":"Creature *"},{"name":"talent","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_AddExperience","parameters":[{"name":"p","type":"Creature *"},{"name":"experience","type":"unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ClearVolatileScripts","parameters":[{"name":"p","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_AddVolatileScriptByName","parameters":[{"name":"p","type":"Creature *"},{"name":"scriptName","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_AddVolatileScript","parameters":[{"name":"p","type":"Creature *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_RemoveVolatileScriptByName","parameters":[{"name":"p","type":"Creature *"},{"name":"scriptName","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_RemoveVolatileScript","parameters":[{"name":"p","type":"Creature *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_HasVolatileScript","parameters":[{"name":"p","type":"Creature *"},{"name":"scriptName","type":"const char *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetAttacksCount","parameters":[{"name":"p","type":"Creature *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetAttacks","parameters":[{"name":"p","type":"Creature *"}],"returns":"const LearnedAttack * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetDisplaySpecies","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const CreatureSpecies *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetDisplayVariant","parameters":[{"name":"p","type":"const Creature *"}],"returns":"const SpeciesVariant *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetDisplaySpecies","parameters":[{"name":"p","type":"Creature *"},{"name":"species","type":"const CreatureSpecies *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_SetDisplayVariant","parameters":[{"name":"p","type":"Creature *"},{"name":"variant","type":"const SpeciesVariant *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_ChangeStatBoost","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"},{"name":"diffAmount","type":"signed char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetFlatStat","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBoostedStat","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetBaseStat","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetStatBoost","parameters":[{"name":"p","type":"Creature *"},{"name":"stat","type":"Statistic"}],"returns":"signed char"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_ConstructWithSize","parameters":[{"name":"size","type":"long unsigned int"}],"returns":"CreatureParty *"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_ConstructFromArray","parameters":[{"name":"creatures","type":"Creature * *"},{"name":"size","type":"long unsigned int"}],"returns":"CreatureParty *"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_Destruct","parameters":[{"name":"p","type":"const CreatureParty *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_GetAtIndex","parameters":[{"name":"out","type":"Creature * &"},{"name":"p","type":"const CreatureParty *"},{"name":"index","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_Switch","parameters":[{"name":"p","type":"CreatureParty *"},{"name":"a","type":"long unsigned int"},{"name":"b","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_HasAvailableCreatures","parameters":[{"name":"p","type":"const CreatureParty *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_GetLength","parameters":[{"name":"p","type":"const CreatureParty *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_CreatureParty_GetParty","parameters":[{"name":"p","type":"CreatureParty *"}],"returns":"const Creature * *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_Construct","parameters":[],"returns":"const DamageLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_Destruct","parameters":[{"name":"p","type":"const DamageLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetDamage","parameters":[{"name":"out","type":"unsigned int &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetBasePower","parameters":[{"name":"out","type":"unsigned char &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetStatModifier","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageLibrary_GetDamageModifier","parameters":[{"name":"out","type":"float &"},{"name":"p","type":"const DamageLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitIndex","type":"unsigned char"},{"name":"hitData","type":"HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_EventData_Destruct","parameters":[{"name":"p","type":"const EventData *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_EventData_GetKind","parameters":[{"name":"p","type":"const EventData *"}],"returns":"EventDataKind"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetCreature","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetDamageSource","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"DamageSource"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetOriginalHealth","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_DamageEvent_GetNewHealth","parameters":[{"name":"p","type":"const DamageEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_HealEvent_GetCreature","parameters":[{"name":"p","type":"const HealEvent *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_HealEvent_GetOriginalHealth","parameters":[{"name":"p","type":"const HealEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_HealEvent_GetNewHealth","parameters":[{"name":"p","type":"const HealEvent *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_FaintEvent_GetCreature","parameters":[{"name":"p","type":"const FaintEvent *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_DisplayTextEvent_GetText","parameters":[{"name":"p","type":"const DisplayTextEvent *"}],"returns":"const char *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_Construct","parameters":[{"name":"out","type":"ExecutingAttack * &"},{"name":"targets","type":"const Creature * *"},{"name":"targetCount","type":"long unsigned int"},{"name":"numberHits","type":"unsigned char"},{"name":"user","type":"Creature *"},{"name":"attack","type":"LearnedAttack *"},{"name":"script","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_Destruct","parameters":[{"name":"p","type":"ExecutingAttack *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_GetHitData","parameters":[{"name":"out","type":"HitData * &"},{"name":"p","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hit","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_IsCreatureTarget","parameters":[{"name":"p","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_GetUser","parameters":[{"name":"p","type":"ExecutingAttack *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExecutingAttack_GetAttack","parameters":[{"name":"p","type":"ExecutingAttack *"}],"returns":"LearnedAttack *"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_IsCritical","parameters":[{"name":"p","type":"const HitData *"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetBasePower","parameters":[{"name":"p","type":"const HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetEffectiveness","parameters":[{"name":"p","type":"const HitData *"}],"returns":"float"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetDamage","parameters":[{"name":"p","type":"const HitData *"}],"returns":"unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_GetType","parameters":[{"name":"p","type":"const HitData *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetCritical","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"bool"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetBasePower","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetEffectiveness","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"float"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetDamage","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"unsigned int"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_HitData_SetType","parameters":[{"name":"p","type":"HitData *"},{"name":"val","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExperienceLibrary_Construct","parameters":[],"returns":"const ExperienceLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExperienceLibrary_Destruct","parameters":[{"name":"p","type":"const ExperienceLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ExperienceLibrary_HandleExperienceGain","parameters":[{"name":"p","type":"const ExperienceLibrary *"},{"name":"faintedMon","type":"Creature *"},{"name":"opponents","type":"Creature * *"},{"name":"opponentsCount","type":"long unsigned int"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_Construct","parameters":[{"name":"out","type":"LearnedAttack * &"},{"name":"attack","type":"const AttackData *"},{"name":"maxUses","type":"unsigned char"},{"name":"learnMethod","type":"AttackLearnMethod"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_Destruct","parameters":[{"name":"p","type":"LearnedAttack *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetAttack","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"const AttackData *"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetMaxUses","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetRemainingUses","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_GetLearnMethod","parameters":[{"name":"p","type":"const LearnedAttack *"}],"returns":"AttackLearnMethod"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_TryUse","parameters":[{"name":"p","type":"LearnedAttack *"},{"name":"uses","type":"unsigned char"}],"returns":"bool"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_DecreaseUses","parameters":[{"name":"p","type":"LearnedAttack *"},{"name":"uses","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_RestoreUses","parameters":[{"name":"p","type":"LearnedAttack *"},{"name":"uses","type":"unsigned char"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_LearnedAttack_RestoreAllUses","parameters":[{"name":"p","type":"LearnedAttack *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_Construct","parameters":[],"returns":"MiscLibrary *"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_Destruct","parameters":[{"name":"p","type":"const MiscLibrary *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_IsCritical","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"MiscLibrary *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hit","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_CanFlee","parameters":[{"name":"out","type":"bool &"},{"name":"p","type":"MiscLibrary *"},{"name":"switchChoice","type":"FleeTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_MiscLibrary_ReplacementAttack","parameters":[{"name":"out","type":"BaseTurnChoice * &"},{"name":"p","type":"MiscLibrary *"},{"name":"user","type":"Creature *"},{"name":"sideTarget","type":"unsigned char"},{"name":"creatureTarget","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_Destruct","parameters":[{"name":"p","type":"Script *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_Stack","parameters":[{"name":"p","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnRemove","parameters":[{"name":"p","type":"Script *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_GetName","parameters":[{"name":"p","type":"Script *"}],"returns":"const char *"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnBeforeTurn","parameters":[{"name":"p","type":"Script *"},{"name":"choice","type":"const BaseTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ChangeAttack","parameters":[{"name":"p","type":"Script *"},{"name":"choice","type":"AttackTurnChoice *"},{"name":"outAttack","type":"StringView *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_PreventAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_FailAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_StopBeforeAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnBeforeAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_FailIncomingAttack","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_IsInvulnerable","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnAttackMiss","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ChangeAttackType","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"outType","type":"unsigned char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OverrideBasePower","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"basePower","type":"unsigned char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ChangeDamageStatsUser","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"statsUser","type":"Creature * *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_BypassDefensiveStat","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"bypass","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_BypassOffensiveStat","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"bypass","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyStatModifier","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"modifier","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyDamageModifier","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"modifier","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OverrideDamage","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"damage","type":"unsigned int *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_PreventSecondaryEffects","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnSecondaryEffect","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"hitNumber","type":"unsigned char"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_OnAfterHits","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"ExecutingAttack *"},{"name":"target","type":"Creature *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_PreventSelfSwitch","parameters":[{"name":"p","type":"Script *"},{"name":"choice","type":"const SwitchTurnChoice *"},{"name":"outResult","type":"bool *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyEffectChance","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"const ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"chance","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_Script_ModifyIncomingEffectChance","parameters":[{"name":"p","type":"Script *"},{"name":"attack","type":"const ExecutingAttack *"},{"name":"target","type":"Creature *"},{"name":"chance","type":"float *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_Construct","parameters":[],"returns":"ScriptResolver *"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_Destruct","parameters":[{"name":"p","type":"const ScriptResolver *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_Initialize","parameters":[{"name":"p","type":"ScriptResolver *"},{"name":"library","type":"BattleLibrary *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_ScriptResolver_LoadScript","parameters":[{"name":"out","type":"Script * &"},{"name":"p","type":"ScriptResolver *"},{"name":"category","type":"ScriptCategory"},{"name":"scriptName","type":"const char *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"},{"name":"attack","type":"LearnedAttack *"},{"name":"sideIndex","type":"unsigned char"},{"name":"targetIndex","type":"unsigned char"}],"returns":"AttackTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_FleeTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"}],"returns":"FleeTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_PassTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"}],"returns":"PassTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_SwitchTurnChoice_Construct","parameters":[{"name":"user","type":"Creature *"},{"name":"newCreature","type":"Creature *"}],"returns":"SwitchTurnChoice *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_Destruct","parameters":[{"name":"p","type":"const BaseTurnChoice *"}],"returns":"void"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetKind","parameters":[{"name":"p","type":"const BaseTurnChoice *"}],"returns":"TurnChoiceKind"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetUser","parameters":[{"name":"p","type":"const BaseTurnChoice *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_GetAttack","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"LearnedAttack *"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_GetKind","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"TurnChoiceKind"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetPriority","parameters":[{"name":"out","type":"signed char &"},{"name":"p","type":"AttackTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_AttackTurnChoice_GetAttackScript","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"Script *"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetTargetSideIndex","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_BaseTurnChoice_GetTargetCreatureIndex","parameters":[{"name":"p","type":"const AttackTurnChoice *"}],"returns":"unsigned char"},{"filename":"CreatureLibBattling","name":"CreatureLib_SwitchTurnChoice_GetNewCreature","parameters":[{"name":"p","type":"const SwitchTurnChoice *"}],"returns":"Creature *"},{"filename":"CreatureLibBattling","name":"CreatureLib_C_GetLastException","parameters":[],"returns":"const char *"}]} diff --git a/PkmnLibSharp/generator.py b/PkmnLibSharp/generator.py index 28bb429..3ac1747 100644 --- a/PkmnLibSharp/generator.py +++ b/PkmnLibSharp/generator.py @@ -62,6 +62,8 @@ def parse_type(type, enumSet): return "byte" if (type == "float"): return "float" + if (type == "double"): + return "double" if (type == "long unsigned int"): return "ulong" if (type == "long int"): @@ -112,23 +114,24 @@ def write_class(c, enumSet): f.write("}\n") -def parse_create(data): +def parse_create(data, filepath): enumSet = set() for enum in data["enums"]: write_enum(enum, enumSet) classDict = dict() for function in data["functions"]: parse_function(function, classDict) - print("Registered {} classes.".format(len(classDict))) + print("Registered {} classes from file {}.".format(len(classDict), filepath)) for _, v in classDict.items(): write_class(v, enumSet) def handle_file(filepath): with open(filepath) as json_file: data = json.load(json_file) - parse_create(data) + parse_create(data, filepath) def main(): + handle_file("arbutils.json") handle_file("creaturelib.json") handle_file("pkmnlib.json") diff --git a/PkmnLibSharpTests/PkmnLibSharpTests.csproj b/PkmnLibSharpTests/PkmnLibSharpTests.csproj index b0dd7e8..445a809 100644 --- a/PkmnLibSharpTests/PkmnLibSharpTests.csproj +++ b/PkmnLibSharpTests/PkmnLibSharpTests.csproj @@ -16,4 +16,8 @@ + + + +