pit Posted November 3, 2010 Share Posted November 3, 2010 In tab transform spline name is always empty. It causes spline unloading when one try to switch tabs (to node tab for example) and may be in some other cases. Anyway it very difficult to edit WorldTransform. Solution. Change code in function WorldTransform::create (file: core/editor/editor_creator_worlds.h, line 429) Original: void create() { if(dialog_creator("WorldTransform parameters")) { Node node = NULL; if(transform_tab.isCurrentTab()) { if(dialogFileSpline("Select spline to load",transform_name) == 0) return; node = new WorldTransform(); if(WorldTransform(node).load(transform_name) == 0) { dialogMessage("Error"); delete node; return; } WorldTransform(node).setRadius(transform_radius.value); node = class_remove(node); } else if(transform_bone_tab.isCurrentTab()) { node = class_remove(new WorldTransformBone(transform_bone_bone.value)); WorldTransformBone(node).setRadius(transform_bone_radius.value); } else { throw("WorldTransformBone::create(): unknown transform\n"); } set_node(node,"core/editor/gui/world_transform.png"); } } Modified: void create() { if(dialog_creator("WorldTransform parameters")) { Node node = NULL; if(transform_tab.isCurrentTab()) { if(dialogFileSpline("Select spline to load",transform_name) == 0) return; node = new WorldTransform(); if(WorldTransform(node).load(transform_name) == 0) { dialogMessage("Error"); delete node; return; } WorldTransform(node).setSplineName(transform_name); //fixes bug WorldTransform(node).setRadius(transform_radius.value); node = class_remove(node); } else if(transform_bone_tab.isCurrentTab()) { node = class_remove(new WorldTransformBone(transform_bone_bone.value)); WorldTransformBone(node).setRadius(transform_bone_radius.value); } else { throw("WorldTransformBone::create(): unknown transform\n"); } set_node(node,"core/editor/gui/world_transform.png"); } } Link to comment
Recommended Posts