diff --git a/CInterface/Battling/ExecutingAttack.cpp b/CInterface/Battling/ExecutingAttack.cpp index 682d813..18ae515 100644 --- a/CInterface/Battling/ExecutingAttack.cpp +++ b/CInterface/Battling/ExecutingAttack.cpp @@ -12,8 +12,7 @@ export_func u8 CreatureLib_ExecutingAttack_Construct(ExecutingAttack*& out, Crea for (size_t i = 0; i < targetCount; i++) { ls.Append(targets[i]); } - auto s = ArbUt::OptionalUniquePtr(script); - out = new ExecutingAttack(ls, numberHits, user, attack, attackData, s); + out = new ExecutingAttack(ls, numberHits, user, attack, attackData, script); }) } diff --git a/CInterface/Battling/ScriptResolver.cpp b/CInterface/Battling/ScriptResolver.cpp index 63abc43..bf6b9bf 100644 --- a/CInterface/Battling/ScriptResolver.cpp +++ b/CInterface/Battling/ScriptResolver.cpp @@ -16,5 +16,5 @@ export_func u8 CreatureLib_ScriptResolver_LoadScript(BattleScript*& out, ScriptR export_func u8 CreatureLib_ScriptResolver_LoadItemScript(ItemUseScript*& out, ScriptResolver* p, const CreatureLib::Library::Item* item) { - Try(out = p->LoadItemScript(item);) + Try(out = p->LoadItemScript(item).TakeOwnership();) }; diff --git a/src/Battling/ScriptHandling/ScriptAggregator.hpp b/src/Battling/ScriptHandling/ScriptAggregator.hpp index c044879..c6b8307 100644 --- a/src/Battling/ScriptHandling/ScriptAggregator.hpp +++ b/src/Battling/ScriptHandling/ScriptAggregator.hpp @@ -50,7 +50,7 @@ namespace CreatureLib::Battling { auto& current = _scripts[_index]; if (!current.IsSet()) { auto s = current.GetScript(); - out = *s; + out = s->GetValue(); return true; } else { auto& set = current.GetScriptSet()->GetIterator();