Breaking change: rework of talents.
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -79,8 +79,8 @@ export uint8_t CreatureLib_Creature_RestoreAllAttackUses(Creature* p) { Try(p->R
|
||||
export bool CreatureLib_Creature_GetRealTalentIsSecret(const Creature* p) { return p->GetRealTalent().IsSecret(); }
|
||||
export bool CreatureLib_Creature_GetRealTalentIndex(const Creature* p) { return p->GetRealTalent().GetIndex(); }
|
||||
|
||||
export uint8_t CreatureLib_Creature_GetActiveTalent(const Creature* p, const char*& out) {
|
||||
Try(out = p->GetActiveTalent().c_str();)
|
||||
export uint8_t CreatureLib_Creature_GetActiveTalent(const Creature* p, const CreatureLib::Library::Talent*& out) {
|
||||
Try(out = p->GetActiveTalent().GetRaw();)
|
||||
}
|
||||
export uint8_t CreatureLib_Creature_OverrideActiveTalent(Creature* p, const char* talent) {
|
||||
Try(p->OverrideActiveTalent(ArbUt::StringView(talent));)
|
||||
|
||||
@@ -4,8 +4,9 @@ using namespace CreatureLib::Library;
|
||||
|
||||
export uint8_t CreatureLib_DataLibrary_Construct(const DataLibrary*& out, LibrarySettings* settings,
|
||||
SpeciesLibrary* species, AttackLibrary* attacks, ItemLibrary* items,
|
||||
GrowthRateLibrary* growthRates, TypeLibrary* typeLibrary) {
|
||||
Try(out = new DataLibrary(settings, species, attacks, items, growthRates, typeLibrary);)
|
||||
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; }
|
||||
@@ -15,4 +16,5 @@ SMART_GET_FUNC(DataLibrary, GetSpeciesLibrary, const SpeciesLibrary*);
|
||||
SMART_GET_FUNC(DataLibrary, GetAttackLibrary, const AttackLibrary*);
|
||||
SMART_GET_FUNC(DataLibrary, GetItemLibrary, const ItemLibrary*);
|
||||
SMART_GET_FUNC(DataLibrary, GetGrowthRates, const GrowthRateLibrary*);
|
||||
SMART_GET_FUNC(DataLibrary, GetTypeLibrary, const TypeLibrary*);
|
||||
SMART_GET_FUNC(DataLibrary, GetTypeLibrary, const TypeLibrary*);
|
||||
SMART_GET_FUNC(DataLibrary, GetTalentLibrary, const TalentLibrary*);
|
||||
@@ -7,8 +7,8 @@ export SpeciesVariant*
|
||||
CreatureLib_SpeciesVariant_Construct(const char* name, float height, float weight, uint32_t baseExperience,
|
||||
uint8_t types[], size_t typeLength, uint16_t baseHealth, uint16_t baseAttack,
|
||||
uint16_t baseDefense, uint16_t baseMagicalAttack, uint16_t baseMagicalDefense,
|
||||
uint16_t baseSpeed, const char* talents[], size_t talentsLength,
|
||||
const char* secretTalents[], size_t secretTalentsLength,
|
||||
uint16_t baseSpeed, const Talent* talents[], size_t talentsLength,
|
||||
const Talent* secretTalents[], size_t secretTalentsLength,
|
||||
const LearnableAttacks* attacks, const char* flags[], size_t flagsCount) {
|
||||
|
||||
std::unordered_set<uint32_t> conversedFlags(flagsCount);
|
||||
@@ -16,13 +16,13 @@ CreatureLib_SpeciesVariant_Construct(const char* name, float height, float weigh
|
||||
conversedFlags.insert(ArbUt::StringView::CalculateHash(flags[i]));
|
||||
}
|
||||
|
||||
auto talentsWrapped = ArbUt::List<ArbUt::StringView>(talentsLength);
|
||||
auto talentsWrapped = ArbUt::List<ArbUt::BorrowedPtr<const Talent>>(talentsLength);
|
||||
for (size_t i = 0; i < talentsLength; i++) {
|
||||
talentsWrapped.Append(ArbUt::StringView(talents[i]));
|
||||
talentsWrapped.Append(talents[i]);
|
||||
}
|
||||
auto secretTalentsWrapped = ArbUt::List<ArbUt::StringView>(secretTalentsLength);
|
||||
auto secretTalentsWrapped = ArbUt::List<ArbUt::BorrowedPtr<const Talent>>(secretTalentsLength);
|
||||
for (size_t i = 0; i < secretTalentsLength; i++) {
|
||||
secretTalentsWrapped.Append(ArbUt::StringView(secretTalents[i]));
|
||||
secretTalentsWrapped.Append(secretTalents[i]);
|
||||
}
|
||||
|
||||
return new SpeciesVariant(
|
||||
@@ -45,8 +45,8 @@ export uint16_t CreatureLib_SpeciesVariant_GetStatistic(SpeciesVariant* p, Creat
|
||||
}
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetTalentCount, size_t);
|
||||
SIMPLE_GET_FUNC(SpeciesVariant, GetSecretTalentCount, size_t);
|
||||
export uint8_t CreatureLib_SpeciesVariant_GetTalent(SpeciesVariant* p, bool secret, uint8_t index, const char*& out) {
|
||||
Try(out = p->GetTalent(TalentIndex(secret, index)).c_str();)
|
||||
export uint8_t CreatureLib_SpeciesVariant_GetTalent(SpeciesVariant* p, bool secret, uint8_t index, const Talent*& out) {
|
||||
Try(out = p->GetTalent(TalentIndex(secret, index)).GetRaw();)
|
||||
}
|
||||
export const LearnableAttacks* CreatureLib_SpeciesVariant_GetLearnableAttacks(SpeciesVariant* p) {
|
||||
return p->GetLearnableAttacks().GetRaw();
|
||||
|
||||
Reference in New Issue
Block a user