diff --git a/Engine/source/console/compiledEval.cpp b/Engine/source/console/compiledEval.cpp index e96999dfd..c8b1547a1 100644 --- a/Engine/source/console/compiledEval.cpp +++ b/Engine/source/console/compiledEval.cpp @@ -226,7 +226,7 @@ static void setFieldComponent(SimObject* object, StringTableEntry field, const c if (object && field) prevVal = object->getDataField(field, array); - if (currentLocalRegister != -1) + else if (currentLocalRegister != -1) prevVal = gEvalState.getLocalStringVariable(currentLocalRegister); // Set the value on a variable. else if (gEvalState.currentVariable) diff --git a/Engine/source/console/test/ScriptTest.cpp b/Engine/source/console/test/ScriptTest.cpp index 73b9b1e47..d42c4fe73 100644 --- a/Engine/source/console/test/ScriptTest.cpp +++ b/Engine/source/console/test/ScriptTest.cpp @@ -927,6 +927,29 @@ TEST(Script, MiscRegressions) )"); ASSERT_EQ(regression2.getInt(), 400); + + ConsoleValue regression3 = RunScript(R"( + function doTest() + { + %button = new GuiIconButtonCtrl() + { + active = true; + }; + + %button.setExtent(120, 20); + + %button.setExtent("120 20"); + + %button.extent = "120 20"; + + %button.extent.x = 120; + %button.extent.y = 20; + return %button.extent; + } + return doTest(); + )"); + + ASSERT_STREQ(regression3.getString(), "120 20"); } #endif