diff options
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs b/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs index cdd912d..9301e52 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSPrimLinkable.cs | |||
@@ -58,7 +58,29 @@ public class BSPrimLinkable : BSPrimDisplaced | |||
58 | { | 58 | { |
59 | get | 59 | get |
60 | { | 60 | { |
61 | return base.IsIncomplete || Linkset.RebuildScheduled ; | 61 | // A linkset is incomplete when base objects are incomplete, waiting for assets, |
62 | // or being rebuilt. | ||
63 | bool ret = false; | ||
64 | if (base.IsIncomplete || Linkset.RebuildScheduled) | ||
65 | { | ||
66 | ret = true; | ||
67 | } | ||
68 | else | ||
69 | { | ||
70 | if (Linkset.IsRoot(this)) | ||
71 | { | ||
72 | Linkset.ForEachMember((member) => | ||
73 | { | ||
74 | if (member.PrimAssetState == PrimAssetCondition.Waiting) | ||
75 | { | ||
76 | ret = true; | ||
77 | return true; | ||
78 | } | ||
79 | return false; | ||
80 | }); | ||
81 | } | ||
82 | } | ||
83 | return ret; | ||
62 | } | 84 | } |
63 | } | 85 | } |
64 | 86 | ||