diff options
Diffstat (limited to 'OpenSim/Region/Environment')
5 files changed, 66 insertions, 48 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 52d0f1c..877bfe5 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -491,7 +491,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
491 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 491 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
492 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); | 492 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); |
493 | 493 | ||
494 | rootPart.doPhysicsPropertyUpdate(UsePhysics, true); | 494 | rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
495 | 495 | ||
496 | } | 496 | } |
497 | rootPart.ScheduleFullUpdate(); | 497 | rootPart.ScheduleFullUpdate(); |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index cc0f3e1..f2eb486 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -765,7 +765,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
765 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 765 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
766 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 766 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
767 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); | 767 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); |
768 | rootPart.doPhysicsPropertyUpdate(UsePhysics, true); | 768 | rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
769 | } | 769 | } |
770 | MainLog.Instance.Verbose("Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)"); | 770 | MainLog.Instance.Verbose("Loaded " + PrimsFromDB.Count.ToString() + " SceneObject(s)"); |
771 | } | 771 | } |
@@ -869,7 +869,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
869 | new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), | 869 | new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), |
870 | new Quaternion(), UsePhysics); | 870 | new Quaternion(), UsePhysics); |
871 | // subscribe to physics events. | 871 | // subscribe to physics events. |
872 | rootPart.doPhysicsPropertyUpdate(UsePhysics, true); | 872 | rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
873 | 873 | ||
874 | } | 874 | } |
875 | } | 875 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index cc0b8ba..1b55a49 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -264,6 +264,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
264 | reader.ReadStartElement("SceneObjectGroup"); | 264 | reader.ReadStartElement("SceneObjectGroup"); |
265 | reader.ReadStartElement("RootPart"); | 265 | reader.ReadStartElement("RootPart"); |
266 | m_rootPart = SceneObjectPart.FromXml(reader); | 266 | m_rootPart = SceneObjectPart.FromXml(reader); |
267 | |||
267 | reader.ReadEndElement(); | 268 | reader.ReadEndElement(); |
268 | 269 | ||
269 | while (reader.Read()) | 270 | while (reader.Read()) |
@@ -274,10 +275,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
274 | if (reader.Name == "Part") | 275 | if (reader.Name == "Part") |
275 | { | 276 | { |
276 | reader.Read(); | 277 | reader.Read(); |
277 | SceneObjectPart Part = SceneObjectPart.FromXml(reader); | 278 | SceneObjectPart part = SceneObjectPart.FromXml(reader); |
278 | Part.LocalID = m_scene.PrimIDAllocate(); | 279 | part.LocalID = m_scene.PrimIDAllocate(); |
279 | AddPart(Part); | 280 | AddPart(part); |
280 | Part.RegionHandle = m_regionHandle; | 281 | part.RegionHandle = m_regionHandle; |
282 | |||
283 | part.ApplyPermissions(); | ||
284 | part.ApplyPhysics(); | ||
281 | } | 285 | } |
282 | break; | 286 | break; |
283 | case XmlNodeType.EndElement: | 287 | case XmlNodeType.EndElement: |
@@ -286,8 +290,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
286 | } | 290 | } |
287 | reader.Close(); | 291 | reader.Close(); |
288 | sr.Close(); | 292 | sr.Close(); |
289 | m_rootPart.SetParent(this); | 293 | |
290 | m_parts.Add(m_rootPart.UUID, m_rootPart); | 294 | AddPart( m_rootPart ); |
295 | |||
291 | m_rootPart.LocalID = m_scene.PrimIDAllocate(); | 296 | m_rootPart.LocalID = m_scene.PrimIDAllocate(); |
292 | m_rootPart.ParentID = 0; | 297 | m_rootPart.ParentID = 0; |
293 | m_rootPart.RegionHandle = m_regionHandle; | 298 | m_rootPart.RegionHandle = m_regionHandle; |
@@ -524,7 +529,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
524 | new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, | 529 | new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, |
525 | dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z), | 530 | dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z), |
526 | dupe.RootPart.PhysActor.IsPhysical); | 531 | dupe.RootPart.PhysActor.IsPhysical); |
527 | dupe.RootPart.doPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); | 532 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); |
528 | 533 | ||
529 | } | 534 | } |
530 | // Now we've made a copy that replaces this one, we need to | 535 | // Now we've made a copy that replaces this one, we need to |
@@ -906,7 +911,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
906 | new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, | 911 | new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, |
907 | linkPart.RotationOffset.Y, linkPart.RotationOffset.Z), | 912 | linkPart.RotationOffset.Y, linkPart.RotationOffset.Z), |
908 | m_rootPart.PhysActor.IsPhysical); | 913 | m_rootPart.PhysActor.IsPhysical); |
909 | m_rootPart.doPhysicsPropertyUpdate(m_rootPart.PhysActor.IsPhysical, true); | 914 | m_rootPart.DoPhysicsPropertyUpdate(m_rootPart.PhysActor.IsPhysical, true); |
910 | 915 | ||
911 | } | 916 | } |
912 | 917 | ||
@@ -1216,7 +1221,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1216 | m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z), | 1221 | m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z), |
1217 | m_rootPart.PhysActor.IsPhysical); | 1222 | m_rootPart.PhysActor.IsPhysical); |
1218 | bool UsePhysics = ((m_rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 1223 | bool UsePhysics = ((m_rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); |
1219 | m_rootPart.doPhysicsPropertyUpdate(UsePhysics, true); | 1224 | m_rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
1220 | 1225 | ||
1221 | } | 1226 | } |
1222 | } | 1227 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index d8e2143..e2e97c5 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -74,7 +74,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
74 | [XmlIgnore] public uint TimeStampTerse = 0; | 74 | [XmlIgnore] public uint TimeStampTerse = 0; |
75 | [XmlIgnore] public uint TimeStampLastActivity = 0; // Will be used for AutoReturn | 75 | [XmlIgnore] public uint TimeStampLastActivity = 0; // Will be used for AutoReturn |
76 | 76 | ||
77 | protected SceneObjectGroup m_parentGroup; | ||
78 | 77 | ||
79 | /// <summary> | 78 | /// <summary> |
80 | /// Only used internally to schedule client updates | 79 | /// Only used internally to schedule client updates |
@@ -386,6 +385,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
386 | get { return OwnerID; } | 385 | get { return OwnerID; } |
387 | } | 386 | } |
388 | 387 | ||
388 | // FIXME, TODO, ERROR: 'ParentGroup' can't be in here, move it out. | ||
389 | protected SceneObjectGroup m_parentGroup; | ||
389 | public SceneObjectGroup ParentGroup | 390 | public SceneObjectGroup ParentGroup |
390 | { | 391 | { |
391 | get { return m_parentGroup; } | 392 | get { return m_parentGroup; } |
@@ -533,7 +534,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
533 | } | 534 | } |
534 | 535 | ||
535 | bool UsePhysics = ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 536 | bool UsePhysics = ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); |
536 | doPhysicsPropertyUpdate(UsePhysics, true); | 537 | DoPhysicsPropertyUpdate(UsePhysics, true); |
537 | ScheduleFullUpdate(); | 538 | ScheduleFullUpdate(); |
538 | } | 539 | } |
539 | 540 | ||
@@ -547,28 +548,33 @@ namespace OpenSim.Region.Environment.Scenes | |||
547 | public static SceneObjectPart FromXml(XmlReader xmlReader) | 548 | public static SceneObjectPart FromXml(XmlReader xmlReader) |
548 | { | 549 | { |
549 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); | 550 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); |
550 | SceneObjectPart newobject = (SceneObjectPart) serializer.Deserialize(xmlReader); | 551 | SceneObjectPart newobject = (SceneObjectPart) serializer.Deserialize(xmlReader); |
552 | return newobject; | ||
553 | } | ||
554 | |||
555 | public void ApplyPhysics() | ||
556 | { | ||
557 | bool UsePhysics = ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | ||
558 | DoPhysicsPropertyUpdate(UsePhysics, true); | ||
559 | } | ||
551 | 560 | ||
552 | if (!newobject.ParentGroup.m_scene.PermissionsMngr.BypassPermissions) | 561 | public void ApplyPermissions() |
562 | { | ||
563 | if (!ParentGroup.m_scene.PermissionsMngr.BypassPermissions) | ||
553 | { | 564 | { |
554 | newobject.EveryoneMask = newobject.ObjectFlags; | 565 | EveryoneMask = ObjectFlags; |
555 | newobject.EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectYouOwner; | 566 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectYouOwner; |
556 | newobject.EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; | 567 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; |
557 | newobject.EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectCopy; | 568 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectCopy; |
558 | newobject.EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectModify; | 569 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectModify; |
559 | newobject.EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectMove; | 570 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectMove; |
560 | newobject.EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectAnyOwner; | 571 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectAnyOwner; |
561 | newobject.EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectYouOfficer; | 572 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectYouOfficer; |
562 | } | 573 | } |
563 | else | 574 | else |
564 | { | 575 | { |
565 | newobject.EveryoneMask = newobject.ObjectFlags; | 576 | EveryoneMask = ObjectFlags; |
566 | } | 577 | } |
567 | |||
568 | bool UsePhysics = ((newobject.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | ||
569 | newobject.doPhysicsPropertyUpdate(UsePhysics, true); | ||
570 | |||
571 | return newobject; | ||
572 | } | 578 | } |
573 | 579 | ||
574 | /// <summary> | 580 | /// <summary> |
@@ -719,7 +725,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
719 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); | 725 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); |
720 | dupe.Shape.ExtraParams = extraP; | 726 | dupe.Shape.ExtraParams = extraP; |
721 | bool UsePhysics = ((dupe.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 727 | bool UsePhysics = ((dupe.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); |
722 | dupe.doPhysicsPropertyUpdate(UsePhysics, true); | 728 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); |
723 | 729 | ||
724 | return dupe; | 730 | return dupe; |
725 | } | 731 | } |
@@ -961,10 +967,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
961 | public void UpdatePrimFlags(ushort type, bool inUse, byte[] data) | 967 | public void UpdatePrimFlags(ushort type, bool inUse, byte[] data) |
962 | { | 968 | { |
963 | bool hasPrim = false; | 969 | bool hasPrim = false; |
964 | bool UsePhysics = false; | 970 | bool usePhysics = false; |
965 | bool IsTemporary = false; | 971 | bool IsTemporary = false; |
966 | bool IsPhantom = false; | 972 | bool IsPhantom = false; |
967 | bool CastsShadows = false; | 973 | bool castsShadows = false; |
968 | bool wasUsingPhysics = ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 974 | bool wasUsingPhysics = ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); |
969 | //bool IsLocked = false; | 975 | //bool IsLocked = false; |
970 | int i = 0; | 976 | int i = 0; |
@@ -974,11 +980,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
974 | { | 980 | { |
975 | i += 46; | 981 | i += 46; |
976 | //IsLocked = (data[i++] != 0) ? true : false; | 982 | //IsLocked = (data[i++] != 0) ? true : false; |
977 | UsePhysics = ((data[i++] != 0) && m_parentGroup.m_scene.m_physicalPrim) ? true : false; | 983 | usePhysics = ((data[i++] != 0) && m_parentGroup.m_scene.m_physicalPrim) ? true : false; |
978 | //System.Console.WriteLine("U" + packet.ToBytes().Length.ToString()); | 984 | //System.Console.WriteLine("U" + packet.ToBytes().Length.ToString()); |
979 | IsTemporary = (data[i++] != 0) ? true : false; | 985 | IsTemporary = (data[i++] != 0) ? true : false; |
980 | IsPhantom = (data[i++] != 0) ? true : false; | 986 | IsPhantom = (data[i++] != 0) ? true : false; |
981 | CastsShadows = (data[i++] != 0) ? true : false; | 987 | castsShadows = (data[i++] != 0) ? true : false; |
982 | } | 988 | } |
983 | catch (Exception) | 989 | catch (Exception) |
984 | { | 990 | { |
@@ -986,12 +992,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
986 | //Silently ignore it - TODO: FIXME Quick | 992 | //Silently ignore it - TODO: FIXME Quick |
987 | } | 993 | } |
988 | 994 | ||
989 | if (UsePhysics ) | 995 | if (usePhysics ) |
990 | { | 996 | { |
991 | AddFlag(LLObject.ObjectFlags.Physics); | 997 | AddFlag(LLObject.ObjectFlags.Physics); |
992 | if (!wasUsingPhysics) | 998 | if (!wasUsingPhysics) |
993 | { | 999 | { |
994 | doPhysicsPropertyUpdate(UsePhysics,false); | 1000 | DoPhysicsPropertyUpdate(usePhysics,false); |
995 | } | 1001 | } |
996 | 1002 | ||
997 | } | 1003 | } |
@@ -1000,7 +1006,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1000 | RemFlag(LLObject.ObjectFlags.Physics); | 1006 | RemFlag(LLObject.ObjectFlags.Physics); |
1001 | if (wasUsingPhysics) | 1007 | if (wasUsingPhysics) |
1002 | { | 1008 | { |
1003 | doPhysicsPropertyUpdate(UsePhysics, false); | 1009 | DoPhysicsPropertyUpdate(usePhysics, false); |
1004 | } | 1010 | } |
1005 | } | 1011 | } |
1006 | 1012 | ||
@@ -1030,13 +1036,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
1030 | AbsolutePosition.Z), | 1036 | AbsolutePosition.Z), |
1031 | new PhysicsVector(Scale.X, Scale.Y, Scale.Z), | 1037 | new PhysicsVector(Scale.X, Scale.Y, Scale.Z), |
1032 | new Quaternion(RotationOffset.W, RotationOffset.X, | 1038 | new Quaternion(RotationOffset.W, RotationOffset.X, |
1033 | RotationOffset.Y, RotationOffset.Z), UsePhysics); | 1039 | RotationOffset.Y, RotationOffset.Z), usePhysics); |
1034 | doPhysicsPropertyUpdate(UsePhysics, true); | 1040 | DoPhysicsPropertyUpdate(usePhysics, true); |
1035 | } | 1041 | } |
1036 | else | 1042 | else |
1037 | { | 1043 | { |
1038 | PhysActor.IsPhysical = UsePhysics; | 1044 | PhysActor.IsPhysical = usePhysics; |
1039 | doPhysicsPropertyUpdate(UsePhysics,false); | 1045 | DoPhysicsPropertyUpdate(usePhysics,false); |
1040 | } | 1046 | } |
1041 | } | 1047 | } |
1042 | 1048 | ||
@@ -1051,7 +1057,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1051 | // System.Console.WriteLine("Update: PHY:" + UsePhysics.ToString() + ", T:" + IsTemporary.ToString() + ", PHA:" + IsPhantom.ToString() + " S:" + CastsShadows.ToString()); | 1057 | // System.Console.WriteLine("Update: PHY:" + UsePhysics.ToString() + ", T:" + IsTemporary.ToString() + ", PHA:" + IsPhantom.ToString() + " S:" + CastsShadows.ToString()); |
1052 | ScheduleFullUpdate(); | 1058 | ScheduleFullUpdate(); |
1053 | } | 1059 | } |
1054 | public void doPhysicsPropertyUpdate(bool UsePhysics, bool isNew) | 1060 | public void DoPhysicsPropertyUpdate(bool UsePhysics, bool isNew) |
1055 | { | 1061 | { |
1056 | 1062 | ||
1057 | if (PhysActor != null) | 1063 | if (PhysActor != null) |
@@ -1271,13 +1277,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
1271 | { | 1277 | { |
1272 | clientFlags = ObjectFlags; | 1278 | clientFlags = ObjectFlags; |
1273 | if (!ParentGroup.m_scene.PermissionsMngr.AnyoneCanCopyPermission(remoteClient.AgentId, this.ParentGroup.UUID)) | 1279 | if (!ParentGroup.m_scene.PermissionsMngr.AnyoneCanCopyPermission(remoteClient.AgentId, this.ParentGroup.UUID)) |
1274 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectCopy; | 1280 | { |
1281 | clientFlags = (clientFlags &= ~(uint) LLObject.ObjectFlags.ObjectCopy); | ||
1282 | } | ||
1283 | |||
1275 | if (!ParentGroup.m_scene.PermissionsMngr.AnyoneCanMovePermission(remoteClient.AgentId, this.ParentGroup.UUID)) | 1284 | if (!ParentGroup.m_scene.PermissionsMngr.AnyoneCanMovePermission(remoteClient.AgentId, this.ParentGroup.UUID)) |
1276 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectMove; | 1285 | { |
1286 | clientFlags = clientFlags &= ~(uint) LLObject.ObjectFlags.ObjectMove; | ||
1287 | } | ||
1277 | 1288 | ||
1278 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectModify; | 1289 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectModify; |
1279 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.AllowInventoryDrop; | 1290 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.AllowInventoryDrop; |
1280 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; | 1291 | clientFlags = clientFlags &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; |
1292 | |||
1293 | // TODO, FIXME, ERROR : This whole block amounts to moot because of this. | ||
1281 | clientFlags = EveryoneMask; | 1294 | clientFlags = EveryoneMask; |
1282 | } | 1295 | } |
1283 | } | 1296 | } |
@@ -1372,7 +1385,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1372 | { | 1385 | { |
1373 | OpenSim.Framework.Console.MainLog.Instance.Verbose("PHYSICS", "Physical Object went out of bounds."); | 1386 | OpenSim.Framework.Console.MainLog.Instance.Verbose("PHYSICS", "Physical Object went out of bounds."); |
1374 | RemFlag(LLObject.ObjectFlags.Physics); | 1387 | RemFlag(LLObject.ObjectFlags.Physics); |
1375 | doPhysicsPropertyUpdate(false,true); | 1388 | DoPhysicsPropertyUpdate(false,true); |
1376 | m_parentGroup.m_scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); | 1389 | m_parentGroup.m_scene.PhysicsScene.AddPhysicsActorTaint(PhysActor); |
1377 | 1390 | ||
1378 | 1391 | ||
diff --git a/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs b/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs index e9c0124..40f8b96 100644 --- a/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs +++ b/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs | |||
@@ -55,7 +55,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
55 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 55 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
56 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 56 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
57 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); | 57 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); |
58 | rootPart.doPhysicsPropertyUpdate(UsePhysics, true); | 58 | rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
59 | 59 | ||
60 | } | 60 | } |
61 | primCount++; | 61 | primCount++; |
@@ -125,7 +125,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
125 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 125 | new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
126 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 126 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
127 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); | 127 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); |
128 | rootPart.doPhysicsPropertyUpdate(UsePhysics, true); | 128 | rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
129 | } | 129 | } |
130 | } | 130 | } |
131 | 131 | ||