Smart pointers for most library and battle classes.
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:
@@ -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; }
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user