Adds support for script owner to clone command.
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
Signed-off-by: Deukhoofd <Deukhoofd@gmail.com>
This commit is contained in:
@@ -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(){};
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user