diff options
author | Justin Clark-Casey (justincc) | 2012-04-20 23:24:24 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-04-20 23:24:24 +0100 |
commit | 566327a9482506f2965e06b37172dc42f66cd6e5 (patch) | |
tree | 05bca3b61f4328a5e12c9d99b879a0295d36270f /OpenSim | |
parent | Always dispose of existing opened bitmap from file in SaveFile(), instead of ... (diff) | |
download | opensim-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')
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 22 |
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(); |