Remove shared_ptr, instead use borrowed_ptr to more accurately depict ownership of the objects in the BaseLibraries.
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:
@@ -11,10 +11,10 @@ export uint8_t CreatureLib_Creature_Construct(Creature*& out, const BattleLibrar
|
||||
const char* nickname, bool secretTalent, uint8_t talent,
|
||||
LearnedAttack* attacks[], size_t attacksNum, bool allowedExperienceGain) {
|
||||
Try(auto attacksVec = List<LearnedAttack*>(attacks, attacks + attacksNum);
|
||||
out = new Creature(library, std::shared_ptr<const CreatureLib::Library::CreatureSpecies>(species), variant,
|
||||
level, experience, uid, gender, coloring,
|
||||
std::shared_ptr<const CreatureLib::Library::Item>(heldItem), nickname,
|
||||
CreatureLib::Library::TalentIndex(secretTalent, talent), attacksVec, allowedExperienceGain);)
|
||||
out = new Creature(library, borrowed_ptr<const CreatureLib::Library::CreatureSpecies>(species), variant, level,
|
||||
experience, uid, gender, coloring, borrowed_ptr<const CreatureLib::Library::Item>(heldItem),
|
||||
nickname, CreatureLib::Library::TalentIndex(secretTalent, talent), attacksVec,
|
||||
allowedExperienceGain);)
|
||||
};
|
||||
|
||||
export void CreatureLib_Creature_Destruct(const Creature* p) { delete p; }
|
||||
@@ -41,7 +41,7 @@ export uint8_t CreatureLib_Creature_SetHeldItem(Creature* p, const char* name) {
|
||||
}
|
||||
export uint8_t CreatureLib_Creature_SetHeldItemWithHash(Creature* p, uint32_t hash) { Try(p->SetHeldItem(hash);) }
|
||||
export void CreatureLib_Creature_SetHeldItemFromItem(Creature* p, const CreatureLib::Library::Item* item) {
|
||||
return p->SetHeldItem(std::shared_ptr<const CreatureLib::Library::Item>(item));
|
||||
return p->SetHeldItem(borrowed_ptr<const CreatureLib::Library::Item>(item));
|
||||
}
|
||||
SIMPLE_GET_FUNC(Creature, GetCurrentHealth, uint32_t);
|
||||
SIMPLE_GET_FUNC(Creature, GetBattle, Battle*);
|
||||
@@ -86,7 +86,7 @@ export LearnedAttack* const* CreatureLib_Creature_GetAttacks(Creature* p) { retu
|
||||
SIMPLE_GET_FUNC_SMART_PTR(Creature, GetDisplaySpecies, const CreatureLib::Library::CreatureSpecies*);
|
||||
SIMPLE_GET_FUNC(Creature, GetDisplayVariant, const CreatureLib::Library::SpeciesVariant*);
|
||||
export void CreatureLib_Creature_SetDisplaySpecies(Creature* p, const CreatureLib::Library::CreatureSpecies* species) {
|
||||
return p->SetDisplaySpecies(std::shared_ptr<const CreatureLib::Library::CreatureSpecies>(species));
|
||||
return p->SetDisplaySpecies(borrowed_ptr<const CreatureLib::Library::CreatureSpecies>(species));
|
||||
}
|
||||
export void CreatureLib_Creature_SetDisplayVariant(Creature* p, const CreatureLib::Library::SpeciesVariant* variant) {
|
||||
return p->SetDisplayVariant(variant);
|
||||
|
||||
@@ -4,7 +4,7 @@ using namespace CreatureLib::Battling;
|
||||
|
||||
export uint8_t CreatureLib_LearnedAttack_Construct(LearnedAttack*& out, const CreatureLib::Library::AttackData* attack,
|
||||
uint8_t maxUses, AttackLearnMethod learnMethod) {
|
||||
Try(out = new LearnedAttack(std::shared_ptr<const CreatureLib::Library::AttackData>(attack), maxUses, learnMethod);)
|
||||
Try(out = new LearnedAttack(borrowed_ptr<const CreatureLib::Library::AttackData>(attack), maxUses, learnMethod);)
|
||||
}
|
||||
export void CreatureLib_LearnedAttack_Destruct(LearnedAttack* p) { delete p; }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user