Make staticlib in battle library an unique ptr.
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Deukhoofd 2020-05-26 16:38:55 +02:00
parent 0125215007
commit d746b3ecce
Signed by: Deukhoofd
GPG Key ID: ADF2E9256009EDCE
3 changed files with 4 additions and 6 deletions

View File

@ -18,7 +18,7 @@ export void CreatureLib_BattleLibrary_Destruct(const BattleLibrary* p) { delete
#define SIMPLE_GET_FUNC_SMART_PTR(type, name, returnType) \
export returnType CreatureLib_##type##_##name(const type* p) { return p->name().operator->(); }
SIMPLE_GET_FUNC(BattleLibrary, GetStaticLib, const CreatureLib::Library::DataLibrary*);
SIMPLE_GET_FUNC_SMART_PTR(BattleLibrary, GetStaticLib, const CreatureLib::Library::DataLibrary*);
SIMPLE_GET_FUNC_SMART_PTR(BattleLibrary, GetStatCalculator, const BattleStatCalculator*);
SIMPLE_GET_FUNC_SMART_PTR(BattleLibrary, GetDamageLibrary, const DamageLibrary*);
SIMPLE_GET_FUNC_SMART_PTR(BattleLibrary, GetMiscLibrary, const MiscLibrary*);

View File

@ -15,8 +15,6 @@ BattleLibrary::BattleLibrary(const CreatureLib::Library::DataLibrary* staticLib,
AssertNotNull(_miscLibrary);
}
BattleLibrary::~BattleLibrary() { delete _staticLib; }
const std::unique_ptr<const CreatureLib::Library::LibrarySettings>& BattleLibrary::GetSettings() const noexcept {
return _staticLib->GetSettings();
}

View File

@ -11,7 +11,7 @@
namespace CreatureLib::Battling {
class BattleLibrary {
protected:
const Library::DataLibrary* _staticLib = nullptr;
std::unique_ptr<const Library::DataLibrary> _staticLib = nullptr;
std::unique_ptr<const BattleStatCalculator> _statCalculator = nullptr;
std::unique_ptr<const DamageLibrary> _damageLibrary = nullptr;
std::unique_ptr<const ExperienceLibrary> _experienceLibrary = nullptr;
@ -22,8 +22,8 @@ namespace CreatureLib::Battling {
BattleLibrary(const Library::DataLibrary* staticLib, BattleStatCalculator* statCalculator,
DamageLibrary* damageLibrary, ExperienceLibrary* experienceLibrary,
ScriptResolver* scriptResolver, MiscLibrary* miscLibrary);
~BattleLibrary();
inline const Library::DataLibrary* GetStaticLib() const noexcept { return _staticLib; }
~BattleLibrary() = default;
inline const std::unique_ptr<const Library::DataLibrary>& GetStaticLib() const noexcept { return _staticLib; }
[[nodiscard]] const std::unique_ptr<const Library::LibrarySettings>& GetSettings() const noexcept;
[[nodiscard]] const std::unique_ptr<const Library::SpeciesLibrary>& GetSpeciesLibrary() const noexcept;