Rework script handling to use smart pointers properly
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
@@ -24,7 +24,7 @@ TEST_CASE("Script Aggregator properly iterates containing script.") {
|
||||
auto script = std::make_unique<TestScript>("test");
|
||||
auto ran = 0;
|
||||
auto vec = ArbUt::List<ScriptWrapper>{
|
||||
ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script))};
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script))};
|
||||
auto aggr = ScriptAggregator(vec);
|
||||
ArbUt::BorrowedPtr<CreatureLib::Battling::BattleScript> next = (CreatureLib::Battling::BattleScript*)1;
|
||||
while (aggr.GetNext(next)) {
|
||||
@@ -39,9 +39,9 @@ TEST_CASE("Script Aggregator properly iterates multiple scripts.") {
|
||||
auto script3 = std::make_unique<TestScript>("test3");
|
||||
auto ran = 0;
|
||||
auto vec = ArbUt::List<ScriptWrapper>{
|
||||
ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script)),
|
||||
ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script2)),
|
||||
ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script3))};
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script)),
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script2)),
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script3))};
|
||||
auto aggr = ScriptAggregator(vec);
|
||||
ArbUt::BorrowedPtr<CreatureLib::Battling::BattleScript> next = (CreatureLib::Battling::BattleScript*)1;
|
||||
while (aggr.GetNext(next)) {
|
||||
@@ -98,7 +98,7 @@ TEST_CASE("Script Aggregator properly iterates data of Script Set and Script.")
|
||||
set.Add(script3);
|
||||
auto vec = ArbUt::List<ScriptWrapper>{
|
||||
ScriptWrapper::FromSet(&set),
|
||||
ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script))};
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script))};
|
||||
auto aggr = ScriptAggregator(vec);
|
||||
ArbUt::BorrowedPtr<CreatureLib::Battling::BattleScript> next = (CreatureLib::Battling::BattleScript*)1;
|
||||
while (aggr.GetNext(next)) {
|
||||
@@ -115,9 +115,9 @@ TEST_CASE("Script Aggregator properly iterates data of Script and Script Set.")
|
||||
auto set = ScriptSet();
|
||||
set.Add(script2);
|
||||
set.Add(script3);
|
||||
auto vec =
|
||||
ArbUt::List<ScriptWrapper>{ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script)),
|
||||
ScriptWrapper::FromSet(&set)};
|
||||
auto vec = ArbUt::List<ScriptWrapper>{
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script)),
|
||||
ScriptWrapper::FromSet(&set)};
|
||||
auto aggr = ScriptAggregator(vec);
|
||||
ArbUt::BorrowedPtr<CreatureLib::Battling::BattleScript> next = (CreatureLib::Battling::BattleScript*)1;
|
||||
while (aggr.GetNext(next)) {
|
||||
@@ -136,9 +136,9 @@ TEST_CASE("Script Aggregator properly iterates data of Script, Script Set and Sc
|
||||
set.Add(script2);
|
||||
set.Add(script3);
|
||||
auto vec = ArbUt::List<ScriptWrapper>{
|
||||
ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script)),
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script)),
|
||||
ScriptWrapper::FromSet(&set),
|
||||
ScriptWrapper::FromScript(reinterpret_cast<std::unique_ptr<BattleScript>*>(&script4))};
|
||||
ScriptWrapper::FromScript(reinterpret_cast<ArbUt::OptionalUniquePtr<BattleScript>*>(&script4))};
|
||||
auto aggr = ScriptAggregator(vec);
|
||||
ArbUt::BorrowedPtr<CreatureLib::Battling::BattleScript> next = (CreatureLib::Battling::BattleScript*)1;
|
||||
while (aggr.GetNext(next)) {
|
||||
|
||||
@@ -20,7 +20,7 @@ public:
|
||||
|
||||
class ScriptSourceWithScriptPtr : public ScriptSource {
|
||||
public:
|
||||
std::unique_ptr<BattleScript> ScriptPtr = nullptr;
|
||||
ArbUt::OptionalUniquePtr<BattleScript> ScriptPtr = nullptr;
|
||||
|
||||
protected:
|
||||
size_t ScriptCount() const override { return 1; }
|
||||
@@ -49,7 +49,7 @@ TEST_CASE("Script source with unset script ptr.") {
|
||||
|
||||
TEST_CASE("Script source with script ptr being set.") {
|
||||
auto source = ScriptSourceWithScriptPtr();
|
||||
source.ScriptPtr = std::make_unique<TestScript>("foobar");
|
||||
source.ScriptPtr = new TestScript("foobar");
|
||||
auto scripts = source.GetScriptIterator();
|
||||
ArbUt::BorrowedPtr<CreatureLib::Battling::BattleScript> next = (CreatureLib::Battling::BattleScript*)1;
|
||||
REQUIRE(scripts.GetNext(next));
|
||||
@@ -60,7 +60,7 @@ TEST_CASE("Script source with script ptr being set after first iteration.") {
|
||||
auto scripts = source.GetScriptIterator();
|
||||
ArbUt::BorrowedPtr<CreatureLib::Battling::BattleScript> next = (CreatureLib::Battling::BattleScript*)1;
|
||||
REQUIRE_FALSE(scripts.GetNext(next));
|
||||
source.ScriptPtr = std::make_unique<TestScript>("foobar");
|
||||
source.ScriptPtr = new TestScript("foobar");
|
||||
scripts = source.GetScriptIterator();
|
||||
REQUIRE(scripts.GetNext(next));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user