Adds support for script owner to clone command.
Some checks failed
continuous-integration/drone/push Build is failing

Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
2021-10-29 21:55:49 +02:00
parent be7a5fe6bd
commit cb6725ab5e
8 changed files with 12 additions and 12 deletions

View File

@@ -15,14 +15,14 @@ namespace CreatureLib::Battling {
ArbUt::OptionalBorrowedPtr<void> _owner;
public:
BattleScript(ArbUt::OptionalBorrowedPtr<void> owner) { _owner = owner; };
BattleScript(const ArbUt::OptionalBorrowedPtr<void>& owner) { _owner = owner; };
NO_COPY_OR_MOVE(BattleScript);
inline ArbUt::OptionalBorrowedPtr<void> GetOwner() const noexcept { return _owner; }
virtual ~BattleScript() = default;
virtual BattleScript* Clone() = 0;
virtual BattleScript* Clone(const ArbUt::OptionalBorrowedPtr<void>& owner) = 0;
virtual void Stack(){};
virtual void OnRemove(){};

View File

@@ -15,9 +15,9 @@ namespace CreatureLib::Battling {
static constexpr size_t defaultCapacity = 8;
ScriptSet() : _scripts(defaultCapacity), _lookup(defaultCapacity){};
void Clone(ScriptSet& s) const {
void Clone(const ArbUt::OptionalBorrowedPtr<void>& owner, ScriptSet& s) const {
for (auto* script : _scripts) {
s.Add(script->Clone());
s.Add(script->Clone(owner));
}
}