Adds getter for UniqueIdentifier
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
parent
fb56d0920d
commit
48660f3a4c
|
@ -28,6 +28,7 @@ export uint8_t CreatureLib_Creature_ChangeVariant(Creature* p, const CreatureLib
|
||||||
|
|
||||||
SIMPLE_GET_FUNC(Creature, GetLevel, uint8_t);
|
SIMPLE_GET_FUNC(Creature, GetLevel, uint8_t);
|
||||||
SIMPLE_GET_FUNC(Creature, GetExperience, uint32_t);
|
SIMPLE_GET_FUNC(Creature, GetExperience, uint32_t);
|
||||||
|
SIMPLE_GET_FUNC(Creature, GetUniqueIdentifier, uint32_t);
|
||||||
SIMPLE_GET_FUNC(Creature, GetGender, CreatureLib::Library::Gender);
|
SIMPLE_GET_FUNC(Creature, GetGender, CreatureLib::Library::Gender);
|
||||||
SIMPLE_GET_FUNC(Creature, GetColoring, uint8_t);
|
SIMPLE_GET_FUNC(Creature, GetColoring, uint8_t);
|
||||||
|
|
||||||
|
@ -85,6 +86,9 @@ export bool CreatureLib_Creature_HasVolatileScript(Creature* p, const char* scri
|
||||||
}
|
}
|
||||||
export size_t CreatureLib_Creature_GetAttacksCount(Creature* p) { return p->GetAttacks().Count(); }
|
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_GetAttacks(Creature* p) { return p->GetAttacks().RawData(); }
|
||||||
|
export bool CreatureLib_Creature_HasAttack(Creature* p, const char* scriptName) {
|
||||||
|
return p->HasAttack(ArbUt::StringView(scriptName));
|
||||||
|
}
|
||||||
BORROWED_GET_FUNC(Creature, GetDisplaySpecies, const CreatureLib::Library::CreatureSpecies*);
|
BORROWED_GET_FUNC(Creature, GetDisplaySpecies, const CreatureLib::Library::CreatureSpecies*);
|
||||||
BORROWED_GET_FUNC(Creature, GetDisplayVariant, const CreatureLib::Library::SpeciesVariant*);
|
BORROWED_GET_FUNC(Creature, GetDisplayVariant, const CreatureLib::Library::SpeciesVariant*);
|
||||||
export void CreatureLib_Creature_SetDisplaySpecies(Creature* p, const CreatureLib::Library::CreatureSpecies* species) {
|
export void CreatureLib_Creature_SetDisplaySpecies(Creature* p, const CreatureLib::Library::CreatureSpecies* species) {
|
||||||
|
|
|
@ -88,6 +88,7 @@ namespace CreatureLib::Battling {
|
||||||
virtual void ChangeVariant(ArbUt::BorrowedPtr<const Library::SpeciesVariant> variant);
|
virtual void ChangeVariant(ArbUt::BorrowedPtr<const Library::SpeciesVariant> variant);
|
||||||
inline uint8_t GetLevel() const noexcept { return _level; }
|
inline uint8_t GetLevel() const noexcept { return _level; }
|
||||||
inline uint32_t GetExperience() const noexcept { return _experience; }
|
inline uint32_t GetExperience() const noexcept { return _experience; }
|
||||||
|
inline uint32_t GetUniqueIdentifier() const noexcept { return _uniqueIdentifier; }
|
||||||
inline Library::Gender GetGender() const noexcept { return _gender; }
|
inline Library::Gender GetGender() const noexcept { return _gender; }
|
||||||
inline uint8_t GetColoring() const noexcept { return _coloring; }
|
inline uint8_t GetColoring() const noexcept { return _coloring; }
|
||||||
inline bool HasHeldItem(const ArbUt::BasicStringView& name) const noexcept {
|
inline bool HasHeldItem(const ArbUt::BasicStringView& name) const noexcept {
|
||||||
|
@ -137,6 +138,15 @@ namespace CreatureLib::Battling {
|
||||||
bool HasVolatileScript(const ArbUt::BasicStringView& name) const;
|
bool HasVolatileScript(const ArbUt::BasicStringView& name) const;
|
||||||
|
|
||||||
const ArbUt::UniquePtrList<LearnedAttack>& GetAttacks() noexcept { return _attacks; }
|
const ArbUt::UniquePtrList<LearnedAttack>& GetAttacks() noexcept { return _attacks; }
|
||||||
|
bool HasAttack(const ArbUt::StringView& name) {
|
||||||
|
for (auto& a : _attacks) {
|
||||||
|
if (a == nullptr)
|
||||||
|
continue;
|
||||||
|
if (a->GetAttack()->GetName() == name)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
ArbUt::BorrowedPtr<const Library::CreatureSpecies> GetDisplaySpecies() const noexcept;
|
ArbUt::BorrowedPtr<const Library::CreatureSpecies> GetDisplaySpecies() const noexcept;
|
||||||
ArbUt::BorrowedPtr<const Library::SpeciesVariant> GetDisplayVariant() const noexcept;
|
ArbUt::BorrowedPtr<const Library::SpeciesVariant> GetDisplayVariant() const noexcept;
|
||||||
|
|
|
@ -20,8 +20,10 @@ bool CreatureSpecies::TryGetVariant(uint32_t hash, ArbUt::BorrowedPtr<const Spec
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreatureSpecies::SetVariant(const ArbUt::StringView& name, const SpeciesVariant* variant) {
|
void CreatureSpecies::SetVariant(const ArbUt::StringView& name, const SpeciesVariant* variant) {
|
||||||
|
Assert(!name.IsEmpty())
|
||||||
|
AssertNotNull(variant)
|
||||||
|
_variantsList.CreateBack(variant);
|
||||||
_variantsLookup.GetStdMap().insert({name, std::unique_ptr<const SpeciesVariant>(variant)});
|
_variantsLookup.GetStdMap().insert({name, std::unique_ptr<const SpeciesVariant>(variant)});
|
||||||
_variantsList.Append(variant);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Gender CreatureSpecies::GetRandomGender(ArbUt::Random& rand) const noexcept {
|
Gender CreatureSpecies::GetRandomGender(ArbUt::Random& rand) const noexcept {
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
#ifdef TESTS_BUILD
|
||||||
|
|
||||||
|
#include "../../extern/catch.hpp"
|
||||||
|
#include "../../src/Library/CreatureData/CreatureSpecies.hpp"
|
||||||
|
|
||||||
|
using namespace CreatureLib::Library;
|
||||||
|
|
||||||
|
TEST_CASE("Set Variant", "[Library]") {
|
||||||
|
auto defaultVariant = new SpeciesVariant("default", 0, 0, 0, {0, 1}, StatisticSet<uint16_t>(), {}, {}, nullptr);
|
||||||
|
auto c = CreatureSpecies(0, "foo", defaultVariant, 0, "", 0);
|
||||||
|
auto secondVariant = new SpeciesVariant("second", 0, 0, 0, {0, 1}, StatisticSet<uint16_t>(), {}, {}, nullptr);
|
||||||
|
c.SetVariant("second"_cnc, secondVariant);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue