diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs index 97dcb69..dc65a2c 100644 --- a/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs +++ b/OpenSim/Region/PhysicsModules/ubOde/ODEScene.cs | |||
@@ -1558,33 +1558,36 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1558 | 1558 | ||
1559 | // tmpTime = Util.GetTimeStampMS(); | 1559 | // tmpTime = Util.GetTimeStampMS(); |
1560 | 1560 | ||
1561 | lock (SimulationLock) | 1561 | // Move characters |
1562 | lock (_characters) | ||
1562 | { | 1563 | { |
1563 | // Move characters | 1564 | foreach (OdeCharacter actor in _characters) |
1564 | lock (_characters) | ||
1565 | { | 1565 | { |
1566 | foreach (OdeCharacter actor in _characters) | 1566 | lock (SimulationLock) |
1567 | { | ||
1568 | actor.Move(); | 1567 | actor.Move(); |
1569 | } | ||
1570 | } | 1568 | } |
1569 | } | ||
1571 | 1570 | ||
1572 | // Move other active objects | 1571 | // Move other active objects |
1573 | lock (_activegroups) | 1572 | lock (_activegroups) |
1573 | { | ||
1574 | foreach (OdePrim aprim in _activegroups) | ||
1574 | { | 1575 | { |
1575 | foreach (OdePrim aprim in _activegroups) | 1576 | lock (SimulationLock) |
1576 | { | ||
1577 | aprim.Move(); | 1577 | aprim.Move(); |
1578 | } | ||
1579 | } | 1578 | } |
1579 | } | ||
1580 | // moveTime += Util.GetTimeStampMS() - tmpTime; | 1580 | // moveTime += Util.GetTimeStampMS() - tmpTime; |
1581 | // tmpTime = Util.GetTimeStampMS(); | 1581 | // tmpTime = Util.GetTimeStampMS(); |
1582 | lock (SimulationLock) | ||
1583 | { | ||
1582 | m_rayCastManager.ProcessQueuedRequests(); | 1584 | m_rayCastManager.ProcessQueuedRequests(); |
1583 | // rayTime += Util.GetTimeStampMS() - tmpTime; | 1585 | // rayTime += Util.GetTimeStampMS() - tmpTime; |
1584 | 1586 | ||
1585 | // tmpTime = Util.GetTimeStampMS(); | 1587 | // tmpTime = Util.GetTimeStampMS(); |
1586 | collision_optimized(); | 1588 | collision_optimized(); |
1587 | } | 1589 | } |
1590 | |||
1588 | // collisionTime += Util.GetTimeStampMS() - tmpTime; | 1591 | // collisionTime += Util.GetTimeStampMS() - tmpTime; |
1589 | 1592 | ||
1590 | // tmpTime = Util.GetTimeStampMS(); | 1593 | // tmpTime = Util.GetTimeStampMS(); |
@@ -1655,7 +1658,7 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1655 | } | 1658 | } |
1656 | */ | 1659 | */ |
1657 | // tmpTime = Util.GetTimeStampMS(); | 1660 | // tmpTime = Util.GetTimeStampMS(); |
1658 | lock (SimulationLock) | 1661 | //lock (SimulationLock) |
1659 | { | 1662 | { |
1660 | lock (_activegroups) | 1663 | lock (_activegroups) |
1661 | { | 1664 | { |
@@ -1664,7 +1667,8 @@ namespace OpenSim.Region.PhysicsModule.ubOde | |||
1664 | { | 1667 | { |
1665 | if (actor.IsPhysical) | 1668 | if (actor.IsPhysical) |
1666 | { | 1669 | { |
1667 | actor.UpdatePositionAndVelocity(framecount); | 1670 | lock (SimulationLock) |
1671 | actor.UpdatePositionAndVelocity(framecount); | ||
1668 | } | 1672 | } |
1669 | } | 1673 | } |
1670 | } | 1674 | } |