aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs11
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs14
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs5
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs8
4 files changed, 31 insertions, 7 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs b/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs
index 3d8e8be..65ae445 100644
--- a/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs
+++ b/OpenSim/Region/Framework/Scenes/Animation/AnimationSet.cs
@@ -45,6 +45,11 @@ namespace OpenSim.Region.Framework.Scenes.Animation
45 private OpenSim.Framework.Animation m_defaultAnimation = new OpenSim.Framework.Animation(); 45 private OpenSim.Framework.Animation m_defaultAnimation = new OpenSim.Framework.Animation();
46 private List<OpenSim.Framework.Animation> m_animations = new List<OpenSim.Framework.Animation>(); 46 private List<OpenSim.Framework.Animation> m_animations = new List<OpenSim.Framework.Animation>();
47 47
48 public OpenSim.Framework.Animation DefaultAnimation
49 {
50 get { return m_defaultAnimation; }
51 }
52
48 public OpenSim.Framework.Animation ImplicitDefaultAnimation 53 public OpenSim.Framework.Animation ImplicitDefaultAnimation
49 { 54 {
50 get { return m_implicitDefaultAnimation; } 55 get { return m_implicitDefaultAnimation; }
@@ -126,6 +131,12 @@ namespace OpenSim.Region.Framework.Scenes.Animation
126 return false; 131 return false;
127 } 132 }
128 133
134 // Called from serialization only
135 public void SetImplicitDefaultAnimation(UUID animID, int sequenceNum, UUID objectID)
136 {
137 m_implicitDefaultAnimation = new OpenSim.Framework.Animation(animID, sequenceNum, objectID);
138 }
139
129 protected bool ResetDefaultAnimation() 140 protected bool ResetDefaultAnimation()
130 { 141 {
131 return TrySetDefaultAnimation("STAND", 1, UUID.Zero); 142 return TrySetDefaultAnimation("STAND", 1, UUID.Zero);
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 2066536..4282b46 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1748,15 +1748,19 @@ namespace OpenSim.Region.Framework.Scenes
1748 1748
1749 private void CheckAtTargets() 1749 private void CheckAtTargets()
1750 { 1750 {
1751 List<SceneObjectGroup> objs = new List<SceneObjectGroup>(); 1751 List<SceneObjectGroup> objs = null;
1752
1752 lock (m_groupsWithTargets) 1753 lock (m_groupsWithTargets)
1753 { 1754 {
1754 foreach (SceneObjectGroup grp in m_groupsWithTargets.Values) 1755 if (m_groupsWithTargets.Count != 0)
1755 objs.Add(grp); 1756 objs = new List<SceneObjectGroup>(m_groupsWithTargets.Values);
1756 } 1757 }
1757 1758
1758 foreach (SceneObjectGroup entry in objs) 1759 if (objs != null)
1759 entry.checkAtTargets(); 1760 {
1761 foreach (SceneObjectGroup entry in objs)
1762 entry.checkAtTargets();
1763 }
1760 } 1764 }
1761 1765
1762 /// <summary> 1766 /// <summary>
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 285d1ae..f9c7935 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3276,7 +3276,8 @@ namespace OpenSim.Region.Framework.Scenes
3276 cAgent.Anims = Animator.Animations.ToArray(); 3276 cAgent.Anims = Animator.Animations.ToArray();
3277 } 3277 }
3278 catch { } 3278 catch { }
3279 cAgent.DefaultAnim = Animator.Animations.ImplicitDefaultAnimation; 3279 cAgent.DefaultAnim = Animator.Animations.DefaultAnimation;
3280 cAgent.AnimState = Animator.Animations.ImplicitDefaultAnimation;
3280 3281
3281 if (Scene.AttachmentsModule != null) 3282 if (Scene.AttachmentsModule != null)
3282 Scene.AttachmentsModule.CopyAttachments(this, cAgent); 3283 Scene.AttachmentsModule.CopyAttachments(this, cAgent);
@@ -3353,6 +3354,8 @@ namespace OpenSim.Region.Framework.Scenes
3353 Animator.Animations.FromArray(cAgent.Anims); 3354 Animator.Animations.FromArray(cAgent.Anims);
3354 if (cAgent.DefaultAnim != null) 3355 if (cAgent.DefaultAnim != null)
3355 Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero); 3356 Animator.Animations.SetDefaultAnimation(cAgent.DefaultAnim.AnimID, cAgent.DefaultAnim.SequenceNum, UUID.Zero);
3357 if (cAgent.AnimState != null)
3358 Animator.Animations.SetImplicitDefaultAnimation(cAgent.AnimState.AnimID, cAgent.AnimState.SequenceNum, UUID.Zero);
3356 3359
3357 if (Scene.AttachmentsModule != null) 3360 if (Scene.AttachmentsModule != null)
3358 Scene.AttachmentsModule.CopyAttachments(cAgent, this); 3361 Scene.AttachmentsModule.CopyAttachments(cAgent, this);
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index b5beffc..a59f63f 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -3357,7 +3357,7 @@ Console.WriteLine(" JointCreateFixed");
3357 3357
3358 private void MeshAssetReceived(AssetBase asset) 3358 private void MeshAssetReceived(AssetBase asset)
3359 { 3359 {
3360 if (asset.Data != null && asset.Data.Length > 0) 3360 if (asset != null && asset.Data != null && asset.Data.Length > 0)
3361 { 3361 {
3362 if (!_pbs.SculptEntry) 3362 if (!_pbs.SculptEntry)
3363 return; 3363 return;
@@ -3370,6 +3370,12 @@ Console.WriteLine(" JointCreateFixed");
3370 m_taintshape = true; 3370 m_taintshape = true;
3371 _parent_scene.AddPhysicsActorTaint(this); 3371 _parent_scene.AddPhysicsActorTaint(this);
3372 } 3372 }
3373 else
3374 {
3375 m_log.WarnFormat(
3376 "[ODE PRIM]: Could not get mesh/sculpt asset {0} for {1} at {2} in {3}",
3377 _pbs.SculptTexture, Name, _position, _parent_scene.Name);
3378 }
3373 } 3379 }
3374 } 3380 }
3375} 3381}