From fc70824f7c6ab1944d54194f54b816e55671e177 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Wed, 31 Aug 2016 17:58:51 -0300 Subject: More improvements to visual script.. fixed a bug of not saving when sub-nodes changed. --- modules/visual_script/visual_script_flow_control.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'modules/visual_script/visual_script_flow_control.cpp') diff --git a/modules/visual_script/visual_script_flow_control.cpp b/modules/visual_script/visual_script_flow_control.cpp index 42cf4aab49..5066a4214d 100644 --- a/modules/visual_script/visual_script_flow_control.cpp +++ b/modules/visual_script/visual_script_flow_control.cpp @@ -605,7 +605,7 @@ VisualScriptSequence::VisualScriptSequence() { int VisualScriptSwitch::get_output_sequence_port_count() const { - return case_values.size(); + return case_values.size()+1; } bool VisualScriptSwitch::has_input_sequence_port() const{ @@ -625,6 +625,9 @@ int VisualScriptSwitch::get_output_value_port_count() const{ String VisualScriptSwitch::get_output_sequence_port_text(int p_port) const { + if (p_port==case_values.size()) + return "done"; + if (case_values[p_port].value.get_type()==Variant::NIL) return "null"; return case_values[p_port].value; @@ -664,20 +667,18 @@ public: virtual int step(const Variant** p_inputs,Variant** p_outputs,StartMode p_start_mode,Variant* p_working_mem,Variant::CallError& r_error,String& r_error_str) { - if (p_inputs[0]->get_type()!=Variant::INPUT_EVENT) { - r_error_str="Input value not of type event"; - r_error.error=Variant::CallError::CALL_ERROR_INVALID_METHOD; - return 0; + if (p_start_mode==START_MODE_CONTINUE_SEQUENCE) { + return case_values.size(); //exit } for(int i=0;i