aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs6
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs12
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs8
-rw-r--r--OpenSim/Region/Physics/Meshing/Meshmerizer.cs2
-rw-r--r--OpenSim/Region/Physics/UbitMeshing/Meshmerizer.cs2
6 files changed, 28 insertions, 4 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
index 74701a5..f41e89e 100644
--- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
@@ -768,6 +768,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
768 { 768 {
769 g.RootPart.AttachPoint = g.RootPart.Shape.State; 769 g.RootPart.AttachPoint = g.RootPart.Shape.State;
770 g.RootPart.AttachOffset = g.AbsolutePosition; 770 g.RootPart.AttachOffset = g.AbsolutePosition;
771 g.RootPart.Shape.State = 0;
771 } 772 }
772 773
773 objlist.Add(g); 774 objlist.Add(g);
@@ -800,6 +801,7 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess
800 SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml); 801 SceneObjectGroup g = SceneObjectSerializer.FromOriginalXmlFormat(n.OuterXml);
801 g.RootPart.AttachPoint = g.RootPart.Shape.State; 802 g.RootPart.AttachPoint = g.RootPart.Shape.State;
802 g.RootPart.AttachOffset = g.AbsolutePosition; 803 g.RootPart.AttachOffset = g.AbsolutePosition;
804 g.RootPart.Shape.State = 0;
803 805
804 objlist.Add(g); 806 objlist.Add(g);
805 XmlElement el = (XmlElement)n; 807 XmlElement el = (XmlElement)n;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 3fd1f5e..47020af 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -1941,6 +1941,12 @@ namespace OpenSim.Region.Framework.Scenes
1941// "[SCENE]: Storing {0}, {1} in {2}", 1941// "[SCENE]: Storing {0}, {1} in {2}",
1942// Name, UUID, m_scene.RegionInfo.RegionName); 1942// Name, UUID, m_scene.RegionInfo.RegionName);
1943 1943
1944 if (RootPart.Shape.PCode == 9 && RootPart.Shape.State != 0)
1945 {
1946 RootPart.Shape.State = 0;
1947 ScheduleGroupForFullUpdate();
1948 }
1949
1944 SceneObjectGroup backup_group = Copy(false); 1950 SceneObjectGroup backup_group = Copy(false);
1945 backup_group.RootPart.Velocity = RootPart.Velocity; 1951 backup_group.RootPart.Velocity = RootPart.Velocity;
1946 backup_group.RootPart.Acceleration = RootPart.Acceleration; 1952 backup_group.RootPart.Acceleration = RootPart.Acceleration;
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 8ac09e9..1211792 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1076,6 +1076,11 @@ namespace OpenSim.Region.Framework.Scenes
1076 1076
1077 public void TeleportWithMomentum(Vector3 pos) 1077 public void TeleportWithMomentum(Vector3 pos)
1078 { 1078 {
1079 TeleportWithMomentum(pos, null);
1080 }
1081
1082 public void TeleportWithMomentum(Vector3 pos, Vector3? v)
1083 {
1079 bool isFlying = Flying; 1084 bool isFlying = Flying;
1080 Vector3 vel = Velocity; 1085 Vector3 vel = Velocity;
1081 RemoveFromPhysicalScene(); 1086 RemoveFromPhysicalScene();
@@ -1083,7 +1088,12 @@ namespace OpenSim.Region.Framework.Scenes
1083 AbsolutePosition = pos; 1088 AbsolutePosition = pos;
1084 AddToPhysicalScene(isFlying); 1089 AddToPhysicalScene(isFlying);
1085 if (PhysicsActor != null) 1090 if (PhysicsActor != null)
1086 PhysicsActor.SetMomentum(vel); 1091 {
1092 if (v.HasValue)
1093 PhysicsActor.SetMomentum((Vector3)v);
1094 else
1095 PhysicsActor.SetMomentum(vel);
1096 }
1087 1097
1088 SendTerseUpdateToAllClients(); 1098 SendTerseUpdateToAllClients();
1089 } 1099 }
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
index 68f21c8..ebf5e84 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCModule.cs
@@ -323,9 +323,15 @@ namespace OpenSim.Region.OptionalModules.World.NPC
323 { 323 {
324 NPCAvatar av; 324 NPCAvatar av;
325 if (m_avatars.TryGetValue(npcID, out av)) 325 if (m_avatars.TryGetValue(npcID, out av))
326 {
327 if (npcID == callerID)
328 return true;
326 return CheckPermissions(av, callerID); 329 return CheckPermissions(av, callerID);
330 }
327 else 331 else
332 {
328 return false; 333 return false;
334 }
329 } 335 }
330 } 336 }
331 337
@@ -337,7 +343,7 @@ namespace OpenSim.Region.OptionalModules.World.NPC
337 /// <returns>true if they do, false if they don't.</returns> 343 /// <returns>true if they do, false if they don't.</returns>
338 private bool CheckPermissions(NPCAvatar av, UUID callerID) 344 private bool CheckPermissions(NPCAvatar av, UUID callerID)
339 { 345 {
340 return callerID == UUID.Zero || av.OwnerID == UUID.Zero || av.OwnerID == callerID; 346 return callerID == UUID.Zero || av.OwnerID == UUID.Zero || av.OwnerID == callerID || av.AgentId == callerID;
341 } 347 }
342 } 348 }
343} 349}
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 75fa1ef..825b858 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -335,7 +335,7 @@ namespace OpenSim.Region.Physics.Meshing
335 335
336 if (primShape.SculptData.Length <= 0) 336 if (primShape.SculptData.Length <= 0)
337 { 337 {
338 m_log.ErrorFormat("[MESH]: asset data for {0} is zero length", primName); 338 m_log.InfoFormat("[MESH]: asset data for {0} is zero length", primName);
339 return false; 339 return false;
340 } 340 }
341 341
diff --git a/OpenSim/Region/Physics/UbitMeshing/Meshmerizer.cs b/OpenSim/Region/Physics/UbitMeshing/Meshmerizer.cs
index 8e903e8..f002bba 100644
--- a/OpenSim/Region/Physics/UbitMeshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/UbitMeshing/Meshmerizer.cs
@@ -339,7 +339,7 @@ namespace OpenSim.Region.Physics.Meshing
339 339
340 if (primShape.SculptData.Length <= 0) 340 if (primShape.SculptData.Length <= 0)
341 { 341 {
342 m_log.ErrorFormat("[MESH]: asset data for {0} is zero length", primName); 342 m_log.InfoFormat("[MESH]: asset data for {0} is zero length", primName);
343 return false; 343 return false;
344 } 344 }
345 345