aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-11-07 19:02:55 +0000
committerJustin Clarke Casey2008-11-07 19:02:55 +0000
commite08c4376f750f32396e939cb2a985ad36cc10974 (patch)
tree6f81865ccbb374fd9ce5f9d80b123c33e58da386 /OpenSim
parent* Stop now unnecessary separate local id allocation for restored objects (diff)
downloadopensim-SC_OLD-e08c4376f750f32396e939cb2a985ad36cc10974.zip
opensim-SC_OLD-e08c4376f750f32396e939cb2a985ad36cc10974.tar.gz
opensim-SC_OLD-e08c4376f750f32396e939cb2a985ad36cc10974.tar.bz2
opensim-SC_OLD-e08c4376f750f32396e939cb2a985ad36cc10974.tar.xz
* Apply http://opensimulator.org/mantis/view.php?id=1883
* Fix llSetStatus() and llSetPrimitiveParams() * Thanks idb
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs30
1 files changed, 8 insertions, 22 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 2c559a3..093024e 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -1440,28 +1440,14 @@ namespace OpenSim.Region.Environment.Scenes
1440 1440
1441 public void ScriptSetPhantomStatus(bool PhantomStatus) 1441 public void ScriptSetPhantomStatus(bool PhantomStatus)
1442 { 1442 {
1443 lock (m_parts) 1443 byte[] flags = new byte[50];
1444 { 1444 // only the following 3 flags are updated by UpdatePrimFlags
1445 foreach (SceneObjectPart part in m_parts.Values) 1445 flags[46] = (byte)((RootPart.Flags & PrimFlags.Physics) != 0 ? 1 : 0);
1446 { 1446 flags[47] = (byte)((RootPart.Flags & PrimFlags.TemporaryOnRez) != 0 ? 1 : 0);
1447 if (PhantomStatus) 1447 flags[48] = (byte)(PhantomStatus ? 1 : 0);
1448 { 1448 // 94 is the packet type that comes from the ll viewer when selecting/unselecting
1449 part.AddFlag(PrimFlags.Phantom); 1449 // so pretend we are from the viewer
1450 if (part.PhysActor != null) 1450 UpdatePrimFlags(RootPart.LocalId, (ushort)94, true, flags);
1451 {
1452 m_scene.PhysicsScene.RemovePrim(part.PhysActor);
1453 }
1454 }
1455 else
1456 {
1457 part.RemFlag(PrimFlags.Phantom);
1458 if ((part.GetEffectiveObjectFlags() & (int) PrimFlags.Physics) != 0)
1459 {
1460 part.DoPhysicsPropertyUpdate(true, false);
1461 }
1462 }
1463 }
1464 }
1465 } 1451 }
1466 1452
1467 public void applyImpulse(PhysicsVector impulse) 1453 public void applyImpulse(PhysicsVector impulse)