From 6b6ba9a031b9e9ec534de3d7ce4b5c0b732b092d Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sat, 2 May 2020 22:58:08 +0200 Subject: [PATCH] Lots of work --- .../Generated/Creaturelibbattling/Battle.cs | 8 +- .../Generated/Creaturelibbattling/C.cs | 2 +- .../Generated/Creaturelibbattling/Creature.cs | 16 +-- .../Creaturelibbattling/DisplayTextEvent.cs | 2 +- .../Generated/Creaturelibbattling/Script.cs | 2 +- .../Creaturelibbattling/ScriptResolver.cs | 2 +- .../Creatureliblibrary/AttackData.cs | 10 +- .../Creatureliblibrary/AttackLibrary.cs | 8 +- .../Generated/Creatureliblibrary/C.cs | 2 +- .../Creatureliblibrary/CreatureSpecies.cs | 12 +- .../Creatureliblibrary/EffectParameter.cs | 63 +++++++++ .../Creatureliblibrary/GrowthRateLibrary.cs | 6 +- .../Generated/Creatureliblibrary/Item.cs | 6 +- .../Creatureliblibrary/ItemLibrary.cs | 8 +- .../Creatureliblibrary/SpeciesLibrary.cs | 8 +- .../Creatureliblibrary/SpeciesVariant.cs | 11 +- .../Creatureliblibrary/TypeLibrary.cs | 4 +- .../Generated/Pkmnlib/AngelScriptResolver.cs | 14 +- PkmnLibSharp/Generated/Pkmnlib/Battle.cs | 4 +- PkmnLibSharp/Generated/Pkmnlib/C.cs | 2 +- .../Generated/Pkmnlib/EvolutionData.cs | 2 +- PkmnLibSharp/Generated/Pkmnlib/Item.cs | 2 +- .../Generated/Pkmnlib/NatureLibrary.cs | 8 +- PkmnLibSharp/Generated/Pkmnlib/Pokemon.cs | 2 +- .../Generated/Pkmnlib/PokemonSpecies.cs | 2 +- .../Generated/Pkmnlib/WeatherChangeEvent.cs | 2 +- PkmnLibSharp/Library/EffectParameter.cs | 63 +++++++++ PkmnLibSharp/Library/Forme.cs | 83 ++++++++--- PkmnLibSharp/Library/LearnableMoves.cs | 29 ++++ PkmnLibSharp/Library/MoveData.cs | 58 ++++++++ PkmnLibSharp/Library/Species.cs | 8 +- PkmnLibSharp/Native/libCreatureLibBattling.so | 4 +- PkmnLibSharp/Native/libCreatureLibLibrary.so | 4 +- PkmnLibSharp/NativeException.cs | 11 ++ PkmnLibSharp/Utilities/MarshalHelper.cs | 24 ++++ PkmnLibSharp/Utilities/ResultChecker.cs | 20 +++ PkmnLibSharp/creaturelib.json | 2 +- PkmnLibSharp/generator.py | 5 +- .../Library/EffectParameterTests.cs | 60 ++++++++ PkmnLibSharpTests/{ => Library}/FormeTests.cs | 49 +++++-- PkmnLibSharpTests/Library/MoveDataTests.cs | 132 ++++++++++++++++++ 41 files changed, 649 insertions(+), 111 deletions(-) create mode 100644 PkmnLibSharp/Generated/Creatureliblibrary/EffectParameter.cs create mode 100644 PkmnLibSharp/Library/EffectParameter.cs create mode 100644 PkmnLibSharp/Library/LearnableMoves.cs create mode 100644 PkmnLibSharp/Library/MoveData.cs create mode 100644 PkmnLibSharp/NativeException.cs create mode 100644 PkmnLibSharp/Utilities/MarshalHelper.cs create mode 100644 PkmnLibSharp/Utilities/ResultChecker.cs create mode 100644 PkmnLibSharpTests/Library/EffectParameterTests.cs rename PkmnLibSharpTests/{ => Library}/FormeTests.cs (52%) create mode 100644 PkmnLibSharpTests/Library/MoveDataTests.cs diff --git a/PkmnLibSharp/Generated/Creaturelibbattling/Battle.cs b/PkmnLibSharp/Generated/Creaturelibbattling/Battle.cs index 4aaae5d..9fd16b7 100644 --- a/PkmnLibSharp/Generated/Creaturelibbattling/Battle.cs +++ b/PkmnLibSharp/Generated/Creaturelibbattling/Battle.cs @@ -132,13 +132,13 @@ namespace Creaturelibbattling.Generated /// const char * /// Script * [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Battle_GetVolatileScript")] - internal static extern IntPtr GetVolatileScript(IntPtr p, string key); + internal static extern IntPtr GetVolatileScript(IntPtr p, IntPtr key); /// Battle * /// const char * /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Battle_AddVolatileScriptByName")] - internal static extern byte AddVolatileScriptByName(IntPtr p, string key); + internal static extern byte AddVolatileScriptByName(IntPtr p, IntPtr key); /// Battle * /// Script * @@ -150,7 +150,7 @@ namespace Creaturelibbattling.Generated /// const char * /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Battle_RemoveVolatileScript")] - internal static extern byte RemoveVolatileScript(IntPtr p, string key); + internal static extern byte RemoveVolatileScript(IntPtr p, IntPtr key); /// Battle * /// Script * @@ -162,7 +162,7 @@ namespace Creaturelibbattling.Generated /// const char * /// bool [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Battle_HasVolatileScript")] - internal static extern bool HasVolatileScript(IntPtr p, string key); + internal static extern bool HasVolatileScript(IntPtr p, IntPtr key); /// Battle * /// Function * diff --git a/PkmnLibSharp/Generated/Creaturelibbattling/C.cs b/PkmnLibSharp/Generated/Creaturelibbattling/C.cs index c5995ec..14659a8 100644 --- a/PkmnLibSharp/Generated/Creaturelibbattling/C.cs +++ b/PkmnLibSharp/Generated/Creaturelibbattling/C.cs @@ -7,7 +7,7 @@ namespace Creaturelibbattling.Generated { /// const char * [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_C_GetLastException")] - internal static extern string GetLastException(); + internal static extern IntPtr GetLastException(); } } diff --git a/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs b/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs index 6377eb9..793e611 100644 --- a/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs +++ b/PkmnLibSharp/Generated/Creaturelibbattling/Creature.cs @@ -22,7 +22,7 @@ namespace Creaturelibbattling.Generated /// long unsigned int /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_Construct")] - internal static extern byte Construct(ref IntPtr @out, IntPtr library, IntPtr species, IntPtr variant, byte level, uint experience, uint uid, Gender gender, byte coloring, IntPtr heldItem, string nickname, bool secretTalent, byte talent, IntPtr attacks, ulong attacksNum); + internal static extern byte Construct(ref IntPtr @out, IntPtr library, IntPtr species, IntPtr variant, byte level, uint experience, uint uid, Gender gender, byte coloring, IntPtr heldItem, IntPtr nickname, bool secretTalent, byte talent, IntPtr attacks, ulong attacksNum); /// const Creature * /// void @@ -63,7 +63,7 @@ namespace Creaturelibbattling.Generated /// const char * /// bool [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_HasHeldItem")] - internal static extern bool HasHeldItem(IntPtr p, string name); + internal static extern bool HasHeldItem(IntPtr p, IntPtr name); /// const Creature * /// unsigned int @@ -80,7 +80,7 @@ namespace Creaturelibbattling.Generated /// const char * /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_SetHeldItem")] - internal static extern byte SetHeldItem(IntPtr p, string name); + internal static extern byte SetHeldItem(IntPtr p, IntPtr name); /// Creature * /// unsigned int @@ -117,7 +117,7 @@ namespace Creaturelibbattling.Generated /// Creature * /// const char * [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_GetNickname")] - internal static extern string GetNickname(IntPtr p); + internal static extern IntPtr GetNickname(IntPtr p); /// Creature * /// long unsigned int @@ -164,7 +164,7 @@ namespace Creaturelibbattling.Generated /// const char * /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_OverrideActiveTalent")] - internal static extern byte OverrideActiveTalent(IntPtr p, string talent); + internal static extern byte OverrideActiveTalent(IntPtr p, IntPtr talent); /// Creature * /// unsigned int @@ -181,7 +181,7 @@ namespace Creaturelibbattling.Generated /// const char * /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_AddVolatileScriptByName")] - internal static extern byte AddVolatileScriptByName(IntPtr p, string scriptName); + internal static extern byte AddVolatileScriptByName(IntPtr p, IntPtr scriptName); /// Creature * /// Script * @@ -193,7 +193,7 @@ namespace Creaturelibbattling.Generated /// const char * /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_RemoveVolatileScriptByName")] - internal static extern byte RemoveVolatileScriptByName(IntPtr p, string scriptName); + internal static extern byte RemoveVolatileScriptByName(IntPtr p, IntPtr scriptName); /// Creature * /// Script * @@ -205,7 +205,7 @@ namespace Creaturelibbattling.Generated /// const char * /// bool [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Creature_HasVolatileScript")] - internal static extern bool HasVolatileScript(IntPtr p, string scriptName); + internal static extern bool HasVolatileScript(IntPtr p, IntPtr scriptName); /// Creature * /// long unsigned int diff --git a/PkmnLibSharp/Generated/Creaturelibbattling/DisplayTextEvent.cs b/PkmnLibSharp/Generated/Creaturelibbattling/DisplayTextEvent.cs index 929692a..ceb6aca 100644 --- a/PkmnLibSharp/Generated/Creaturelibbattling/DisplayTextEvent.cs +++ b/PkmnLibSharp/Generated/Creaturelibbattling/DisplayTextEvent.cs @@ -8,7 +8,7 @@ namespace Creaturelibbattling.Generated /// const DisplayTextEvent * /// const char * [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_DisplayTextEvent_GetText")] - internal static extern string GetText(IntPtr p); + internal static extern IntPtr GetText(IntPtr p); } } diff --git a/PkmnLibSharp/Generated/Creaturelibbattling/Script.cs b/PkmnLibSharp/Generated/Creaturelibbattling/Script.cs index a5e499c..941c485 100644 --- a/PkmnLibSharp/Generated/Creaturelibbattling/Script.cs +++ b/PkmnLibSharp/Generated/Creaturelibbattling/Script.cs @@ -23,7 +23,7 @@ namespace Creaturelibbattling.Generated /// Script * /// const char * [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Script_GetName")] - internal static extern string GetName(IntPtr p); + internal static extern IntPtr GetName(IntPtr p); /// Script * /// const BaseTurnChoice * diff --git a/PkmnLibSharp/Generated/Creaturelibbattling/ScriptResolver.cs b/PkmnLibSharp/Generated/Creaturelibbattling/ScriptResolver.cs index cc75bca..30a49a3 100644 --- a/PkmnLibSharp/Generated/Creaturelibbattling/ScriptResolver.cs +++ b/PkmnLibSharp/Generated/Creaturelibbattling/ScriptResolver.cs @@ -26,7 +26,7 @@ namespace Creaturelibbattling.Generated /// const char * /// unsigned char [DllImport("CreatureLibBattling", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_ScriptResolver_LoadScript")] - internal static extern byte LoadScript(ref IntPtr @out, IntPtr p, ScriptCategory category, string scriptName); + internal static extern byte LoadScript(ref IntPtr @out, IntPtr p, ScriptCategory category, IntPtr scriptName); } } diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/AttackData.cs b/PkmnLibSharp/Generated/Creatureliblibrary/AttackData.cs index e27ad15..751be1e 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/AttackData.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/AttackData.cs @@ -22,7 +22,7 @@ namespace Creatureliblibrary.Generated /// long unsigned int /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackData_Construct")] - internal static extern byte Construct(ref IntPtr @out, string name, byte type, AttackCategory category, byte power, byte accuracy, byte baseUsage, AttackTarget target, sbyte priority, float effectChance, string effectName, IntPtr effectParameters, ulong effectParameterCount, IntPtr flags, ulong flagsCount); + internal static extern byte Construct(ref IntPtr @out, IntPtr name, byte type, AttackCategory category, byte power, byte accuracy, byte baseUsage, AttackTarget target, sbyte priority, float effectChance, IntPtr effectName, IntPtr effectParameters, ulong effectParameterCount, IntPtr flags, ulong flagsCount); /// const AttackData * /// void @@ -32,7 +32,7 @@ namespace Creatureliblibrary.Generated /// const AttackData * /// const char * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackData_GetName")] - internal static extern string GetName(IntPtr p); + internal static extern IntPtr GetName(IntPtr p); /// const AttackData * /// unsigned char @@ -62,7 +62,7 @@ namespace Creatureliblibrary.Generated /// const AttackData * /// AttackTarget [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackData_GetTarget")] - internal static extern AttackTarget GetTarget(IntPtr p); + internal static extern Pkmnlib.AttackTarget GetTarget(IntPtr p); /// const AttackData * /// signed char @@ -82,13 +82,13 @@ namespace Creatureliblibrary.Generated /// const AttackData * /// const char * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackData_GetSecondaryEffectName")] - internal static extern string GetSecondaryEffectName(IntPtr p); + internal static extern IntPtr GetSecondaryEffectName(IntPtr p); /// const AttackData * /// const char * /// bool [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackData_HasFlag")] - internal static extern bool HasFlag(IntPtr p, string key); + internal static extern bool HasFlag(IntPtr p, IntPtr key); } } diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/AttackLibrary.cs b/PkmnLibSharp/Generated/Creatureliblibrary/AttackLibrary.cs index 6328119..9076557 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/AttackLibrary.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/AttackLibrary.cs @@ -21,7 +21,7 @@ namespace Creatureliblibrary.Generated /// AttackData * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackLibrary_Insert")] - internal static extern byte Insert(IntPtr p, string name, IntPtr t); + internal static extern byte Insert(IntPtr p, IntPtr name, IntPtr t); /// AttackLibrary * /// unsigned int @@ -34,7 +34,7 @@ namespace Creatureliblibrary.Generated /// const char * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackLibrary_Delete")] - internal static extern byte Delete(IntPtr p, string name); + internal static extern byte Delete(IntPtr p, IntPtr name); /// AttackLibrary * /// unsigned int @@ -47,7 +47,7 @@ namespace Creatureliblibrary.Generated /// const AttackData *& /// bool [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackLibrary_TryGet")] - internal static extern bool TryGet(IntPtr p, string name, ref IntPtr @out); + internal static extern bool TryGet(IntPtr p, IntPtr name, ref IntPtr @out); /// AttackLibrary * /// unsigned int @@ -61,7 +61,7 @@ namespace Creatureliblibrary.Generated /// const AttackData *& /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_AttackLibrary_Get")] - internal static extern byte Get(IntPtr p, string name, ref IntPtr @out); + internal static extern byte Get(IntPtr p, IntPtr name, ref IntPtr @out); /// AttackLibrary * /// unsigned int diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/C.cs b/PkmnLibSharp/Generated/Creatureliblibrary/C.cs index 7114294..ce10217 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/C.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/C.cs @@ -7,7 +7,7 @@ namespace Creatureliblibrary.Generated { /// const char * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_C_GetLastException")] - internal static extern string GetLastException(); + internal static extern IntPtr GetLastException(); } } diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs b/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs index 6a26a94..5a6027c 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/CreatureSpecies.cs @@ -14,7 +14,7 @@ namespace Creatureliblibrary.Generated /// unsigned char /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_Construct")] - internal static extern byte Construct(ref IntPtr @out, ushort id, string name, IntPtr defaultVariant, float genderRatio, string growthRate, byte captureRate); + internal static extern byte Construct(ref IntPtr @out, ushort id, IntPtr name, IntPtr defaultVariant, float genderRatio, IntPtr growthRate, byte captureRate); /// const CreatureSpecies * /// void @@ -39,18 +39,18 @@ namespace Creatureliblibrary.Generated /// const CreatureSpecies * /// const char * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_GetName")] - internal static extern string GetName(IntPtr p); + internal static extern IntPtr GetName(IntPtr p); /// const CreatureSpecies * /// const char * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_GetGrowthRate")] - internal static extern string GetGrowthRate(IntPtr p); + internal static extern IntPtr GetGrowthRate(IntPtr p); /// const CreatureSpecies * /// const char * /// bool [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_HasVariant")] - internal static extern bool HasVariant(IntPtr p, string name); + internal static extern bool HasVariant(IntPtr p, IntPtr name); /// const CreatureSpecies * /// unsigned int @@ -63,7 +63,7 @@ namespace Creatureliblibrary.Generated /// const SpeciesVariant *& /// bool [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_TryGetVariant")] - internal static extern bool TryGetVariant(IntPtr p, string name, ref IntPtr @out); + internal static extern bool TryGetVariant(IntPtr p, IntPtr name, ref IntPtr @out); /// const CreatureSpecies * /// unsigned int @@ -77,7 +77,7 @@ namespace Creatureliblibrary.Generated /// const char * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_CreatureSpecies_GetVariant")] - internal static extern byte GetVariant(ref IntPtr @out, IntPtr p, string name); + internal static extern byte GetVariant(ref IntPtr @out, IntPtr p, IntPtr name); /// const SpeciesVariant * /// const CreatureSpecies * diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/EffectParameter.cs b/PkmnLibSharp/Generated/Creatureliblibrary/EffectParameter.cs new file mode 100644 index 0000000..6253f1a --- /dev/null +++ b/PkmnLibSharp/Generated/Creatureliblibrary/EffectParameter.cs @@ -0,0 +1,63 @@ +using System; +using System.Runtime.InteropServices; + +namespace Creatureliblibrary.Generated +{ + internal static class EffectParameter + { + /// bool + /// EffectParameter * + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_FromBool")] + internal static extern IntPtr FromBool(bool b); + + /// long int + /// EffectParameter * + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_FromInt")] + internal static extern IntPtr FromInt(long i); + + /// float + /// EffectParameter * + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_FromFloat")] + internal static extern IntPtr FromFloat(float f); + + /// const char * + /// EffectParameter * + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_FromString")] + internal static extern IntPtr FromString(IntPtr c); + + /// const EffectParameter * + /// void + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_Destruct")] + internal static extern void Destruct(IntPtr p); + + /// const EffectParameter * + /// EffectParameterType + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_GetType")] + internal static extern EffectParameterType GetType(IntPtr p); + + /// const EffectParameter * + /// bool& + /// unsigned char + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_AsBool")] + internal static extern byte AsBool(IntPtr p, ref bool @out); + + /// const EffectParameter * + /// long int& + /// unsigned char + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_AsInt")] + internal static extern byte AsInt(IntPtr p, ref long @out); + + /// const EffectParameter * + /// float& + /// unsigned char + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_AsFloat")] + internal static extern byte AsFloat(IntPtr p, ref float @out); + + /// const EffectParameter * + /// const char *& + /// unsigned char + [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_EffectParameter_AsString")] + internal static extern byte AsString(IntPtr p, ref IntPtr @out); + + } +} diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/GrowthRateLibrary.cs b/PkmnLibSharp/Generated/Creatureliblibrary/GrowthRateLibrary.cs index 8f0a845..904b2a0 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/GrowthRateLibrary.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/GrowthRateLibrary.cs @@ -21,7 +21,7 @@ namespace Creatureliblibrary.Generated /// unsigned int /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_GrowthRateLibrary_CalculateLevel")] - internal static extern byte CalculateLevel(ref byte @out, IntPtr library, string growthRate, uint experience); + internal static extern byte CalculateLevel(ref byte @out, IntPtr library, IntPtr growthRate, uint experience); /// unsigned char& /// GrowthRateLibrary * @@ -37,7 +37,7 @@ namespace Creatureliblibrary.Generated /// unsigned char /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_GrowthRateLibrary_CalculateExperience")] - internal static extern byte CalculateExperience(ref uint @out, IntPtr library, string growthRate, byte level); + internal static extern byte CalculateExperience(ref uint @out, IntPtr library, IntPtr growthRate, byte level); /// unsigned int& /// GrowthRateLibrary * @@ -52,7 +52,7 @@ namespace Creatureliblibrary.Generated /// GrowthRate * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_GrowthRateLibrary_AddGrowthRate")] - internal static extern byte AddGrowthRate(IntPtr library, string growthRateName, IntPtr growthRate); + internal static extern byte AddGrowthRate(IntPtr library, IntPtr growthRateName, IntPtr growthRate); /// GrowthRateLibrary * /// unsigned int diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/Item.cs b/PkmnLibSharp/Generated/Creatureliblibrary/Item.cs index 848f752..49b34f8 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/Item.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/Item.cs @@ -13,7 +13,7 @@ namespace Creatureliblibrary.Generated /// long unsigned int /// Item * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Item_Construct")] - internal static extern IntPtr Construct(string name, ItemCategory category, BattleItemCategory battleCategory, int price, IntPtr flags, ulong flagsCount); + internal static extern IntPtr Construct(IntPtr name, ItemCategory category, BattleItemCategory battleCategory, int price, IntPtr flags, ulong flagsCount); /// const Item * /// void @@ -23,7 +23,7 @@ namespace Creatureliblibrary.Generated /// const Item * /// const char * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Item_GetName")] - internal static extern string GetName(IntPtr p); + internal static extern IntPtr GetName(IntPtr p); /// const Item * /// ItemCategory @@ -44,7 +44,7 @@ namespace Creatureliblibrary.Generated /// const char * /// bool [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_Item_HasFlag")] - internal static extern bool HasFlag(IntPtr p, string key); + internal static extern bool HasFlag(IntPtr p, IntPtr key); } } diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/ItemLibrary.cs b/PkmnLibSharp/Generated/Creatureliblibrary/ItemLibrary.cs index df047a1..4dee5c7 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/ItemLibrary.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/ItemLibrary.cs @@ -20,7 +20,7 @@ namespace Creatureliblibrary.Generated /// Item * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_ItemLibrary_Insert")] - internal static extern byte Insert(IntPtr p, string name, IntPtr t); + internal static extern byte Insert(IntPtr p, IntPtr name, IntPtr t); /// ItemLibrary * /// unsigned int @@ -33,7 +33,7 @@ namespace Creatureliblibrary.Generated /// const char * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_ItemLibrary_Delete")] - internal static extern byte Delete(IntPtr p, string name); + internal static extern byte Delete(IntPtr p, IntPtr name); /// ItemLibrary * /// unsigned int @@ -46,7 +46,7 @@ namespace Creatureliblibrary.Generated /// const Item *& /// bool [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_ItemLibrary_TryGet")] - internal static extern bool TryGet(IntPtr p, string name, ref IntPtr @out); + internal static extern bool TryGet(IntPtr p, IntPtr name, ref IntPtr @out); /// ItemLibrary * /// unsigned int @@ -60,7 +60,7 @@ namespace Creatureliblibrary.Generated /// const Item *& /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_ItemLibrary_Get")] - internal static extern byte Get(IntPtr p, string name, ref IntPtr @out); + internal static extern byte Get(IntPtr p, IntPtr name, ref IntPtr @out); /// ItemLibrary * /// unsigned int diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesLibrary.cs b/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesLibrary.cs index 1374da9..b9c4ef5 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesLibrary.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesLibrary.cs @@ -20,7 +20,7 @@ namespace Creatureliblibrary.Generated /// CreatureSpecies * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesLibrary_Insert")] - internal static extern byte Insert(IntPtr p, string name, IntPtr t); + internal static extern byte Insert(IntPtr p, IntPtr name, IntPtr t); /// SpeciesLibrary * /// unsigned int @@ -33,7 +33,7 @@ namespace Creatureliblibrary.Generated /// const char * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesLibrary_Delete")] - internal static extern byte Delete(IntPtr p, string name); + internal static extern byte Delete(IntPtr p, IntPtr name); /// SpeciesLibrary * /// unsigned int @@ -46,7 +46,7 @@ namespace Creatureliblibrary.Generated /// const CreatureSpecies *& /// bool [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesLibrary_TryGet")] - internal static extern bool TryGet(IntPtr p, string name, ref IntPtr @out); + internal static extern bool TryGet(IntPtr p, IntPtr name, ref IntPtr @out); /// SpeciesLibrary * /// unsigned int @@ -60,7 +60,7 @@ namespace Creatureliblibrary.Generated /// const CreatureSpecies *& /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesLibrary_Get")] - internal static extern byte Get(IntPtr p, string name, ref IntPtr @out); + internal static extern byte Get(IntPtr p, IntPtr name, ref IntPtr @out); /// SpeciesLibrary * /// unsigned int diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs b/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs index 1852f2a..f0fd76d 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/SpeciesVariant.cs @@ -24,7 +24,7 @@ namespace Creatureliblibrary.Generated /// const LearnableAttacks * /// SpeciesVariant * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesVariant_Construct")] - internal static extern IntPtr Construct(string name, float height, float weight, uint baseExperience, IntPtr types, ulong typeLength, ushort baseHealth, ushort baseAttack, ushort baseDefense, ushort baseMagicalAttack, ushort baseMagicalDefense, ushort baseSpeed, IntPtr talents, ulong talentsLength, IntPtr secretTalents, ulong secretTalentsLength, IntPtr attacks); + internal static extern IntPtr Construct(IntPtr name, float height, float weight, uint baseExperience, IntPtr types, ulong typeLength, ushort baseHealth, ushort baseAttack, ushort baseDefense, ushort baseMagicalAttack, ushort baseMagicalDefense, ushort baseSpeed, IntPtr talents, ulong talentsLength, IntPtr secretTalents, ulong secretTalentsLength, IntPtr attacks); /// SpeciesVariant * /// void @@ -34,7 +34,7 @@ namespace Creatureliblibrary.Generated /// SpeciesVariant * /// const char * [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesVariant_GetName")] - internal static extern string GetName(IntPtr p); + internal static extern IntPtr GetName(IntPtr p); /// const SpeciesVariant * /// float @@ -64,9 +64,9 @@ namespace Creatureliblibrary.Generated /// SpeciesVariant * /// Statistic - /// unsigned int + /// unsigned short [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesVariant_GetStatistic")] - internal static extern uint GetStatistic(IntPtr p, Statistic stat); + internal static extern ushort GetStatistic(IntPtr p, Statistic stat); /// const SpeciesVariant * /// long unsigned int @@ -81,9 +81,10 @@ namespace Creatureliblibrary.Generated /// SpeciesVariant * /// bool /// unsigned char + /// const char *& /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_SpeciesVariant_GetTalent")] - internal static extern byte GetTalent(IntPtr p, bool secret, byte index); + internal static extern byte GetTalent(IntPtr p, bool secret, byte index, ref IntPtr @out); /// SpeciesVariant * /// const LearnableAttacks * diff --git a/PkmnLibSharp/Generated/Creatureliblibrary/TypeLibrary.cs b/PkmnLibSharp/Generated/Creatureliblibrary/TypeLibrary.cs index e00de29..eff870b 100644 --- a/PkmnLibSharp/Generated/Creatureliblibrary/TypeLibrary.cs +++ b/PkmnLibSharp/Generated/Creatureliblibrary/TypeLibrary.cs @@ -20,7 +20,7 @@ namespace Creatureliblibrary.Generated /// const char * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TypeLibrary_GetTypeId")] - internal static extern byte GetTypeId(ref byte @out, IntPtr p, string type); + internal static extern byte GetTypeId(ref byte @out, IntPtr p, IntPtr type); /// unsigned char& /// const TypeLibrary * @@ -34,7 +34,7 @@ namespace Creatureliblibrary.Generated /// const char * /// unsigned char [DllImport("CreatureLibLibrary", CallingConvention = CallingConvention.Cdecl, EntryPoint= "CreatureLib_TypeLibrary_RegisterType")] - internal static extern byte RegisterType(ref byte @out, IntPtr p, string type); + internal static extern byte RegisterType(ref byte @out, IntPtr p, IntPtr type); /// unsigned char& /// TypeLibrary * diff --git a/PkmnLibSharp/Generated/Pkmnlib/AngelScriptResolver.cs b/PkmnLibSharp/Generated/Pkmnlib/AngelScriptResolver.cs index ba3f333..f07b66a 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/AngelScriptResolver.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/AngelScriptResolver.cs @@ -25,7 +25,7 @@ namespace Pkmnlib.Generated /// const char * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_AngelScriptResolver_CreateScript")] - internal static extern byte CreateScript(IntPtr p, string name, string script); + internal static extern byte CreateScript(IntPtr p, IntPtr name, IntPtr script); /// AngelScriptResolver * /// unsigned char @@ -38,20 +38,20 @@ namespace Pkmnlib.Generated /// const char * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_AngelScriptResolver_LoadScript")] - internal static extern byte LoadScript(ref IntPtr @out, IntPtr p, ScriptCategory category, string scriptName); + internal static extern byte LoadScript(ref IntPtr @out, IntPtr p, ScriptCategory category, IntPtr scriptName); /// AngelScriptResolver * /// const char * /// bool /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_AngelScriptResolver_WriteByteCodeToFile")] - internal static extern byte WriteByteCodeToFile(IntPtr p, string file, bool stripDebugInfo); + internal static extern byte WriteByteCodeToFile(IntPtr p, IntPtr file, bool stripDebugInfo); /// AngelScriptResolver * /// const char * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_AngelScriptResolver_LoadByteCodeFromFile")] - internal static extern byte LoadByteCodeFromFile(IntPtr p, string file); + internal static extern byte LoadByteCodeFromFile(IntPtr p, IntPtr file); /// AngelScriptResolver * /// bool @@ -72,7 +72,7 @@ namespace Pkmnlib.Generated /// const char * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_AngelScriptResolver_RegisterType")] - internal static extern byte RegisterType(IntPtr p, string typeName); + internal static extern byte RegisterType(IntPtr p, IntPtr typeName); /// AngelScriptResolver * /// const char * @@ -80,14 +80,14 @@ namespace Pkmnlib.Generated /// Function * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_AngelScriptResolver_RegisterTypeMethod")] - internal static extern byte RegisterTypeMethod(IntPtr p, string typeName, string decl, IntPtr func); + internal static extern byte RegisterTypeMethod(IntPtr p, IntPtr typeName, IntPtr decl, IntPtr func); /// AngelScriptResolver * /// const char * /// Function * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_AngelScriptResolver_RegisterGlobalMethod")] - internal static extern byte RegisterGlobalMethod(IntPtr p, string decl, IntPtr func); + internal static extern byte RegisterGlobalMethod(IntPtr p, IntPtr decl, IntPtr func); } } diff --git a/PkmnLibSharp/Generated/Pkmnlib/Battle.cs b/PkmnLibSharp/Generated/Pkmnlib/Battle.cs index 44fff72..5cd9861 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/Battle.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/Battle.cs @@ -25,7 +25,7 @@ namespace Pkmnlib.Generated /// const char * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Battle_SetWeather")] - internal static extern byte SetWeather(IntPtr p, string name); + internal static extern byte SetWeather(IntPtr p, IntPtr name); /// Battle * /// unsigned char @@ -35,7 +35,7 @@ namespace Pkmnlib.Generated /// Battle * /// const char * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Battle_GetWeatherName")] - internal static extern string GetWeatherName(IntPtr p); + internal static extern IntPtr GetWeatherName(IntPtr p); } } diff --git a/PkmnLibSharp/Generated/Pkmnlib/C.cs b/PkmnLibSharp/Generated/Pkmnlib/C.cs index 63583e9..0e442c9 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/C.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/C.cs @@ -7,7 +7,7 @@ namespace Pkmnlib.Generated { /// const char * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_C_GetLastException")] - internal static extern string GetLastException(); + internal static extern IntPtr GetLastException(); } } diff --git a/PkmnLibSharp/Generated/Pkmnlib/EvolutionData.cs b/PkmnLibSharp/Generated/Pkmnlib/EvolutionData.cs index 4d10e3a..c66958c 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/EvolutionData.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/EvolutionData.cs @@ -27,7 +27,7 @@ namespace Pkmnlib.Generated /// const PokemonSpecies * /// const EvolutionData * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_EvolutionData_CreateLocationEvolution")] - internal static extern IntPtr CreateLocationEvolution(string location, IntPtr into); + internal static extern IntPtr CreateLocationEvolution(IntPtr location, IntPtr into); } } diff --git a/PkmnLibSharp/Generated/Pkmnlib/Item.cs b/PkmnLibSharp/Generated/Pkmnlib/Item.cs index 53ce143..ef27fe2 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/Item.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/Item.cs @@ -14,7 +14,7 @@ namespace Pkmnlib.Generated /// unsigned char /// Item * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Item_Construct")] - internal static extern IntPtr Construct(string name, ItemCategory category, BattleItemCategory battleCategory, int price, IntPtr flags, ulong flagsCount, byte flingPower); + internal static extern IntPtr Construct(IntPtr name, ItemCategory category, BattleItemCategory battleCategory, int price, IntPtr flags, ulong flagsCount, byte flingPower); /// const Item * /// void diff --git a/PkmnLibSharp/Generated/Pkmnlib/NatureLibrary.cs b/PkmnLibSharp/Generated/Pkmnlib/NatureLibrary.cs index 57f6233..b10bebe 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/NatureLibrary.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/NatureLibrary.cs @@ -20,27 +20,27 @@ namespace Pkmnlib.Generated /// const Nature * /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_NatureLibrary_LoadNature")] - internal static extern byte LoadNature(IntPtr p, string name, IntPtr nature); + internal static extern byte LoadNature(IntPtr p, IntPtr name, IntPtr nature); /// NatureLibrary * /// const char * /// const Nature *& /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_NatureLibrary_GetNatureByName")] - internal static extern byte GetNatureByName(IntPtr p, string name, ref IntPtr @out); + internal static extern byte GetNatureByName(IntPtr p, IntPtr name, ref IntPtr @out); /// NatureLibrary * /// Random * /// const char * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_NatureLibrary_GetRandomNatureName")] - internal static extern string GetRandomNatureName(IntPtr p, IntPtr rand); + internal static extern IntPtr GetRandomNatureName(IntPtr p, IntPtr rand); /// NatureLibrary * /// const Nature * /// const char *& /// unsigned char [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_NatureLibrary_GetNatureName")] - internal static extern byte GetNatureName(IntPtr p, IntPtr nature, ref string @out); + internal static extern byte GetNatureName(IntPtr p, IntPtr nature, ref IntPtr @out); } } diff --git a/PkmnLibSharp/Generated/Pkmnlib/Pokemon.cs b/PkmnLibSharp/Generated/Pkmnlib/Pokemon.cs index 6c8ab49..aa5fb91 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/Pokemon.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/Pokemon.cs @@ -34,7 +34,7 @@ namespace Pkmnlib.Generated /// const Nature * /// Pokemon * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_Pokemon_Construct")] - internal static extern IntPtr Construct(IntPtr library, IntPtr species, IntPtr forme, byte level, uint experience, uint uid, Gender gender, byte coloring, IntPtr heldItem, string nickname, bool hiddenAbility, byte abilityIndex, IntPtr moves, ulong moveCount, byte hpIv, byte attIv, byte defIv, byte sAtIv, byte sDeIv, byte spIv, byte hpEv, byte attEv, byte defEv, byte sAtEv, byte sDeEv, byte spEv, IntPtr nature); + internal static extern IntPtr Construct(IntPtr library, IntPtr species, IntPtr forme, byte level, uint experience, uint uid, Gender gender, byte coloring, IntPtr heldItem, IntPtr nickname, bool hiddenAbility, byte abilityIndex, IntPtr moves, ulong moveCount, byte hpIv, byte attIv, byte defIv, byte sAtIv, byte sDeIv, byte spIv, byte hpEv, byte attEv, byte defEv, byte sAtEv, byte sDeEv, byte spEv, IntPtr nature); /// const Pokemon * /// void diff --git a/PkmnLibSharp/Generated/Pkmnlib/PokemonSpecies.cs b/PkmnLibSharp/Generated/Pkmnlib/PokemonSpecies.cs index 7657640..5202666 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/PokemonSpecies.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/PokemonSpecies.cs @@ -14,7 +14,7 @@ namespace Pkmnlib.Generated /// unsigned char /// const PokemonSpecies * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_PokemonSpecies_Construct")] - internal static extern IntPtr Construct(ushort id, string name, IntPtr defaultForme, float genderRatio, string growthRate, byte captureRate, byte baseHappiness); + internal static extern IntPtr Construct(ushort id, IntPtr name, IntPtr defaultForme, float genderRatio, IntPtr growthRate, byte captureRate, byte baseHappiness); /// const PokemonSpecies * /// void diff --git a/PkmnLibSharp/Generated/Pkmnlib/WeatherChangeEvent.cs b/PkmnLibSharp/Generated/Pkmnlib/WeatherChangeEvent.cs index fb36f84..859fe86 100644 --- a/PkmnLibSharp/Generated/Pkmnlib/WeatherChangeEvent.cs +++ b/PkmnLibSharp/Generated/Pkmnlib/WeatherChangeEvent.cs @@ -13,7 +13,7 @@ namespace Pkmnlib.Generated /// WeatherChangeEvent * /// const char * [DllImport("pkmnLib", CallingConvention = CallingConvention.Cdecl, EntryPoint= "PkmnLib_WeatherChangeEvent_GetWeatherName")] - internal static extern string GetWeatherName(IntPtr p); + internal static extern IntPtr GetWeatherName(IntPtr p); } } diff --git a/PkmnLibSharp/Library/EffectParameter.cs b/PkmnLibSharp/Library/EffectParameter.cs new file mode 100644 index 0000000..1351dc9 --- /dev/null +++ b/PkmnLibSharp/Library/EffectParameter.cs @@ -0,0 +1,63 @@ +using System; +using Pkmnlib; +using PkmnLibSharp.Utilities; + +namespace PkmnLibSharp.Library +{ + public class EffectParameter : PointerWrapper + { + public EffectParameter(string s) : base(Creatureliblibrary.Generated.EffectParameter.FromString(s.ToPtr())) + { + } + + public EffectParameter(bool b) : base(Creatureliblibrary.Generated.EffectParameter.FromBool(b)) + { + } + + public EffectParameter(long l) : base(Creatureliblibrary.Generated.EffectParameter.FromInt(l)) + { + } + + public EffectParameter(float f) : base(Creatureliblibrary.Generated.EffectParameter.FromFloat(f)) + { + } + + public EffectParameterType ParameterType => + (EffectParameterType) Creatureliblibrary.Generated.EffectParameter.GetType(Ptr); + + public bool AsBool() + { + bool b = false; + Creatureliblibrary.Generated.EffectParameter.AsBool(Ptr, ref b).Assert(); + return b; + } + + public long AsInt() + { + long i = 0; + Creatureliblibrary.Generated.EffectParameter.AsInt(Ptr, ref i).Assert(); + return i; + } + + public float AsFloat() + { + float f = 0; + Creatureliblibrary.Generated.EffectParameter.AsFloat(Ptr, ref f).Assert(); + return f; + } + + public string AsString() + { + IntPtr p = IntPtr.Zero; + Creatureliblibrary.Generated.EffectParameter.AsString(Ptr, ref p).Assert(); + return p.PtrString(); + } + + + + internal override void DeletePtr() + { + Creatureliblibrary.Generated.EffectParameter.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Library/Forme.cs b/PkmnLibSharp/Library/Forme.cs index ee76c43..f9d2f6a 100644 --- a/PkmnLibSharp/Library/Forme.cs +++ b/PkmnLibSharp/Library/Forme.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Runtime.InteropServices; using Creatureliblibrary; using Creatureliblibrary.Generated; +using PkmnLibSharp.Utilities; namespace PkmnLibSharp.Library { @@ -11,8 +12,11 @@ namespace PkmnLibSharp.Library { private string _name; private ImmutableArray _types; + private ImmutableArray _abilities; + private ImmutableArray _hiddenAbilities; + private LearnableMoves _moves; - public string Name => _name ??= SpeciesVariant.GetName(Ptr); + public string Name => _name ??= SpeciesVariant.GetName(Ptr).PtrString(); public float Height => SpeciesVariant.GetHeight(Ptr); public float Weight => SpeciesVariant.GetWeight(Ptr); public float BaseExperience => SpeciesVariant.GetBaseExperience(Ptr); @@ -43,6 +47,48 @@ namespace PkmnLibSharp.Library public uint BaseSpecialDefense => SpeciesVariant.GetStatistic(Ptr, Statistic.MagicalDefense); public uint BaseSpeed => SpeciesVariant.GetStatistic(Ptr, Statistic.Speed); + public ImmutableArray Abilities + { + get + { + if (_abilities != null) + return _abilities; + + var abilityCount = SpeciesVariant.GetTalentCount(Ptr); + var abilities = new string[abilityCount]; + for (byte i = 0; i < abilityCount; i++) + { + IntPtr s = IntPtr.Zero; + SpeciesVariant.GetTalent(Ptr, false, i, ref s).Assert(); + abilities[i] = s.PtrString(); + } + + _abilities = abilities.ToImmutableArray(); + return _abilities; + } + } + + public ImmutableArray HiddenAbilities + { + get + { + if (_hiddenAbilities != null) + return _hiddenAbilities; + + var abilityCount = SpeciesVariant.GetSecretTalentCount(Ptr); + var abilities = new string[abilityCount]; + for (byte i = 0; i < abilityCount; i++) + { + IntPtr s = IntPtr.Zero; + SpeciesVariant.GetTalent(Ptr, true, i, ref s).Assert(); + abilities[i] = s.PtrString(); + } + + _hiddenAbilities = abilities.ToImmutableArray(); + return _hiddenAbilities; + } + } + public int GetPkmnType(int index) { @@ -52,28 +98,25 @@ namespace PkmnLibSharp.Library public static unsafe 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) + ushort baseSpecialDefense, ushort baseSpeed, string[] abilities, string[] hiddenAbilities, + LearnableMoves moves) { - var abilitiesConverted = abilities.Select(Marshal.StringToHGlobalUni).ToArray(); - var hiddenAbilitiesConverted = hiddenAbilities.Select(Marshal.StringToHGlobalUni).ToArray(); - fixed (byte* t = types) + var abilitiesConverted = abilities.Select(x => x.ToPtr()).ToArray(); + var hiddenAbilitiesConverted = hiddenAbilities.Select(x => x.ToPtr()).ToArray(); + fixed (IntPtr* ab = abilitiesConverted) { - fixed (IntPtr* ab = abilitiesConverted) + fixed (IntPtr* hab = hiddenAbilitiesConverted) { - fixed (IntPtr* hab = hiddenAbilitiesConverted) - { - var ptr = SpeciesVariant.Construct(name, height, weight, baseExperience, (IntPtr) t, - (ulong) types.Length, - baseHealth, baseAttack, baseDefense, baseSpecialAttack, baseSpecialDefense, - baseSpeed, (IntPtr) ab, (ulong) abilities.Length, (IntPtr) hab, - (ulong) hiddenAbilities.Length, IntPtr.Zero); - var f = new Forme(ptr); - foreach (var intPtr in abilitiesConverted) - Marshal.FreeHGlobal(intPtr); - foreach (var intPtr in hiddenAbilitiesConverted) - Marshal.FreeHGlobal(intPtr); - return f; - } + 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; } } } diff --git a/PkmnLibSharp/Library/LearnableMoves.cs b/PkmnLibSharp/Library/LearnableMoves.cs new file mode 100644 index 0000000..cc12de3 --- /dev/null +++ b/PkmnLibSharp/Library/LearnableMoves.cs @@ -0,0 +1,29 @@ +using System; +using Creatureliblibrary.Generated; + +namespace PkmnLibSharp.Library +{ + public class LearnableMoves : PointerWrapper + { + private LearnableMoves(IntPtr ptr) : base(ptr) + { + } + + public static LearnableMoves Create(byte maxLevel) + { + var ptr = IntPtr.Zero; + LearnableAttacks.Construct(ref ptr, maxLevel); + return new LearnableMoves(ptr); + } + + public void AddLevelAttack(byte level, MoveData move) + { + LearnableAttacks.AddLevelAttack(Ptr, level, move.Ptr); + } + + internal override void DeletePtr() + { + LearnableAttacks.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Library/MoveData.cs b/PkmnLibSharp/Library/MoveData.cs new file mode 100644 index 0000000..714b2f3 --- /dev/null +++ b/PkmnLibSharp/Library/MoveData.cs @@ -0,0 +1,58 @@ +using System; +using System.Linq; +using System.Runtime.InteropServices; +using Creatureliblibrary.Generated; +using Pkmnlib; +using PkmnLibSharp.Utilities; +using AttackCategory = Creatureliblibrary.AttackCategory; + +namespace PkmnLibSharp.Library +{ + public class MoveData : PointerWrapper + { + private string _name; + private string _secondaryEffectName; + + public string Name => _name ??= AttackData.GetName(Ptr).PtrString(); + public byte Type => AttackData.GetType(Ptr); + public MoveCategory Category => (MoveCategory) AttackData.GetCategory(Ptr); + public byte BasePower => AttackData.GetBasePower(Ptr); + public byte Accuracy => AttackData.GetAccuracy(Ptr); + public byte BaseUsages => AttackData.GetBaseUsages(Ptr); + public AttackTarget Target => AttackData.GetTarget(Ptr); + public sbyte Priority => AttackData.GetPriority(Ptr); + public bool HasSecondaryEffect => AttackData.HasSecondaryEffect(Ptr); + public float SecondaryEffectChance => AttackData.GetSecondaryEffectChance(Ptr); + + public string SecondaryEffectName => + _secondaryEffectName ??= AttackData.GetSecondaryEffectName(Ptr).PtrString(); + + public bool HasFlag(string s) + { + return AttackData.HasFlag(Ptr, s.ToPtr()); + } + + public static MoveData Create(string name, byte type, MoveCategory category, byte power, byte accuracy, + byte baseUsage, AttackTarget target, sbyte priority, float effectChance, string effectName, + EffectParameter[] parameters, string[] flags) + { + var ptr = IntPtr.Zero; + var pars = parameters.Select(x => x.Ptr).ToArray().ArrayPtr(); + 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, + (ulong) parameters.Length, f, (ulong) flags.Length).Assert(); + return new MoveData(ptr); + } + + private MoveData(IntPtr ptr) : base(ptr) + { + } + + internal override void DeletePtr() + { + AttackData.Destruct(Ptr); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Library/Species.cs b/PkmnLibSharp/Library/Species.cs index 13e2b63..9a8a3d3 100644 --- a/PkmnLibSharp/Library/Species.cs +++ b/PkmnLibSharp/Library/Species.cs @@ -1,13 +1,17 @@ using System; +using System.Runtime.InteropServices; using Pkmnlib.Generated; +using PkmnLibSharp.Utilities; namespace PkmnLibSharp.Library { public class Species : PointerWrapper { // ReSharper disable once SuggestBaseTypeForParameter - public Species(ushort id, string name, Forme defaultForme, float genderRatio, string growthRate, byte captureRate, - byte baseHappiness) : base(PokemonSpecies.Construct(id, name, defaultForme.Ptr, genderRatio, growthRate, captureRate, baseHappiness)) + public Species(ushort id, string name, Forme defaultForme, float genderRatio, string growthRate, + byte captureRate, + byte baseHappiness) : base(PokemonSpecies.Construct(id, name.ToPtr(), defaultForme.Ptr, genderRatio, + growthRate.ToPtr(), captureRate, baseHappiness)) { } diff --git a/PkmnLibSharp/Native/libCreatureLibBattling.so b/PkmnLibSharp/Native/libCreatureLibBattling.so index 98ba4f1..9965e9e 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:875522256ec09a85120bed293eb5ea6874a8537f91e16808b22b993fd3c1ded7 -size 272584 +oid sha256:6d32c4ddac6860f8b32776683978e2dc429118d8c74a1c7c3510a060ecd98dd2 +size 3958360 diff --git a/PkmnLibSharp/Native/libCreatureLibLibrary.so b/PkmnLibSharp/Native/libCreatureLibLibrary.so index 88f0353..ba93f2a 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:3e8d82d722fb51d870c4d9da1b435424b2d8aa646f946490dd45ab9cfbddbcef -size 178304 +oid sha256:75c70ade47106387c8f534f1ca065544a223ea289eda752910810d66a77a4e80 +size 3313760 diff --git a/PkmnLibSharp/NativeException.cs b/PkmnLibSharp/NativeException.cs new file mode 100644 index 0000000..b8336ed --- /dev/null +++ b/PkmnLibSharp/NativeException.cs @@ -0,0 +1,11 @@ +using System; + +namespace PkmnLibSharp +{ + public class NativeException : Exception + { + public NativeException(string library, string message) : base($"[{library}] - '{message}'") + { + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Utilities/MarshalHelper.cs b/PkmnLibSharp/Utilities/MarshalHelper.cs new file mode 100644 index 0000000..f65a9c6 --- /dev/null +++ b/PkmnLibSharp/Utilities/MarshalHelper.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections; +using System.Runtime.InteropServices; + +namespace PkmnLibSharp.Utilities +{ + internal static class MarshalHelper + { + internal static IntPtr ToPtr(this string s) + { + return Marshal.StringToHGlobalAuto(s); + } + + internal static string PtrString(this IntPtr i) + { + return Marshal.PtrToStringAuto(i); + } + + internal static IntPtr ArrayPtr(this Array a) + { + return Marshal.UnsafeAddrOfPinnedArrayElement(a, 0); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/Utilities/ResultChecker.cs b/PkmnLibSharp/Utilities/ResultChecker.cs new file mode 100644 index 0000000..e966c62 --- /dev/null +++ b/PkmnLibSharp/Utilities/ResultChecker.cs @@ -0,0 +1,20 @@ +using System; + +namespace PkmnLibSharp.Utilities +{ + internal static class ResultChecker + { + internal static void Assert(this byte result) + { + if (result == 0) return; + if (result == 1) + { + throw new NativeException("CreatureLib", Creatureliblibrary.Generated.C.GetLastException().PtrString()); + } + if (result == 2) + { + throw new NativeException("PkmnLib", Pkmnlib.Generated.C.GetLastException().PtrString()); + } + } + } +} \ No newline at end of file diff --git a/PkmnLibSharp/creaturelib.json b/PkmnLibSharp/creaturelib.json index bb88883..fd00777 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":4,"filename":"CreatureLibLibrary","name":"memory_order","values":{"0":"memory_order_relaxed","1":"memory_order_consume","2":"memory_order_acquire","3":"memory_order_release","4":"memory_order_acq_rel","5":"memory_order_seq_cst"}},{"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":4,"filename":"CreatureLibBattling","name":"memory_order","values":{"0":"memory_order_relaxed","1":"memory_order_consume","2":"memory_order_acquire","3":"memory_order_release","4":"memory_order_acq_rel","5":"memory_order_seq_cst"}},{"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_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_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_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 int"},{"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"}],"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":"const 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_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_GetChoices","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"const BaseTurnChoice * *"},{"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"}],"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_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_GetTypesCount","parameters":[{"name":"p","type":"Creature *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetTypes","parameters":[{"name":"p","type":"Creature *"}],"returns":"const unsigned 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":"float"},{"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":"float"},{"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":"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":"CaseInsensitiveConstString *"}],"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":4,"filename":"CreatureLibLibrary","name":"memory_order","values":{"0":"memory_order_relaxed","1":"memory_order_consume","2":"memory_order_acquire","3":"memory_order_release","4":"memory_order_acq_rel","5":"memory_order_seq_cst"}},{"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":4,"filename":"CreatureLibBattling","name":"memory_order","values":{"0":"memory_order_relaxed","1":"memory_order_consume","2":"memory_order_acquire","3":"memory_order_release","4":"memory_order_acq_rel","5":"memory_order_seq_cst"}},{"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_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_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":"const 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_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_GetChoices","parameters":[{"name":"p","type":"BattleSide *"}],"returns":"const BaseTurnChoice * *"},{"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"}],"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_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_GetTypesCount","parameters":[{"name":"p","type":"Creature *"}],"returns":"long unsigned int"},{"filename":"CreatureLibBattling","name":"CreatureLib_Creature_GetTypes","parameters":[{"name":"p","type":"Creature *"}],"returns":"const unsigned 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":"float"},{"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":"float"},{"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":"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":"CaseInsensitiveConstString *"}],"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 752d0da..e9cff34 100644 --- a/PkmnLibSharp/generator.py +++ b/PkmnLibSharp/generator.py @@ -62,13 +62,12 @@ def parse_type(type, enumSet): return "float" if (type == "long unsigned int"): return "ulong" + if (type == "long int"): + return "long" if (type == "unsigned int"): return "uint" if (type == "int"): return "int" - if (type == "const char *"): - return "string" - if (type.endswith("*")): return "IntPtr" if (type.endswith("&")): diff --git a/PkmnLibSharpTests/Library/EffectParameterTests.cs b/PkmnLibSharpTests/Library/EffectParameterTests.cs new file mode 100644 index 0000000..887072a --- /dev/null +++ b/PkmnLibSharpTests/Library/EffectParameterTests.cs @@ -0,0 +1,60 @@ +using System; +using NUnit.Framework; +using Pkmnlib; +using PkmnLibSharp; +using PkmnLibSharp.Library; + +namespace PkmnLibSharpTests.Library +{ + public class EffectParameterTests + { + [Test] + public void CreateInt([Range(-10000000, 10000000, 1000000)] long value) + { + var p = new EffectParameter(value); + Assert.AreEqual(EffectParameterType.Int, p.ParameterType); + Assert.AreEqual(value, p.AsInt()); + p.Dispose(); + } + + [Test] + public void CreateBool() + { + var p = new EffectParameter(true); + Assert.AreEqual(EffectParameterType.Bool, p.ParameterType); + Assert.AreEqual(true, p.AsBool()); + p.Dispose(); + p = new EffectParameter(false); + Assert.AreEqual(EffectParameterType.Bool, p.ParameterType); + Assert.AreEqual(false, p.AsBool()); + p.Dispose(); + } + + [Test] + public void CreateFloat([Range(-5, 5, 0.25f)] float value) + { + var p = new EffectParameter(value); + Assert.AreEqual(EffectParameterType.Float, p.ParameterType); + Assert.AreEqual(value, p.AsFloat()); + p.Dispose(); + } + + [Test] + public void CreateString() + { + var p = new EffectParameter("foobar"); + Assert.AreEqual(EffectParameterType.String, p.ParameterType); + Assert.AreEqual("foobar", p.AsString()); + p.Dispose(); + } + + [Test] + public void ThrowOnWrongType() + { + var p = new EffectParameter(10); + var ex = Assert.Throws(() => { p.AsString(); }); + Assert.AreEqual("[CreatureLib] - 'Cast effect parameter to string, but was Int'", ex.Message); + p.Dispose(); + } + } +} \ No newline at end of file diff --git a/PkmnLibSharpTests/FormeTests.cs b/PkmnLibSharpTests/Library/FormeTests.cs similarity index 52% rename from PkmnLibSharpTests/FormeTests.cs rename to PkmnLibSharpTests/Library/FormeTests.cs index 4b982ff..7171e02 100644 --- a/PkmnLibSharpTests/FormeTests.cs +++ b/PkmnLibSharpTests/Library/FormeTests.cs @@ -1,8 +1,7 @@ using NUnit.Framework; using PkmnLibSharp.Library; - -namespace PkmnLibSharpTests +namespace PkmnLibSharpTests.Library { public class FormeTests { @@ -10,7 +9,7 @@ namespace PkmnLibSharpTests public void ConstructDestruct() { var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, - new[] {"bar"}); + new[] {"bar"}, LearnableMoves.Create(100)); forme.Dispose(); } @@ -18,7 +17,7 @@ namespace PkmnLibSharpTests public void GetName() { var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, - new[] {"bar"}); + new[] {"bar"}, LearnableMoves.Create(100)); Assert.AreEqual("foo", forme.Name); forme.Dispose(); } @@ -27,7 +26,7 @@ namespace PkmnLibSharpTests public void GetHeight() { var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, - new[] {"bar"}); + new[] {"bar"}, LearnableMoves.Create(100)); Assert.AreEqual(1f, forme.Height); forme.Dispose(); } @@ -36,7 +35,7 @@ namespace PkmnLibSharpTests public void GetWeight() { var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, - new[] {"bar"}); + new[] {"bar"}, LearnableMoves.Create(100)); Assert.AreEqual(2f, forme.Weight); forme.Dispose(); } @@ -45,7 +44,7 @@ namespace PkmnLibSharpTests public void GetBaseExperience() { var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, - new[] {"bar"}); + new[] {"bar"}, LearnableMoves.Create(100)); Assert.AreEqual(100, forme.BaseExperience); forme.Dispose(); } @@ -54,16 +53,48 @@ namespace PkmnLibSharpTests public void GetTypes() { var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, - new[] {"bar"}); + new[] {"bar"}, LearnableMoves.Create(100)); Assert.AreEqual(0, forme.GetPkmnType(0)); forme.Dispose(); forme = Forme.Create("foo", 1, 2, 100, new byte[] {0, 1}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, - new[] {"bar"}); + new[] {"bar"}, LearnableMoves.Create(100)); Assert.AreEqual(0, forme.GetPkmnType(0)); Assert.AreEqual(1, forme.GetPkmnType(1)); forme.Dispose(); } + [Test] + public void GetStats() + { + var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 20, 30, 40, 50, 60, new[] {"foo"}, + new[] {"bar"}, LearnableMoves.Create(100)); + Assert.AreEqual(10, forme.BaseHealth); + Assert.AreEqual(20, forme.BaseAttack); + Assert.AreEqual(30, forme.BaseDefense); + Assert.AreEqual(40, forme.BaseSpecialAttack); + Assert.AreEqual(50, forme.BaseSpecialDefense); + Assert.AreEqual(60, forme.BaseSpeed); + forme.Dispose(); + } + + [Test] + public void GetAbilities() + { + var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, + new[] {"bar"}, LearnableMoves.Create(100)); + Assert.AreEqual("foo", forme.Abilities[0]); + forme.Dispose(); + } + + [Test] + public void GetHiddenAbilities() + { + var forme = Forme.Create("foo", 1, 2, 100, new byte[] {0}, 10, 10, 10, 10, 10, 10, new[] {"foo"}, + new[] {"bar"}, LearnableMoves.Create(100)); + Assert.AreEqual("bar", forme.HiddenAbilities[0]); + forme.Dispose(); + } + } } \ No newline at end of file diff --git a/PkmnLibSharpTests/Library/MoveDataTests.cs b/PkmnLibSharpTests/Library/MoveDataTests.cs new file mode 100644 index 0000000..423a318 --- /dev/null +++ b/PkmnLibSharpTests/Library/MoveDataTests.cs @@ -0,0 +1,132 @@ +using NUnit.Framework; +using Pkmnlib; +using PkmnLibSharp.Library; + +namespace PkmnLibSharpTests.Library +{ + public class MoveDataTests + { + [Test] + public void ConstructDestruct() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + move.Dispose(); + } + + [Test] + public void GetName() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual("foobar", move.Name); + move.Dispose(); + } + + [Test] + public void GetType() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(0, move.Type); + move.Dispose(); + } + + [Test] + public void GetCategory() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(MoveCategory.Physical, move.Category); + move.Dispose(); + } + + [Test] + public void GetBasePower() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(60, move.BasePower); + move.Dispose(); + } + + [Test] + public void GetAccuracy() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(100, move.Accuracy); + move.Dispose(); + } + + [Test] + public void GetBaseUsages() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(20, move.BaseUsages); + move.Dispose(); + } + + [Test] + public void GetTarget() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(AttackTarget.Adjacent, move.Target); + move.Dispose(); + } + + [Test] + public void GetPriority() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(1, move.Priority); + move.Dispose(); + } + + [Test] + public void GetEffectChance() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0.5f, "", new EffectParameter[0], new string[0]); + Assert.AreEqual(0.5f, move.SecondaryEffectChance); + move.Dispose(); + } + + [Test] + public void GetEffectChanceName() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0.5f, "test", new EffectParameter[0], new string[0]); + Assert.AreEqual("test", move.SecondaryEffectName); + move.Dispose(); + } + + [Test] + public void HasSecondaryEffect() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0.5f, "test", new EffectParameter[0], new string[0]); + Assert.True(move.HasSecondaryEffect); + move.Dispose(); + move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0.5f, "", new EffectParameter[0], new string[0]); + Assert.False(move.HasSecondaryEffect); + move.Dispose(); + } + + + [Test] + public void HasFlag() + { + var move = MoveData.Create("foobar", 0, MoveCategory.Physical, 60, 100, 20, AttackTarget.Adjacent, 1, + 0.5f, "test", new EffectParameter[0], new []{"flag1"}); + Assert.True(move.HasFlag("flag1")); + Assert.False(move.HasFlag("flag2")); + move.Dispose(); + } + + } +} \ No newline at end of file