This commit is contained in:
@@ -2,11 +2,11 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export u8 CreatureLib_AttackData_Construct(AttackData*& out, const char* name, u8 type, AttackCategory category,
|
||||
u8 power, u8 accuracy, u8 baseUsage, AttackTarget target, i8 priority,
|
||||
float effectChance, const char* effectName,
|
||||
EffectParameter* effectParameters[], size_t effectParameterCount,
|
||||
const char* flags[], size_t flagsCount) {
|
||||
export_func u8 CreatureLib_AttackData_Construct(AttackData*& out, const char* name, u8 type, AttackCategory category,
|
||||
u8 power, u8 accuracy, u8 baseUsage, AttackTarget target, i8 priority,
|
||||
float effectChance, const char* effectName,
|
||||
EffectParameter* effectParameters[], size_t effectParameterCount,
|
||||
const char* flags[], size_t flagsCount) {
|
||||
Try({
|
||||
std::unordered_set<u32> conversedFlags(flagsCount);
|
||||
for (size_t i = 0; i < flagsCount; i++) {
|
||||
@@ -24,9 +24,9 @@ export u8 CreatureLib_AttackData_Construct(AttackData*& out, const char* name, u
|
||||
})
|
||||
};
|
||||
|
||||
export void CreatureLib_AttackData_Destruct(const AttackData* p) { delete p; }
|
||||
export_func void CreatureLib_AttackData_Destruct(const AttackData* p) { delete p; }
|
||||
|
||||
export const char* CreatureLib_AttackData_GetName(const AttackData* p) { return p->GetName().c_str(); }
|
||||
export_func const char* CreatureLib_AttackData_GetName(const AttackData* p) { return p->GetName().c_str(); }
|
||||
SIMPLE_GET_FUNC(AttackData, GetType, u8);
|
||||
SIMPLE_GET_FUNC(AttackData, GetCategory, AttackCategory);
|
||||
SIMPLE_GET_FUNC(AttackData, GetBasePower, u8);
|
||||
@@ -35,16 +35,16 @@ SIMPLE_GET_FUNC(AttackData, GetBaseUsages, u8);
|
||||
SIMPLE_GET_FUNC(AttackData, GetTarget, AttackTarget);
|
||||
SIMPLE_GET_FUNC(AttackData, GetPriority, i8);
|
||||
|
||||
export bool CreatureLib_AttackData_HasSecondaryEffect(const AttackData* p) { return p->HasSecondaryEffect(); }
|
||||
export_func bool CreatureLib_AttackData_HasSecondaryEffect(const AttackData* p) { return p->HasSecondaryEffect(); }
|
||||
|
||||
export float CreatureLib_AttackData_GetSecondaryEffectChance(const AttackData* p) {
|
||||
export_func float CreatureLib_AttackData_GetSecondaryEffectChance(const AttackData* p) {
|
||||
return p->GetSecondaryEffect()->GetChance();
|
||||
}
|
||||
|
||||
export const char* CreatureLib_AttackData_GetSecondaryEffectName(const AttackData* p) {
|
||||
export_func const char* CreatureLib_AttackData_GetSecondaryEffectName(const AttackData* p) {
|
||||
return p->GetSecondaryEffect()->GetEffectName().c_str();
|
||||
}
|
||||
|
||||
export bool CreatureLib_AttackData_HasFlag(const AttackData* p, const char* key) {
|
||||
export_func bool CreatureLib_AttackData_HasFlag(const AttackData* p, const char* key) {
|
||||
return p->HasFlag(ArbUt::StringView::CalculateHash(key));
|
||||
}
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export u8 CreatureLib_AttackLibrary_Construct(AttackLibrary*& library, size_t initialCapacity = 32) {
|
||||
export_func u8 CreatureLib_AttackLibrary_Construct(AttackLibrary*& library, size_t initialCapacity = 32) {
|
||||
Try(library = new AttackLibrary(initialCapacity);)
|
||||
};
|
||||
|
||||
export void CreatureLib_AttackLibrary_Destruct(const AttackLibrary* p) { delete p; }
|
||||
export_func void CreatureLib_AttackLibrary_Destruct(const AttackLibrary* p) { delete p; }
|
||||
|
||||
BASELIBRARY(CreatureLib_AttackLibrary, AttackLibrary, AttackData);
|
||||
@@ -1,19 +1,21 @@
|
||||
#include "../Core.hpp"
|
||||
|
||||
#define BASELIBRARY(simpleName, fullname, returnType) \
|
||||
export u8 simpleName##_Insert(fullname* p, const char* name, returnType* t) { \
|
||||
export_func u8 simpleName##_Insert(fullname* p, const char* name, returnType* t) { \
|
||||
Try(p->Insert(ArbUt::StringView::CalculateHash(name), t);) \
|
||||
} \
|
||||
\
|
||||
export u8 simpleName##_InsertWithHash(fullname* p, u32 hashedKey, returnType* t) { Try(p->Insert(hashedKey, t);) } \
|
||||
export_func u8 simpleName##_InsertWithHash(fullname* p, u32 hashedKey, returnType* t) { \
|
||||
Try(p->Insert(hashedKey, t);) \
|
||||
} \
|
||||
\
|
||||
export u8 simpleName##_Delete(fullname* p, const char* name) { \
|
||||
export_func u8 simpleName##_Delete(fullname* p, const char* name) { \
|
||||
Try(p->Delete(ArbUt::StringView::CalculateHash(name));) \
|
||||
} \
|
||||
\
|
||||
export u8 simpleName##_DeleteWithHash(fullname* p, u32 hashedKey) { Try(p->Delete(hashedKey);) } \
|
||||
export_func u8 simpleName##_DeleteWithHash(fullname* p, u32 hashedKey) { Try(p->Delete(hashedKey);) } \
|
||||
\
|
||||
export bool simpleName##_TryGet(fullname* p, const char* name, const returnType*& out) { \
|
||||
export_func bool simpleName##_TryGet(fullname* p, const char* name, const returnType*& out) { \
|
||||
ArbUt::BorrowedPtr<const returnType> o; \
|
||||
auto v = p->TryGet(ArbUt::StringView::CalculateHash(name)); \
|
||||
if (!v.has_value()) { \
|
||||
@@ -25,7 +27,7 @@
|
||||
} \
|
||||
} \
|
||||
\
|
||||
export bool simpleName##_TryGetWithHash(fullname* p, u32 hashedKey, const returnType*& out) { \
|
||||
export_func bool simpleName##_TryGetWithHash(fullname* p, u32 hashedKey, const returnType*& out) { \
|
||||
ArbUt::BorrowedPtr<const returnType> o; \
|
||||
auto v = p->TryGet(hashedKey); \
|
||||
if (!v.has_value()) { \
|
||||
@@ -37,15 +39,15 @@
|
||||
} \
|
||||
} \
|
||||
\
|
||||
export u8 simpleName##_Get(fullname* p, const char* name, const returnType*& out) { \
|
||||
export_func u8 simpleName##_Get(fullname* p, const char* name, const returnType*& out) { \
|
||||
Try(out = p->Get(ArbUt::StringView::CalculateHash(name)).GetRaw();) \
|
||||
} \
|
||||
\
|
||||
export u8 simpleName##_GetWithHash(fullname* p, u32 hashedKey, const returnType*& out) { \
|
||||
export_func u8 simpleName##_GetWithHash(fullname* p, u32 hashedKey, const returnType*& out) { \
|
||||
Try(out = p->Get(hashedKey).GetRaw();) \
|
||||
} \
|
||||
\
|
||||
export size_t simpleName##_GetCount(fullname* p) { return p->GetCount(); } \
|
||||
export u8 simpleName##_GetAtIndex(fullname* p, size_t index, const returnType*& out) { \
|
||||
export_func size_t simpleName##_GetCount(fullname* p) { return p->GetCount(); } \
|
||||
export_func u8 simpleName##_GetAtIndex(fullname* p, size_t index, const returnType*& out) { \
|
||||
Try(out = p->GetAtIndex(index).GetRaw();) \
|
||||
}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export u8 CreatureLib_CreatureSpecies_Construct(CreatureSpecies*& out, u16 id, const char* name,
|
||||
SpeciesVariant* defaultVariant, float genderRatio,
|
||||
const char* growthRate, u8 captureRate, const char* flags[],
|
||||
size_t flagsCount) {
|
||||
export_func u8 CreatureLib_CreatureSpecies_Construct(CreatureSpecies*& out, u16 id, const char* name,
|
||||
SpeciesVariant* defaultVariant, float genderRatio,
|
||||
const char* growthRate, u8 captureRate, const char* flags[],
|
||||
size_t flagsCount) {
|
||||
|
||||
Try(std::unordered_set<u32> conversedFlags(flagsCount);
|
||||
for (size_t i = 0; i < flagsCount; i++) { conversedFlags.insert(ArbUt::StringView::CalculateHash(flags[i])); }
|
||||
@@ -14,31 +14,31 @@ export u8 CreatureLib_CreatureSpecies_Construct(CreatureSpecies*& out, u16 id, c
|
||||
ArbUt::StringView(growthRate), captureRate, conversedFlags);)
|
||||
}
|
||||
|
||||
export void CreatureLib_CreatureSpecies_Destruct(const CreatureSpecies* p) { delete p; }
|
||||
export_func void CreatureLib_CreatureSpecies_Destruct(const CreatureSpecies* p) { delete p; }
|
||||
|
||||
SIMPLE_GET_FUNC(CreatureSpecies, GetId, u16);
|
||||
SIMPLE_GET_FUNC(CreatureSpecies, GetGenderRate, float);
|
||||
SIMPLE_GET_FUNC(CreatureSpecies, GetCaptureRate, u8);
|
||||
export const char* CreatureLib_CreatureSpecies_GetName(const CreatureSpecies* p) { return p->GetName().c_str(); }
|
||||
export const char* CreatureLib_CreatureSpecies_GetGrowthRate(const CreatureSpecies* p) {
|
||||
export_func const char* CreatureLib_CreatureSpecies_GetName(const CreatureSpecies* p) { return p->GetName().c_str(); }
|
||||
export_func const char* CreatureLib_CreatureSpecies_GetGrowthRate(const CreatureSpecies* p) {
|
||||
return p->GetGrowthRate().c_str();
|
||||
}
|
||||
export bool CreatureLib_CreatureSpecies_HasVariant(const CreatureSpecies* p, const char* name) {
|
||||
export_func bool CreatureLib_CreatureSpecies_HasVariant(const CreatureSpecies* p, const char* name) {
|
||||
return p->HasVariant(ArbUt::StringView::CalculateHash(name));
|
||||
}
|
||||
export bool CreatureLib_CreatureSpecies_HasVariantWithHash(const CreatureSpecies* p, u32 hash) {
|
||||
export_func bool CreatureLib_CreatureSpecies_HasVariantWithHash(const CreatureSpecies* p, u32 hash) {
|
||||
return p->HasVariant(hash);
|
||||
}
|
||||
export bool CreatureLib_CreatureSpecies_TryGetVariant(const CreatureSpecies* p, const char* name,
|
||||
const SpeciesVariant*& out) {
|
||||
export_func bool CreatureLib_CreatureSpecies_TryGetVariant(const CreatureSpecies* p, const char* name,
|
||||
const SpeciesVariant*& out) {
|
||||
auto res = p->TryGetVariant(ArbUt::StringView::CalculateHash(name));
|
||||
if (!res.has_value())
|
||||
return false;
|
||||
out = res.value();
|
||||
return true;
|
||||
}
|
||||
export bool CreatureLib_CreatureSpecies_TryGetVariantWithHash(const CreatureSpecies* p, u32 hash,
|
||||
const SpeciesVariant*& out) {
|
||||
export_func bool CreatureLib_CreatureSpecies_TryGetVariantWithHash(const CreatureSpecies* p, u32 hash,
|
||||
const SpeciesVariant*& out) {
|
||||
auto res = p->TryGetVariant(hash);
|
||||
if (!res.has_value())
|
||||
return false;
|
||||
@@ -46,28 +46,28 @@ export bool CreatureLib_CreatureSpecies_TryGetVariantWithHash(const CreatureSpec
|
||||
return true;
|
||||
}
|
||||
|
||||
export u8 CreatureLib_CreatureSpecies_GetVariant(const SpeciesVariant*& out, const CreatureSpecies* p,
|
||||
const char* name) {
|
||||
export_func u8 CreatureLib_CreatureSpecies_GetVariant(const SpeciesVariant*& out, const CreatureSpecies* p,
|
||||
const char* name) {
|
||||
Try(out = p->GetVariant(ArbUt::StringView::CalculateHash(name)).GetRaw();)
|
||||
}
|
||||
export u8 CreatureLib_CreatureSpecies_GetVariantWithHash(const SpeciesVariant*& out, const CreatureSpecies* p,
|
||||
u32 hash) {
|
||||
export_func u8 CreatureLib_CreatureSpecies_GetVariantWithHash(const SpeciesVariant*& out, const CreatureSpecies* p,
|
||||
u32 hash) {
|
||||
Try(out = p->GetVariant(hash).GetRaw();)
|
||||
}
|
||||
export u8 CreatureLib_CreatureSpecies_SetVariant(CreatureSpecies* p, const char* name, SpeciesVariant* variant) {
|
||||
export_func u8 CreatureLib_CreatureSpecies_SetVariant(CreatureSpecies* p, const char* name, SpeciesVariant* variant) {
|
||||
Try(p->SetVariant(ArbUt::StringView(name), variant);)
|
||||
}
|
||||
|
||||
export Gender CreatureLib_CreatureSpecies_GetRandomGender(CreatureSpecies* p, ArbUt::Random* random) {
|
||||
export_func Gender CreatureLib_CreatureSpecies_GetRandomGender(CreatureSpecies* p, ArbUt::Random* random) {
|
||||
return p->GetRandomGender(*random);
|
||||
}
|
||||
|
||||
export size_t CreatureLib_CreatureSpecies_GetVariantsCount(CreatureSpecies* p) {
|
||||
export_func size_t CreatureLib_CreatureSpecies_GetVariantsCount(CreatureSpecies* p) {
|
||||
return p->GetVariantsIterator().Count();
|
||||
}
|
||||
export const SpeciesVariant* const* CreatureLib_CreatureSpecies_GetVariants(CreatureSpecies* p) {
|
||||
export_func const SpeciesVariant* const* CreatureLib_CreatureSpecies_GetVariants(CreatureSpecies* p) {
|
||||
return reinterpret_cast<const SpeciesVariant* const*>(p->GetVariantsIterator().RawData());
|
||||
}
|
||||
export bool CreatureLib_CreatureSpecies_HasFlag(const CreatureSpecies* p, const char* key) {
|
||||
export_func bool CreatureLib_CreatureSpecies_HasFlag(const CreatureSpecies* p, const char* key) {
|
||||
return p->HasFlag(ArbUt::StringView::CalculateHash(key));
|
||||
}
|
||||
@@ -2,13 +2,14 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export u8 CreatureLib_DataLibrary_Construct(const DataLibrary*& out, LibrarySettings* settings, SpeciesLibrary* species,
|
||||
AttackLibrary* attacks, ItemLibrary* items, GrowthRateLibrary* growthRates,
|
||||
TypeLibrary* typeLibrary, TalentLibrary* talentLibrary) {
|
||||
export_func u8 CreatureLib_DataLibrary_Construct(const DataLibrary*& out, LibrarySettings* settings,
|
||||
SpeciesLibrary* species, AttackLibrary* attacks, ItemLibrary* items,
|
||||
GrowthRateLibrary* growthRates, TypeLibrary* typeLibrary,
|
||||
TalentLibrary* talentLibrary) {
|
||||
Try(out = new DataLibrary(settings, species, attacks, items, growthRates, typeLibrary, talentLibrary);)
|
||||
}
|
||||
|
||||
export void CreatureLib_DataLibrary_Destruct(const DataLibrary* p) { delete p; }
|
||||
export_func void CreatureLib_DataLibrary_Destruct(const DataLibrary* p) { delete p; }
|
||||
|
||||
SMART_GET_FUNC(DataLibrary, GetSettings, const LibrarySettings*);
|
||||
SMART_GET_FUNC(DataLibrary, GetSpeciesLibrary, const SpeciesLibrary*);
|
||||
|
||||
@@ -2,18 +2,18 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export EffectParameter* CreatureLib_EffectParameter_FromBool(bool b) { return new EffectParameter(b); }
|
||||
export EffectParameter* CreatureLib_EffectParameter_FromInt(i64 i) { return new EffectParameter(i); }
|
||||
export EffectParameter* CreatureLib_EffectParameter_FromFloat(float f) { return new EffectParameter(f); }
|
||||
export EffectParameter* CreatureLib_EffectParameter_FromString(const char* c) {
|
||||
export_func EffectParameter* CreatureLib_EffectParameter_FromBool(bool b) { return new EffectParameter(b); }
|
||||
export_func EffectParameter* CreatureLib_EffectParameter_FromInt(i64 i) { return new EffectParameter(i); }
|
||||
export_func EffectParameter* CreatureLib_EffectParameter_FromFloat(float f) { return new EffectParameter(f); }
|
||||
export_func EffectParameter* CreatureLib_EffectParameter_FromString(const char* c) {
|
||||
return new EffectParameter(ArbUt::StringView(c));
|
||||
}
|
||||
|
||||
export void CreatureLib_EffectParameter_Destruct(const EffectParameter* p) { delete p; }
|
||||
export EffectParameterType CreatureLib_EffectParameter_GetType(const EffectParameter* p) { return p->GetType(); }
|
||||
export u8 CreatureLib_EffectParameter_AsBool(const EffectParameter* p, bool& out) { Try(out = p->AsBool();) }
|
||||
export u8 CreatureLib_EffectParameter_AsInt(const EffectParameter* p, i64& out) { Try(out = p->AsInt();) }
|
||||
export u8 CreatureLib_EffectParameter_AsFloat(const EffectParameter* p, float& out) { Try(out = p->AsFloat();) }
|
||||
export u8 CreatureLib_EffectParameter_AsString(const EffectParameter* p, const char*& out) {
|
||||
export_func void CreatureLib_EffectParameter_Destruct(const EffectParameter* p) { delete p; }
|
||||
export_func EffectParameterType CreatureLib_EffectParameter_GetType(const EffectParameter* p) { return p->GetType(); }
|
||||
export_func u8 CreatureLib_EffectParameter_AsBool(const EffectParameter* p, bool& out) { Try(out = p->AsBool();) }
|
||||
export_func u8 CreatureLib_EffectParameter_AsInt(const EffectParameter* p, i64& out) { Try(out = p->AsInt();) }
|
||||
export_func u8 CreatureLib_EffectParameter_AsFloat(const EffectParameter* p, float& out) { Try(out = p->AsFloat();) }
|
||||
export_func u8 CreatureLib_EffectParameter_AsString(const EffectParameter* p, const char*& out) {
|
||||
Try(out = p->AsString().c_str();)
|
||||
}
|
||||
|
||||
@@ -4,24 +4,24 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export GrowthRate* CreatureLib_LookupGrowthRate_Construct(u32 experiencePerLevel[], size_t count) {
|
||||
export_func GrowthRate* CreatureLib_LookupGrowthRate_Construct(u32 experiencePerLevel[], size_t count) {
|
||||
ArbUt::List<u32> exp(experiencePerLevel, experiencePerLevel + count);
|
||||
return new LookupGrowthRate(exp);
|
||||
};
|
||||
|
||||
export u8 CreatureLib_ExternGrowthRate_Construct(GrowthRate*& out, level_int_t (*calcLevel)(u32),
|
||||
u32 (*calcExperience)(level_int_t)) {
|
||||
export_func u8 CreatureLib_ExternGrowthRate_Construct(GrowthRate*& out, level_int_t (*calcLevel)(u32),
|
||||
u32 (*calcExperience)(level_int_t)) {
|
||||
Try(out = new ExternGrowthRate(calcLevel, calcExperience);)
|
||||
};
|
||||
|
||||
export void CreatureLib_GrowthRate_Destruct(const GrowthRate* p) { delete p; }
|
||||
export void CreatureLib_LookupGrowthRate_Destruct(const LookupGrowthRate* p) { delete p; }
|
||||
export void CreatureLib_ExternGrowthRate_Destruct(const ExternGrowthRate* p) { delete p; }
|
||||
export_func void CreatureLib_GrowthRate_Destruct(const GrowthRate* p) { delete p; }
|
||||
export_func void CreatureLib_LookupGrowthRate_Destruct(const LookupGrowthRate* p) { delete p; }
|
||||
export_func void CreatureLib_ExternGrowthRate_Destruct(const ExternGrowthRate* p) { delete p; }
|
||||
|
||||
export u8 CreatureLib_GrowthRate_CalculateLevel(level_int_t& out, const GrowthRate* p, u32 experience) {
|
||||
export_func u8 CreatureLib_GrowthRate_CalculateLevel(level_int_t& out, const GrowthRate* p, u32 experience) {
|
||||
Try(out = p->CalculateLevel(experience);)
|
||||
}
|
||||
|
||||
export u8 CreatureLib_GrowthRate_CalculateExperience(u32& out, const GrowthRate* p, level_int_t level) {
|
||||
export_func u8 CreatureLib_GrowthRate_CalculateExperience(u32& out, const GrowthRate* p, level_int_t level) {
|
||||
Try(out = p->CalculateExperience(level);)
|
||||
}
|
||||
@@ -2,36 +2,36 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export GrowthRateLibrary* CreatureLib_GrowthRateLibrary_Construct(size_t initialCapacity) {
|
||||
export_func GrowthRateLibrary* CreatureLib_GrowthRateLibrary_Construct(size_t initialCapacity) {
|
||||
return new GrowthRateLibrary(initialCapacity);
|
||||
}
|
||||
|
||||
export void CreatureLib_GrowthRateLibrary_Destruct(GrowthRateLibrary* p) { delete p; }
|
||||
export_func void CreatureLib_GrowthRateLibrary_Destruct(GrowthRateLibrary* p) { delete p; }
|
||||
|
||||
export u8 CreatureLib_GrowthRateLibrary_CalculateLevel(level_int_t& out, GrowthRateLibrary* library,
|
||||
const char* growthRate, u32 experience) {
|
||||
export_func u8 CreatureLib_GrowthRateLibrary_CalculateLevel(level_int_t& out, GrowthRateLibrary* library,
|
||||
const char* growthRate, u32 experience) {
|
||||
Try(out = library->CalculateLevel(ArbUt::StringView::CalculateHash(growthRate), experience);)
|
||||
}
|
||||
export u8 CreatureLib_GrowthRateLibrary_CalculateLevelWithHash(level_int_t& out, GrowthRateLibrary* library,
|
||||
u32 growthRateHash, u32 experience) {
|
||||
export_func u8 CreatureLib_GrowthRateLibrary_CalculateLevelWithHash(level_int_t& out, GrowthRateLibrary* library,
|
||||
u32 growthRateHash, u32 experience) {
|
||||
Try(out = library->CalculateLevel(growthRateHash, experience);)
|
||||
}
|
||||
|
||||
export u8 CreatureLib_GrowthRateLibrary_CalculateExperience(u32& out, GrowthRateLibrary* library,
|
||||
const char* growthRate, level_int_t level) {
|
||||
export_func u8 CreatureLib_GrowthRateLibrary_CalculateExperience(u32& out, GrowthRateLibrary* library,
|
||||
const char* growthRate, level_int_t level) {
|
||||
Try(out = library->CalculateExperience(ArbUt::StringView::CalculateHash(growthRate), level);)
|
||||
}
|
||||
|
||||
export u8 CreatureLib_GrowthRateLibrary_CalculateExperienceWithHash(u32& out, GrowthRateLibrary* library,
|
||||
u32 growthRateHash, level_int_t level) {
|
||||
export_func u8 CreatureLib_GrowthRateLibrary_CalculateExperienceWithHash(u32& out, GrowthRateLibrary* library,
|
||||
u32 growthRateHash, level_int_t level) {
|
||||
Try(out = library->CalculateExperience(growthRateHash, level);)
|
||||
}
|
||||
export u8 CreatureLib_GrowthRateLibrary_AddGrowthRate(GrowthRateLibrary* library, const char* growthRateName,
|
||||
GrowthRate* growthRate) {
|
||||
export_func u8 CreatureLib_GrowthRateLibrary_AddGrowthRate(GrowthRateLibrary* library, const char* growthRateName,
|
||||
GrowthRate* growthRate) {
|
||||
Try(library->AddGrowthRate(ArbUt::StringView::CalculateHash(growthRateName), growthRate);)
|
||||
}
|
||||
|
||||
export u8 CreatureLib_GrowthRateLibrary_AddGrowthRateWithHash(GrowthRateLibrary* library, u32 growthRateHash,
|
||||
GrowthRate* growthRate) {
|
||||
export_func u8 CreatureLib_GrowthRateLibrary_AddGrowthRateWithHash(GrowthRateLibrary* library, u32 growthRateHash,
|
||||
GrowthRate* growthRate) {
|
||||
Try(library->AddGrowthRate(growthRateHash, growthRate);)
|
||||
}
|
||||
|
||||
@@ -2,12 +2,12 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export Item* CreatureLib_Item_Construct(const char* name, ItemCategory category, BattleItemCategory battleCategory,
|
||||
i32 price, const char* effectName, EffectParameter* effectParameters[],
|
||||
size_t effectParameterCount, const char* battleTriggerEffectName,
|
||||
EffectParameter* battleTriggerEffectParameters[],
|
||||
size_t battleTriggerEffectParameterCount, const char* flags[],
|
||||
size_t flagsCount) {
|
||||
export_func Item* CreatureLib_Item_Construct(const char* name, ItemCategory category, BattleItemCategory battleCategory,
|
||||
i32 price, const char* effectName, EffectParameter* effectParameters[],
|
||||
size_t effectParameterCount, const char* battleTriggerEffectName,
|
||||
EffectParameter* battleTriggerEffectParameters[],
|
||||
size_t battleTriggerEffectParameterCount, const char* flags[],
|
||||
size_t flagsCount) {
|
||||
std::unordered_set<u32> conversedFlags(flagsCount);
|
||||
for (size_t i = 0; i < flagsCount; i++) {
|
||||
conversedFlags.insert(ArbUt::StringView::CalculateHash(flags[i]));
|
||||
@@ -24,13 +24,13 @@ export Item* CreatureLib_Item_Construct(const char* name, ItemCategory category,
|
||||
conversedFlags);
|
||||
};
|
||||
|
||||
export void CreatureLib_Item_Destruct(const Item* p) { delete p; }
|
||||
export_func void CreatureLib_Item_Destruct(const Item* p) { delete p; }
|
||||
|
||||
export const char* CreatureLib_Item_GetName(const Item* p) { return p->GetName().c_str(); }
|
||||
export_func const char* CreatureLib_Item_GetName(const Item* p) { return p->GetName().c_str(); }
|
||||
SIMPLE_GET_FUNC(Item, GetCategory, ItemCategory);
|
||||
SIMPLE_GET_FUNC(Item, GetBattleCategory, BattleItemCategory);
|
||||
SIMPLE_GET_FUNC(Item, GetPrice, i32);
|
||||
|
||||
export bool CreatureLib_Item_HasFlag(const Item* p, const char* key) {
|
||||
export_func bool CreatureLib_Item_HasFlag(const Item* p, const char* key) {
|
||||
return p->HasFlag(ArbUt::StringView::CalculateHash(key));
|
||||
}
|
||||
@@ -3,10 +3,10 @@
|
||||
#include "BaseLibrary.cpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export const ItemLibrary* CreatureLib_ItemLibrary_Construct(size_t initialCapacity = 32) {
|
||||
export_func const ItemLibrary* CreatureLib_ItemLibrary_Construct(size_t initialCapacity = 32) {
|
||||
return new ItemLibrary(initialCapacity);
|
||||
};
|
||||
|
||||
export void CreatureLib_ItemLibrary_Destruct(const ItemLibrary* p) { delete p; }
|
||||
export_func void CreatureLib_ItemLibrary_Destruct(const ItemLibrary* p) { delete p; }
|
||||
|
||||
BASELIBRARY(CreatureLib_ItemLibrary, ItemLibrary, Item);
|
||||
@@ -2,31 +2,31 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export u8 CreatureLib_LearnableAttacks_Construct(LearnableAttacks*& out, size_t levelAttackCapacity) {
|
||||
export_func u8 CreatureLib_LearnableAttacks_Construct(LearnableAttacks*& out, size_t levelAttackCapacity) {
|
||||
Try(out = new LearnableAttacks(levelAttackCapacity);)
|
||||
};
|
||||
|
||||
export void CreatureLib_LearnableAttacks_Destruct(LearnableAttacks* p) { delete p; }
|
||||
export_func void CreatureLib_LearnableAttacks_Destruct(LearnableAttacks* p) { delete p; }
|
||||
|
||||
export void CreatureLib_LearnableAttacks_AddLevelAttack(LearnableAttacks* p, level_int_t level,
|
||||
const AttackData* attack) {
|
||||
export_func void CreatureLib_LearnableAttacks_AddLevelAttack(LearnableAttacks* p, level_int_t level,
|
||||
const AttackData* attack) {
|
||||
p->AddLevelAttack(level, attack);
|
||||
}
|
||||
|
||||
export const AttackData* const* CreatureLib_LearnableAttacks_GetAttacksForLevel(LearnableAttacks* p, u8 level) {
|
||||
export_func const AttackData* const* CreatureLib_LearnableAttacks_GetAttacksForLevel(LearnableAttacks* p, u8 level) {
|
||||
return reinterpret_cast<const AttackData* const*>(p->GetAttacksForLevel(level).RawData());
|
||||
}
|
||||
export bool CreatureLib_LearnableAttacks_HasAttacksForLevel(LearnableAttacks* p, u8 level) {
|
||||
export_func bool CreatureLib_LearnableAttacks_HasAttacksForLevel(LearnableAttacks* p, u8 level) {
|
||||
return p->HasAttacksForLevel(level);
|
||||
}
|
||||
export size_t CreatureLib_LearnableAttacks_GetAttacksForLevelCount(LearnableAttacks* p, u8 level) {
|
||||
export_func size_t CreatureLib_LearnableAttacks_GetAttacksForLevelCount(LearnableAttacks* p, u8 level) {
|
||||
return p->GetAttacksForLevel(level).Count();
|
||||
}
|
||||
|
||||
export size_t CreatureLib_LearnableAttacks_GetDistinctLevelAttacksCount(LearnableAttacks* p) {
|
||||
export_func size_t CreatureLib_LearnableAttacks_GetDistinctLevelAttacksCount(LearnableAttacks* p) {
|
||||
return p->GetDistinctLevelAttacks().Count();
|
||||
}
|
||||
|
||||
export const AttackData* const* CreatureLib_LearnableAttacks_GetDistinctLevelAttacks(LearnableAttacks* p) {
|
||||
export_func const AttackData* const* CreatureLib_LearnableAttacks_GetDistinctLevelAttacks(LearnableAttacks* p) {
|
||||
return reinterpret_cast<const AttackData* const*>(p->GetDistinctLevelAttacks().RawData());
|
||||
}
|
||||
@@ -2,11 +2,11 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export const LibrarySettings* CreatureLib_LibrarySettings_Construct(u8 maximalLevel, u8 maximalMoves) {
|
||||
export_func const LibrarySettings* CreatureLib_LibrarySettings_Construct(u8 maximalLevel, u8 maximalMoves) {
|
||||
return new LibrarySettings(maximalLevel, maximalMoves);
|
||||
}
|
||||
|
||||
export void CreatureLib_LibrarySettings_Destruct(const LibrarySettings* p) { delete p; }
|
||||
export_func void CreatureLib_LibrarySettings_Destruct(const LibrarySettings* p) { delete p; }
|
||||
|
||||
SIMPLE_GET_FUNC(LibrarySettings, GetMaximalLevel, level_int_t);
|
||||
SIMPLE_GET_FUNC(LibrarySettings, GetMaximalAttacks, u8);
|
||||
@@ -3,14 +3,14 @@
|
||||
#include "BaseLibrary.cpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export const SpeciesLibrary* CreatureLib_SpeciesLibrary_Construct(size_t initialCapacity = 32) {
|
||||
export_func const SpeciesLibrary* CreatureLib_SpeciesLibrary_Construct(size_t initialCapacity = 32) {
|
||||
return new SpeciesLibrary(initialCapacity);
|
||||
};
|
||||
|
||||
export void CreatureLib_SpeciesLibrary_Destruct(const SpeciesLibrary* p) { delete p; }
|
||||
export_func void CreatureLib_SpeciesLibrary_Destruct(const SpeciesLibrary* p) { delete p; }
|
||||
|
||||
BASELIBRARY(CreatureLib_SpeciesLibrary, SpeciesLibrary, CreatureSpecies);
|
||||
|
||||
export const CreatureSpecies* CreatureLib_SpeciesLibrary_GetById(const SpeciesLibrary* p, u16 id) {
|
||||
export_func const CreatureSpecies* CreatureLib_SpeciesLibrary_GetById(const SpeciesLibrary* p, u16 id) {
|
||||
return p->GetById(id).GetRaw();
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export SpeciesVariant* CreatureLib_SpeciesVariant_Construct(
|
||||
export_func SpeciesVariant* CreatureLib_SpeciesVariant_Construct(
|
||||
const char* name, float height, float weight, u32 baseExperience, u8 types[], size_t typeLength, u16 baseHealth,
|
||||
u16 baseAttack, u16 baseDefense, u16 baseMagicalAttack, u16 baseMagicalDefense, u16 baseSpeed,
|
||||
const Talent* talents[], size_t talentsLength, const Talent* secretTalents[], size_t secretTalentsLength,
|
||||
@@ -30,28 +30,28 @@ export SpeciesVariant* CreatureLib_SpeciesVariant_Construct(
|
||||
talentsWrapped, secretTalentsWrapped, attacks, conversedFlags);
|
||||
}
|
||||
|
||||
export void CreatureLib_SpeciesVariant_Destruct(SpeciesVariant* p) { delete p; }
|
||||
export_func void CreatureLib_SpeciesVariant_Destruct(SpeciesVariant* p) { delete p; }
|
||||
|
||||
export const char* CreatureLib_SpeciesVariant_GetName(SpeciesVariant* p) { return p->GetName().c_str(); }
|
||||
export_func const char* CreatureLib_SpeciesVariant_GetName(SpeciesVariant* p) { return p->GetName().c_str(); }
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetHeight, float);
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetWeight, float);
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetBaseExperience, u32);
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetTypeCount, size_t);
|
||||
export u8 CreatureLib_SpeciesVariant_GetType(SpeciesVariant* p, size_t index) { return p->GetType(index); }
|
||||
export u16 CreatureLib_SpeciesVariant_GetStatistic(SpeciesVariant* p, CreatureLib::Library::Statistic stat) {
|
||||
export_func u8 CreatureLib_SpeciesVariant_GetType(SpeciesVariant* p, size_t index) { return p->GetType(index); }
|
||||
export_func u16 CreatureLib_SpeciesVariant_GetStatistic(SpeciesVariant* p, CreatureLib::Library::Statistic stat) {
|
||||
return p->GetStatistic(stat);
|
||||
}
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetTalentCount, size_t);
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetSecretTalentCount, size_t);
|
||||
export u8 CreatureLib_SpeciesVariant_GetTalent(SpeciesVariant* p, bool secret, u8 index, const Talent*& out) {
|
||||
export_func u8 CreatureLib_SpeciesVariant_GetTalent(SpeciesVariant* p, bool secret, u8 index, const Talent*& out) {
|
||||
Try(out = p->GetTalent(TalentIndex(secret, index)).GetRaw();)
|
||||
}
|
||||
export const LearnableAttacks* CreatureLib_SpeciesVariant_GetLearnableAttacks(SpeciesVariant* p) {
|
||||
export_func const LearnableAttacks* CreatureLib_SpeciesVariant_GetLearnableAttacks(SpeciesVariant* p) {
|
||||
return p->GetLearnableAttacks().GetRaw();
|
||||
}
|
||||
export u8 CreatureLib_SpeciesVariant_GetRandomTalent(SpeciesVariant* p, ArbUt::Random* rand) {
|
||||
export_func u8 CreatureLib_SpeciesVariant_GetRandomTalent(SpeciesVariant* p, ArbUt::Random* rand) {
|
||||
return p->GetRandomTalent(*rand).GetIndex();
|
||||
}
|
||||
export bool CreatureLib_SpeciesVariant_HasFlag(const SpeciesVariant* p, const char* key) {
|
||||
export_func bool CreatureLib_SpeciesVariant_HasFlag(const SpeciesVariant* p, const char* key) {
|
||||
return p->HasFlag(ArbUt::StringView::CalculateHash(key));
|
||||
}
|
||||
@@ -2,16 +2,16 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export Talent* CreatureLib_Talent_Construct(const char* name, const char* effect, EffectParameter* effectParameters[],
|
||||
size_t effectParameterCount) {
|
||||
export_func Talent* CreatureLib_Talent_Construct(const char* name, const char* effect,
|
||||
EffectParameter* effectParameters[], size_t effectParameterCount) {
|
||||
ArbUt::List<EffectParameter*> effectParameterList(effectParameterCount);
|
||||
for (size_t i = 0; i < effectParameterCount; i++) {
|
||||
effectParameterList.Append(effectParameters[i]);
|
||||
}
|
||||
return new Talent(ArbUt::StringView(name), ArbUt::StringView(effect), effectParameterList);
|
||||
}
|
||||
export void CreatureLib_Talent_Destruct(const Talent* p) { delete p; }
|
||||
export_func void CreatureLib_Talent_Destruct(const Talent* p) { delete p; }
|
||||
|
||||
export const char* CreatureLib_Talent_GetName(const Talent* talent) { return talent->GetName().c_str(); }
|
||||
export_func const char* CreatureLib_Talent_GetName(const Talent* talent) { return talent->GetName().c_str(); }
|
||||
|
||||
export const char* CreatureLib_Talent_GetEffect(const Talent* talent) { return talent->GetEffect().c_str(); }
|
||||
export_func const char* CreatureLib_Talent_GetEffect(const Talent* talent) { return talent->GetEffect().c_str(); }
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export u8 CreatureLib_TalentLibrary_Construct(TalentLibrary*& library, size_t initialCapacity = 32) {
|
||||
export_func u8 CreatureLib_TalentLibrary_Construct(TalentLibrary*& library, size_t initialCapacity = 32) {
|
||||
Try(library = new TalentLibrary(initialCapacity);)
|
||||
};
|
||||
|
||||
export void CreatureLib_TalentLibrary_Destruct(const TalentLibrary* p) { delete p; }
|
||||
export_func void CreatureLib_TalentLibrary_Destruct(const TalentLibrary* p) { delete p; }
|
||||
|
||||
BASELIBRARY(CreatureLib_TalentLibrary, TalentLibrary, Talent);
|
||||
@@ -2,31 +2,32 @@
|
||||
#include "../Core.hpp"
|
||||
using namespace CreatureLib::Library;
|
||||
|
||||
export TypeLibrary* CreatureLib_TypeLibrary_Construct(size_t initialCapacity) {
|
||||
export_func TypeLibrary* CreatureLib_TypeLibrary_Construct(size_t initialCapacity) {
|
||||
return new TypeLibrary(initialCapacity);
|
||||
};
|
||||
|
||||
export void CreatureLib_TypeLibrary_Destruct(const TypeLibrary* p) { delete p; }
|
||||
export_func void CreatureLib_TypeLibrary_Destruct(const TypeLibrary* p) { delete p; }
|
||||
|
||||
export u8 CreatureLib_TypeLibrary_GetTypeId(u8& out, const TypeLibrary* p, const char* type) {
|
||||
export_func u8 CreatureLib_TypeLibrary_GetTypeId(u8& out, const TypeLibrary* p, const char* type) {
|
||||
Try(out = p->GetTypeId(ArbUt::StringView(type));)
|
||||
}
|
||||
export u8 CreatureLib_TypeLibrary_RegisterType(u8& out, TypeLibrary* p, const char* type) {
|
||||
export_func u8 CreatureLib_TypeLibrary_RegisterType(u8& out, TypeLibrary* p, const char* type) {
|
||||
Try(out = p->RegisterType(ArbUt::StringView(type));)
|
||||
}
|
||||
|
||||
export u8 CreatureLib_TypeLibrary_SetEffectiveness(TypeLibrary* p, u8 attacking, u8 defensive, float effectiveness) {
|
||||
export_func u8 CreatureLib_TypeLibrary_SetEffectiveness(TypeLibrary* p, u8 attacking, u8 defensive,
|
||||
float effectiveness) {
|
||||
Try(p->SetEffectiveness(attacking, defensive, effectiveness);)
|
||||
}
|
||||
|
||||
export u8 CreatureLib_TypeLibrary_GetSingleEffectiveness(float& out, TypeLibrary* p, u8 attacking, u8 defensive) {
|
||||
export_func u8 CreatureLib_TypeLibrary_GetSingleEffectiveness(float& out, TypeLibrary* p, u8 attacking, u8 defensive) {
|
||||
Try(out = p->GetSingleEffectiveness(attacking, defensive);)
|
||||
}
|
||||
|
||||
export u8 CreatureLib_TypeLibrary_GetEffectiveness(float& out, TypeLibrary* p, u8 attacking, u8 defensive[],
|
||||
size_t defensiveCount) {
|
||||
export_func u8 CreatureLib_TypeLibrary_GetEffectiveness(float& out, TypeLibrary* p, u8 attacking, u8 defensive[],
|
||||
size_t defensiveCount) {
|
||||
Try(out = p->GetEffectiveness(attacking, std::vector<u8>(defensive, defensive + defensiveCount));)
|
||||
}
|
||||
export u8 CreatureLib_TypeLibrary_GetTypeName(const char*& out, TypeLibrary* p, u8 type) {
|
||||
export_func u8 CreatureLib_TypeLibrary_GetTypeName(const char*& out, TypeLibrary* p, u8 type) {
|
||||
Try(out = p->GetTypeName(type).c_str();)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user