diff --git a/src/Battling/History/HistoryHolder.hpp b/src/Battling/History/HistoryHolder.hpp index 1eeea9f..a63e1da 100644 --- a/src/Battling/History/HistoryHolder.hpp +++ b/src/Battling/History/HistoryHolder.hpp @@ -68,7 +68,7 @@ namespace CreatureLib::Battling { return {}; } - void CloneOnto(HistoryHolder& other) { + void CloneOnto(HistoryHolder& other) const { if (other._top != nullptr) { other._top->Clear(); } diff --git a/src/Battling/Models/Battle.cpp b/src/Battling/Models/Battle.cpp index 9b86fe0..4133be2 100644 --- a/src/Battling/Models/Battle.cpp +++ b/src/Battling/Models/Battle.cpp @@ -169,7 +169,7 @@ BattleScript* Battle::AddVolatileScript(BattleScript* script) { return _volatile void Battle::RemoveVolatileScript(BattleScript* script) { _volatile.Remove(script->GetName()); } void Battle::DisplayText(const ArbUt::StringView& text) { TriggerEventListener(text); } -Battle* Battle::Clone() { +Battle* Battle::Clone() const { auto parties = ArbUt::List(_parties.Count()); for (auto* party : _parties) { parties.Append(party->Clone()); diff --git a/src/Battling/Models/Battle.hpp b/src/Battling/Models/Battle.hpp index 996867e..7e509c6 100644 --- a/src/Battling/Models/Battle.hpp +++ b/src/Battling/Models/Battle.hpp @@ -132,7 +132,7 @@ namespace CreatureLib::Battling { } } - Battle* Clone(); + virtual Battle* Clone() const; }; } diff --git a/src/Battling/Models/BattleParty.hpp b/src/Battling/Models/BattleParty.hpp index 2c98521..6415414 100644 --- a/src/Battling/Models/BattleParty.hpp +++ b/src/Battling/Models/BattleParty.hpp @@ -43,7 +43,7 @@ namespace CreatureLib::Battling { return false; } - virtual BattleParty* Clone() { return new BattleParty(_party->Clone(), _responsibleIndices); } + virtual BattleParty* Clone() const { return new BattleParty(_party->Clone(), _responsibleIndices); } }; } diff --git a/src/Battling/Models/BattleSide.cpp b/src/Battling/Models/BattleSide.cpp index 1041b62..44b9d41 100644 --- a/src/Battling/Models/BattleSide.cpp +++ b/src/Battling/Models/BattleSide.cpp @@ -123,7 +123,7 @@ bool BattleSide::SwapPositions(u8 a, u8 b) { _battle->TriggerEventListener(_index, a, b); return true; } -BattleSide* BattleSide::CloneWithoutCreatures() { +BattleSide* BattleSide::CloneWithoutCreatures() const { auto* side = new BattleSide(_index, _battle, _creaturesPerSide); side->_choicesSet = _choicesSet; _volatile.Clone(side->_volatile); diff --git a/src/Battling/Models/BattleSide.hpp b/src/Battling/Models/BattleSide.hpp index ffae166..883d26a 100644 --- a/src/Battling/Models/BattleSide.hpp +++ b/src/Battling/Models/BattleSide.hpp @@ -88,7 +88,7 @@ namespace CreatureLib::Battling { bool SwapPositions(u8 a, u8 b); - BattleSide* CloneWithoutCreatures(); + BattleSide* CloneWithoutCreatures() const; }; } diff --git a/src/Battling/Models/Creature.cpp b/src/Battling/Models/Creature.cpp index 84961e6..92c2aa7 100644 --- a/src/Battling/Models/Creature.cpp +++ b/src/Battling/Models/Creature.cpp @@ -331,7 +331,7 @@ namespace CreatureLib::Battling { _attacks.Set(index, attack); } - Creature* Creature::Clone() { + Creature* Creature::Clone() const { auto attacks = std::vector(_attacks.Count()); auto i = 0; for (auto* attack : _attacks) { diff --git a/src/Battling/Models/Creature.hpp b/src/Battling/Models/Creature.hpp index 5366f70..cf80250 100644 --- a/src/Battling/Models/Creature.hpp +++ b/src/Battling/Models/Creature.hpp @@ -187,7 +187,7 @@ namespace CreatureLib::Battling { // endregion - virtual Creature* Clone(); + virtual Creature* Clone() const; }; } diff --git a/src/Battling/Models/CreatureParty.hpp b/src/Battling/Models/CreatureParty.hpp index acf111e..156b4f9 100644 --- a/src/Battling/Models/CreatureParty.hpp +++ b/src/Battling/Models/CreatureParty.hpp @@ -64,7 +64,7 @@ namespace CreatureLib::Battling { } } - virtual CreatureParty* Clone() { + virtual CreatureParty* Clone() const { auto party = new CreatureParty(_party.Count()); auto i = 0; for (auto c : _party) { diff --git a/src/Battling/Models/LearnedAttack.hpp b/src/Battling/Models/LearnedAttack.hpp index e1cf674..fd6abf1 100644 --- a/src/Battling/Models/LearnedAttack.hpp +++ b/src/Battling/Models/LearnedAttack.hpp @@ -29,7 +29,7 @@ namespace CreatureLib::Battling { virtual void RestoreUses(uint8_t amount) noexcept; virtual void RestoreAllUses() noexcept; - virtual LearnedAttack* Clone() { + virtual LearnedAttack* Clone() const { auto* attack = new LearnedAttack(_attack, _maxUses, _learnMethod); attack->_remainingUses = _remainingUses; return attack; diff --git a/src/Battling/ScriptHandling/ScriptSet.hpp b/src/Battling/ScriptHandling/ScriptSet.hpp index c7ebca8..1871c45 100644 --- a/src/Battling/ScriptHandling/ScriptSet.hpp +++ b/src/Battling/ScriptHandling/ScriptSet.hpp @@ -15,7 +15,7 @@ namespace CreatureLib::Battling { static constexpr size_t defaultCapacity = 8; ScriptSet() : _scripts(defaultCapacity), _lookup(defaultCapacity){}; - void Clone(ScriptSet& s) { + void Clone(ScriptSet& s) const { for (auto* script : _scripts) { s.Add(script->Clone()); }