From 101049518a71eeece66bc94688ae69d9018cdeb0 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Sat, 12 Dec 2015 16:46:25 -0300 Subject: -force exporting of original script exported variables on overriden scripts -this works around the problem of scripts being reloaded and their properties lost -fixes #2958 --- scene/resources/packed_scene.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 863f2be699..f8283bb5ca 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -509,6 +509,19 @@ Error SceneState::_parse_node(Node *p_owner,Node *p_node,int p_parent_idx, Mapget_script_instance()) { + //if this is an overriden value by another script, save it anyway + //as the script change will erase it + //https://github.com/godotengine/godot/issues/2958 + + bool valid=false; + p_node->get_script_instance()->get_property_type(name,&valid); + if (valid) { + exists=false; + isdefault=false; + } + } + if (exists && bool(Variant::evaluate(Variant::OP_EQUAL,value,original))) { //exists and did not change -- cgit v1.2.3