@@ -30,6 +30,15 @@ class MotionBlocksTest : public testing::Test
3030 // For any motion block
3131 std::shared_ptr<Block> createMotionBlock (const std::string &id, const std::string &opcode) const { return std::make_shared<Block>(id, opcode); }
3232
33+ std::shared_ptr<Block> createNullBlock (const std::string &id)
34+ {
35+ std::shared_ptr<Block> block = std::make_shared<Block>(id, " " );
36+ BlockComp func = [](Compiler *compiler) { compiler->addInstruction (vm::OP_NULL); };
37+ block->setCompileFunction (func);
38+
39+ return block;
40+ }
41+
3342 void addValueInput (std::shared_ptr<Block> block, const std::string &name, MotionBlocks::Inputs id, const Value &value) const
3443 {
3544 auto input = std::make_shared<Input>(name, Input::Type::Shadow);
@@ -308,11 +317,9 @@ TEST_F(MotionBlocksTest, PointTowards)
308317 auto block3 = std::make_shared<Block>(" c" , " motion_pointtowards" );
309318 addDropdownInput (block3, " TOWARDS" , MotionBlocks::TOWARDS, " Sprite2" );
310319
311- // point towards (join "" "")
312- auto joinBlock = std::make_shared<Block>(" e" , " operator_join" );
313- joinBlock->setCompileFunction (&OperatorBlocks::compileJoin);
320+ // point towards (null block)
314321 auto block4 = std::make_shared<Block>(" d" , " motion_pointtowards" );
315- addDropdownInput (block4, " TOWARDS" , MotionBlocks::TOWARDS, " " , joinBlock );
322+ addDropdownInput (block4, " TOWARDS" , MotionBlocks::TOWARDS, " " , createNullBlock ( " e " ) );
316323
317324 compiler.init ();
318325
@@ -335,9 +342,7 @@ TEST_F(MotionBlocksTest, PointTowards)
335342
336343 compiler.end ();
337344
338- ASSERT_EQ (
339- compiler.bytecode (),
340- std::vector<unsigned int >({ vm::OP_START, vm::OP_EXEC, 0 , vm::OP_EXEC, 1 , vm::OP_CONST, 0 , vm::OP_EXEC, 2 , vm::OP_NULL, vm::OP_NULL, vm::OP_STR_CONCAT, vm::OP_EXEC, 3 , vm::OP_HALT }));
345+ ASSERT_EQ (compiler.bytecode (), std::vector<unsigned int >({ vm::OP_START, vm::OP_EXEC, 0 , vm::OP_EXEC, 1 , vm::OP_CONST, 0 , vm::OP_EXEC, 2 , vm::OP_NULL, vm::OP_EXEC, 3 , vm::OP_HALT }));
341346 ASSERT_EQ (compiler.constValues ().size (), 1 );
342347 ASSERT_EQ (compiler.constValues ()[0 ].toDouble (), 5 );
343348}
@@ -526,11 +531,9 @@ TEST_F(MotionBlocksTest, GoTo)
526531 auto block3 = std::make_shared<Block>(" c" , " motion_goto" );
527532 addDropdownInput (block3, " TO" , MotionBlocks::TO, " Sprite2" );
528533
529- // go to (join "" "")
530- auto joinBlock = std::make_shared<Block>(" e" , " operator_join" );
531- joinBlock->setCompileFunction (&OperatorBlocks::compileJoin);
534+ // go to (null block)
532535 auto block4 = std::make_shared<Block>(" d" , " motion_goto" );
533- addDropdownInput (block4, " TO" , MotionBlocks::TO, " " , joinBlock );
536+ addDropdownInput (block4, " TO" , MotionBlocks::TO, " " , createNullBlock ( " e " ) );
534537
535538 compiler.init ();
536539
@@ -553,9 +556,7 @@ TEST_F(MotionBlocksTest, GoTo)
553556
554557 compiler.end ();
555558
556- ASSERT_EQ (
557- compiler.bytecode (),
558- std::vector<unsigned int >({ vm::OP_START, vm::OP_EXEC, 0 , vm::OP_EXEC, 1 , vm::OP_CONST, 0 , vm::OP_EXEC, 2 , vm::OP_NULL, vm::OP_NULL, vm::OP_STR_CONCAT, vm::OP_EXEC, 3 , vm::OP_HALT }));
559+ ASSERT_EQ (compiler.bytecode (), std::vector<unsigned int >({ vm::OP_START, vm::OP_EXEC, 0 , vm::OP_EXEC, 1 , vm::OP_CONST, 0 , vm::OP_EXEC, 2 , vm::OP_NULL, vm::OP_EXEC, 3 , vm::OP_HALT }));
559560 ASSERT_EQ (compiler.constValues ().size (), 1 );
560561 ASSERT_EQ (compiler.constValues ()[0 ].toDouble (), 5 );
561562}
@@ -762,12 +763,10 @@ TEST_F(MotionBlocksTest, GlideTo)
762763 addValueInput (block3, " SECS" , MotionBlocks::SECS, 3.25 );
763764 addDropdownInput (block3, " TO" , MotionBlocks::TO, " Sprite2" );
764765
765- // glide (6.5) secs to (join "" "")
766- auto joinBlock = std::make_shared<Block>(" e" , " operator_join" );
767- joinBlock->setCompileFunction (&OperatorBlocks::compileJoin);
766+ // glide (6.5) secs to (null block)
768767 auto block4 = std::make_shared<Block>(" d" , " motion_glideto" );
769768 addValueInput (block4, " SECS" , MotionBlocks::SECS, 6.5 );
770- addDropdownInput (block4, " TO" , MotionBlocks::TO, " " , joinBlock );
769+ addDropdownInput (block4, " TO" , MotionBlocks::TO, " " , createNullBlock ( " e " ) );
771770
772771 compiler.init ();
773772
@@ -821,8 +820,6 @@ TEST_F(MotionBlocksTest, GlideTo)
821820 vm::OP_CONST,
822821 4 ,
823822 vm::OP_NULL,
824- vm::OP_NULL,
825- vm::OP_STR_CONCAT,
826823 vm::OP_EXEC,
827824 3 ,
828825 vm::OP_EXEC,
0 commit comments