diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs index 7179a6d..38d1f88 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs | |||
@@ -66,7 +66,7 @@ public class BSPrimLinkable : BSPrimDisplaced | |||
66 | 66 | ||
67 | public override void Destroy() | 67 | public override void Destroy() |
68 | { | 68 | { |
69 | Linkset = Linkset.RemoveMeFromLinkset(this); | 69 | Linkset = Linkset.RemoveMeFromLinkset(this, false /* inTaintTime */); |
70 | base.Destroy(); | 70 | base.Destroy(); |
71 | } | 71 | } |
72 | 72 | ||
@@ -94,7 +94,7 @@ public class BSPrimLinkable : BSPrimDisplaced | |||
94 | BSPhysObject parentBefore = Linkset.LinksetRoot; // DEBUG | 94 | BSPhysObject parentBefore = Linkset.LinksetRoot; // DEBUG |
95 | int childrenBefore = Linkset.NumberOfChildren; // DEBUG | 95 | int childrenBefore = Linkset.NumberOfChildren; // DEBUG |
96 | 96 | ||
97 | Linkset = Linkset.RemoveMeFromLinkset(this); | 97 | Linkset = Linkset.RemoveMeFromLinkset(this, false /* inTaintTime*/); |
98 | 98 | ||
99 | DetailLog("{0},BSPrimLinkset.delink,parentBefore={1},childrenBefore={2},parentAfter={3},childrenAfter={4}, ", | 99 | DetailLog("{0},BSPrimLinkset.delink,parentBefore={1},childrenBefore={2},parentAfter={3},childrenAfter={4}, ", |
100 | LocalID, parentBefore.LocalID, childrenBefore, Linkset.LinksetRoot.LocalID, Linkset.NumberOfChildren); | 100 | LocalID, parentBefore.LocalID, childrenBefore, Linkset.LinksetRoot.LocalID, Linkset.NumberOfChildren); |
@@ -240,6 +240,8 @@ public class BSPrimLinkable : BSPrimDisplaced | |||
240 | bool ret = false; | 240 | bool ret = false; |
241 | if (LinksetType != newType) | 241 | if (LinksetType != newType) |
242 | { | 242 | { |
243 | DetailLog("{0},BSPrimLinkset.ConvertLinkset,oldT={1},newT={2}", LocalID, LinksetType, newType); | ||
244 | |||
243 | // Set the implementation type first so the call to BSLinkset.Factory gets the new type. | 245 | // Set the implementation type first so the call to BSLinkset.Factory gets the new type. |
244 | this.LinksetType = newType; | 246 | this.LinksetType = newType; |
245 | 247 | ||
@@ -263,7 +265,10 @@ public class BSPrimLinkable : BSPrimDisplaced | |||
263 | // Remove the children from the old linkset and add to the new (will be a new instance from the factory) | 265 | // Remove the children from the old linkset and add to the new (will be a new instance from the factory) |
264 | foreach (BSPrimLinkable child in children) | 266 | foreach (BSPrimLinkable child in children) |
265 | { | 267 | { |
266 | oldLinkset.RemoveMeFromLinkset(child); | 268 | oldLinkset.RemoveMeFromLinkset(child, true /*inTaintTime*/); |
269 | } | ||
270 | foreach (BSPrimLinkable child in children) | ||
271 | { | ||
267 | newLinkset.AddMeToLinkset(child); | 272 | newLinkset.AddMeToLinkset(child); |
268 | child.Linkset = newLinkset; | 273 | child.Linkset = newLinkset; |
269 | } | 274 | } |