aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-04-20 23:24:24 +0100
committerJustin Clark-Casey (justincc)2012-04-20 23:24:24 +0100
commit566327a9482506f2965e06b37172dc42f66cd6e5 (patch)
tree05bca3b61f4328a5e12c9d99b879a0295d36270f /OpenSim/Region
parentAlways dispose of existing opened bitmap from file in SaveFile(), instead of ... (diff)
downloadopensim-SC_OLD-566327a9482506f2965e06b37172dc42f66cd6e5.zip
opensim-SC_OLD-566327a9482506f2965e06b37172dc42f66cd6e5.tar.gz
opensim-SC_OLD-566327a9482506f2965e06b37172dc42f66cd6e5.tar.bz2
opensim-SC_OLD-566327a9482506f2965e06b37172dc42f66cd6e5.tar.xz
If a physical prim is manually moved (e.g. by a user) then set the geometry position as well as the body position
This is necessary to stop the moved prim snapping back to the original position on deselection if moved only once This resolves http://opensimulator.org/mantis/view.php?id=5966
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Physics/OdePlugin/ODEPrim.cs22
1 files changed, 10 insertions, 12 deletions
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
index 1f79cd8..7d67da3 100644
--- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
+++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs
@@ -1579,23 +1579,21 @@ Console.WriteLine(" JointCreateFixed");
1579 //m_log.Debug("[BUG]: race!"); 1579 //m_log.Debug("[BUG]: race!");
1580 //} 1580 //}
1581 } 1581 }
1582 else
1583 {
1584 // string primScenAvatarIn = _parent_scene.whichspaceamIin(_position);
1585 // int[] arrayitem = _parent_scene.calculateSpaceArrayItemFromPos(_position);
1586// _parent_scene.waitForSpaceUnlock(m_targetSpace);
1587 1582
1588 IntPtr tempspace = _parent_scene.recalculateSpaceForGeom(prim_geom, _position, m_targetSpace); 1583 // string primScenAvatarIn = _parent_scene.whichspaceamIin(_position);
1589 m_targetSpace = tempspace; 1584 // int[] arrayitem = _parent_scene.calculateSpaceArrayItemFromPos(_position);
1585// _parent_scene.waitForSpaceUnlock(m_targetSpace);
1586
1587 IntPtr tempspace = _parent_scene.recalculateSpaceForGeom(prim_geom, _position, m_targetSpace);
1588 m_targetSpace = tempspace;
1590 1589
1591// _parent_scene.waitForSpaceUnlock(m_targetSpace); 1590// _parent_scene.waitForSpaceUnlock(m_targetSpace);
1592 if (prim_geom != IntPtr.Zero) 1591 if (prim_geom != IntPtr.Zero)
1593 { 1592 {
1594 d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z); 1593 d.GeomSetPosition(prim_geom, _position.X, _position.Y, _position.Z);
1595 1594
1596// _parent_scene.waitForSpaceUnlock(m_targetSpace); 1595// _parent_scene.waitForSpaceUnlock(m_targetSpace);
1597 d.SpaceAdd(m_targetSpace, prim_geom); 1596 d.SpaceAdd(m_targetSpace, prim_geom);
1598 }
1599 } 1597 }
1600 1598
1601 changeSelectedStatus(); 1599 changeSelectedStatus();