diff options
author | Juan Linietsky <reduzio@gmail.com> | 2016-08-31 17:58:51 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2016-08-31 17:58:51 -0300 |
commit | fc70824f7c6ab1944d54194f54b816e55671e177 (patch) | |
tree | bfb5645fa22c724d9f2f8724c809f6319ca51579 /modules/visual_script/visual_script_flow_control.cpp | |
parent | 5567350e1bf28ca9468b8321378f19e67ee03909 (diff) | |
download | redot-engine-fc70824f7c6ab1944d54194f54b816e55671e177.tar.gz |
More improvements to visual script..
fixed a bug of not saving when sub-nodes changed.
Diffstat (limited to 'modules/visual_script/visual_script_flow_control.cpp')
-rw-r--r-- | modules/visual_script/visual_script_flow_control.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
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<case_values.size();i++) { if (*p_inputs[0]==case_values[i]) { - return i; + return i|STEP_FLAG_PUSH_STACK_BIT; } } - return STEP_NO_ADVANCE_BIT; + return case_values.size(); } |