Browse Source

Fix Reset on Save corrupt poses if scene has multiple Skeletons

Silc Lizard (Tokage) Renew 4 weeks ago
parent
commit
8df06279c6
2 changed files with 5 additions and 2 deletions
  1. 3 0
      scene/3d/modifier_bone_target_3d.h
  2. 2 2
      scene/3d/skeleton_3d.cpp

+ 3 - 0
scene/3d/modifier_bone_target_3d.h

@@ -45,6 +45,9 @@ protected:
 	virtual void _process_modification(double p_delta) override;
 
 public:
+#ifdef TOOLS_ENABLED
+	virtual bool is_processed_on_saving() const override { return true; }
+#endif
 	void set_bone_name(const String &p_bone_name);
 	String get_bone_name() const;
 	void set_bone(int p_bone);

+ 2 - 2
scene/3d/skeleton_3d.cpp

@@ -317,11 +317,11 @@ void Skeleton3D::_notification(int p_what) {
 			Bone *bonesptr = bones.ptr();
 			int len = bones.size();
 
-			thread_local LocalVector<bool> bone_global_pose_dirty_backup;
+			LocalVector<bool> bone_global_pose_dirty_backup;
 
 			// Process modifiers.
 
-			thread_local LocalVector<BonePoseBackup> bones_backup;
+			LocalVector<BonePoseBackup> bones_backup;
 			_find_modifiers();
 			if (!modifiers.is_empty()) {
 				bones_backup.resize(bones.size());