Make most of the battle library use unique_ptr.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2020-05-26 15:11:04 +02:00
parent e46117ea06
commit 16b67b0d54
6 changed files with 27 additions and 25 deletions

View File

@@ -12,11 +12,11 @@ namespace CreatureLib::Battling {
class BattleLibrary {
protected:
const Library::DataLibrary* _staticLib = nullptr;
BattleStatCalculator* _statCalculator = nullptr;
DamageLibrary* _damageLibrary = nullptr;
ExperienceLibrary* _experienceLibrary = nullptr;
ScriptResolver* _scriptResolver = nullptr;
MiscLibrary* _miscLibrary = nullptr;
std::unique_ptr<const BattleStatCalculator> _statCalculator = nullptr;
std::unique_ptr<const DamageLibrary> _damageLibrary = nullptr;
std::unique_ptr<const ExperienceLibrary> _experienceLibrary = nullptr;
std::unique_ptr<const ScriptResolver> _scriptResolver = nullptr;
std::unique_ptr<const MiscLibrary> _miscLibrary = nullptr;
public:
BattleLibrary(const Library::DataLibrary* staticLib, BattleStatCalculator* statCalculator,
@@ -34,10 +34,12 @@ namespace CreatureLib::Battling {
return _staticLib->GetGrowthRates();
}
[[nodiscard]] const BattleStatCalculator* GetStatCalculator() const noexcept;
[[nodiscard]] const DamageLibrary* GetDamageLibrary() const noexcept;
[[nodiscard]] const MiscLibrary* GetMiscLibrary() const noexcept;
[[nodiscard]] const ExperienceLibrary* GetExperienceLibrary() const noexcept { return _experienceLibrary; }
[[nodiscard]] const std::unique_ptr<const BattleStatCalculator>& GetStatCalculator() const noexcept;
[[nodiscard]] const std::unique_ptr<const DamageLibrary>& GetDamageLibrary() const noexcept;
[[nodiscard]] const std::unique_ptr<const MiscLibrary>& GetMiscLibrary() const noexcept;
[[nodiscard]] const std::unique_ptr<const ExperienceLibrary>& GetExperienceLibrary() const noexcept {
return _experienceLibrary;
}
[[nodiscard]] Script* LoadScript(ScriptCategory category,
const Arbutils::CaseInsensitiveConstString& scriptName) const;