Make LearnedAttack of Creature a smart pointer.
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:
@@ -9,7 +9,7 @@ export uint8_t CreatureLib_Creature_Construct(Creature*& out, const BattleLibrar
|
||||
uint8_t coloring, const CreatureLib::Library::Item* heldItem,
|
||||
const char* nickname, bool secretTalent, uint8_t talent,
|
||||
LearnedAttack* attacks[], size_t attacksNum, bool allowedExperienceGain) {
|
||||
Try(auto attacksVec = ArbUt::List<LearnedAttack*>(attacks, attacks + attacksNum);
|
||||
Try(auto attacksVec = std::vector<LearnedAttack*>(attacks, attacks + (attacksNum * sizeof(LearnedAttack*)));
|
||||
out = new Creature(library, ArbUt::BorrowedPtr<const CreatureLib::Library::CreatureSpecies>(species), variant,
|
||||
level, experience, uid, gender, coloring,
|
||||
ArbUt::BorrowedPtr<const CreatureLib::Library::Item>(heldItem), nickname,
|
||||
@@ -81,7 +81,9 @@ export bool CreatureLib_Creature_HasVolatileScript(Creature* p, const char* scri
|
||||
return p->HasVolatileScript(ArbUt::CaseInsensitiveConstString(scriptName));
|
||||
}
|
||||
export size_t CreatureLib_Creature_GetAttacksCount(Creature* p) { return p->GetAttacks().Count(); }
|
||||
export LearnedAttack* const* CreatureLib_Creature_GetAttacks(Creature* p) { return p->GetAttacks().RawData(); }
|
||||
export LearnedAttack* const* CreatureLib_Creature_GetAttack(Creature* p, size_t index) {
|
||||
return p->GetAttacks().RawData();
|
||||
}
|
||||
SIMPLE_GET_FUNC_SMART_PTR(Creature, GetDisplaySpecies, const CreatureLib::Library::CreatureSpecies*);
|
||||
SIMPLE_GET_FUNC_SMART_PTR(Creature, GetDisplayVariant, const CreatureLib::Library::SpeciesVariant*);
|
||||
export void CreatureLib_Creature_SetDisplaySpecies(Creature* p, const CreatureLib::Library::CreatureSpecies* species) {
|
||||
|
||||
@@ -21,7 +21,7 @@ export bool CreatureLib_ExecutingAttack_IsCreatureTarget(ExecutingAttack* p, Cre
|
||||
}
|
||||
|
||||
export Creature* CreatureLib_ExecutingAttack_GetUser(ExecutingAttack* p) { return p->GetUser(); }
|
||||
export LearnedAttack* CreatureLib_ExecutingAttack_GetAttack(ExecutingAttack* p) { return p->GetAttack(); }
|
||||
export LearnedAttack* CreatureLib_ExecutingAttack_GetAttack(ExecutingAttack* p) { return p->GetAttack().operator->(); }
|
||||
|
||||
#define HITDATA_GET_FUNC(name, returnType) \
|
||||
export returnType CreatureLib_HitData##_##name(const ExecutingAttack::HitData* p) { return p->name(); }
|
||||
|
||||
@@ -19,11 +19,13 @@ export void CreatureLib_BaseTurnChoice_Destruct(const BaseTurnChoice* p) { delet
|
||||
|
||||
#define SIMPLE_GET_FUNC(type, name, returnType) \
|
||||
export returnType CreatureLib_##type##_##name(const type* p) { return p->name(); }
|
||||
#define SIMPLE_GET_FUNC_SMART_PTR(type, name, returnType) \
|
||||
export returnType CreatureLib_##type##_##name(const type* p) { return p->name().operator->(); }
|
||||
|
||||
SIMPLE_GET_FUNC(BaseTurnChoice, GetKind, TurnChoiceKind)
|
||||
SIMPLE_GET_FUNC(BaseTurnChoice, GetUser, Creature*)
|
||||
|
||||
SIMPLE_GET_FUNC(AttackTurnChoice, GetAttack, LearnedAttack*)
|
||||
SIMPLE_GET_FUNC_SMART_PTR(AttackTurnChoice, GetAttack, LearnedAttack*)
|
||||
SIMPLE_GET_FUNC(AttackTurnChoice, GetKind, TurnChoiceKind)
|
||||
|
||||
export uint8_t CreatureLib_BaseTurnChoice_GetPriority(int8_t& out, AttackTurnChoice* p) { Try(out = p->GetPriority()); }
|
||||
@@ -38,4 +40,5 @@ export uint8_t CreatureLib_BaseTurnChoice_GetTargetCreatureIndex(const AttackTur
|
||||
|
||||
SIMPLE_GET_FUNC(SwitchTurnChoice, GetNewCreature, Creature*)
|
||||
|
||||
#undef SIMPLE_GET_FUNC
|
||||
#undef SIMPLE_GET_FUNC
|
||||
#undef SIMPLE_GET_FUNC_SMART_PTR
|
||||
Reference in New Issue
Block a user