Smart pointers for most library and battle classes.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-06-02 20:37:21 +02:00
parent 1d1dc877a0
commit 2d3a2fc63b
22 changed files with 91 additions and 89 deletions

View File

@@ -1,5 +1,6 @@
#ifndef PKMNLIB_POKEMONSPECIES_HPP
#define PKMNLIB_POKEMONSPECIES_HPP
#include <Arbutils/Memory/UniquePtrList.hpp>
#include <CreatureLib/Battling/Models/Creature.hpp>
#include "../Evolutions/EvolutionData.hpp"
#include "PokemonForme.hpp"
@@ -8,7 +9,7 @@ namespace PkmnLib::Library {
class PokemonSpecies : public CreatureLib::Library::CreatureSpecies {
private:
uint8_t _baseHappiness;
ArbUt::List<const EvolutionData*> _evolutions;
ArbUt::UniquePtrList<const EvolutionData> _evolutions;
public:
PokemonSpecies(uint16_t id, const ArbUt::CaseInsensitiveConstString& name, const PokemonForme* defaultForme,
@@ -17,11 +18,7 @@ namespace PkmnLib::Library {
: CreatureSpecies(id, name, defaultForme, genderRatio, growthRate, captureRate),
_baseHappiness(baseHappiness) {}
~PokemonSpecies() override {
for (auto evo : _evolutions) {
delete evo;
}
}
~PokemonSpecies() override = default;
inline uint8_t GetBaseHappiness() const { return _baseHappiness; }
@@ -44,7 +41,7 @@ namespace PkmnLib::Library {
}
inline void AddEvolution(const EvolutionData* data) noexcept { _evolutions.Append(data); }
const ArbUt::List<const EvolutionData*>& GetEvolutions() const noexcept { return _evolutions; }
const ArbUt::UniquePtrList<const EvolutionData>& GetEvolutions() const noexcept { return _evolutions; }
};
}