Overhaul memory model to new Arbutils memory.
Some checks failed
continuous-integration/drone/push Build is failing

Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
2020-12-12 12:22:48 +01:00
parent 1dc3aafd33
commit 5c39694f19
33 changed files with 279 additions and 211 deletions

View File

@@ -36,9 +36,9 @@ namespace CreatureLib::Library {
return _distinctLevelAttacks;
}
ArbUt::BorrowedPtr<const AttackData> GetRandomAttack(ArbUt::Random& rand) const {
std::optional<ArbUt::BorrowedPtr<const AttackData>> GetRandomAttack(ArbUt::Random& rand) const {
if (_distinctLevelAttacks.Count() == 0) {
return nullptr;
return {};
}
auto val = rand.Get(_distinctLevelAttacks.Count());
auto it = _distinctLevelAttacks.begin();
@@ -64,7 +64,7 @@ namespace CreatureLib::Library {
LearnableAttacks::GetDistinctLevelAttacks() const noexcept {
return _impl->GetDistinctLevelAttacks();
}
ArbUt::BorrowedPtr<const AttackData> LearnableAttacks::GetRandomAttack(ArbUt::Random& rand) const {
std::optional<ArbUt::BorrowedPtr<const AttackData>> LearnableAttacks::GetRandomAttack(ArbUt::Random& rand) const {
return _impl->GetRandomAttack(rand);
}

View File

@@ -36,7 +36,7 @@ namespace CreatureLib::Library {
/// @brief Returns a random attack that can be learned.
/// @param rand A random number generator.
/// @return A random attack that can be learned.
virtual ArbUt::BorrowedPtr<const AttackData> GetRandomAttack(ArbUt::Random& rand) const;
virtual std::optional<ArbUt::BorrowedPtr<const AttackData>> GetRandomAttack(ArbUt::Random& rand) const;
};
}