Browse Source

Do not clone temporary node or component. fix issue #589

aster2013 11 years ago
parent
commit
23b53e7ac5
1 changed files with 6 additions and 0 deletions
  1. 6 0
      Source/Urho3D/Scene/Node.cpp

+ 6 - 0
Source/Urho3D/Scene/Node.cpp

@@ -1754,6 +1754,9 @@ Node* Node::CloneRecursive(Node* parent, SceneResolver& resolver, CreateMode mod
     for (Vector<SharedPtr<Component> >::ConstIterator i = components_.Begin(); i != components_.End(); ++i)
     {
         Component* component = *i;
+        if (component->IsTemporary())
+            continue;
+
         Component* cloneComponent = cloneNode->CloneComponent(component,
             (mode == REPLICATED && component->GetID() < FIRST_LOCAL_ID) ? REPLICATED : LOCAL, 0);
         if (cloneComponent)
@@ -1764,6 +1767,9 @@ Node* Node::CloneRecursive(Node* parent, SceneResolver& resolver, CreateMode mod
     for (Vector<SharedPtr<Node> >::ConstIterator i = children_.Begin(); i != children_.End(); ++i)
     {
         Node* node = *i;
+        if (node->IsTemporary())
+            continue;
+
         node->CloneRecursive(cloneNode, resolver, mode);
     }