diff options
author | Teravus Ovares | 2008-02-13 07:50:15 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-02-13 07:50:15 +0000 |
commit | d773ca514726d67d7f8092440484f27440459745 (patch) | |
tree | 9af8e68eb67c144735e7f773292df45c368218bd /OpenSim/Region/Environment/Scenes/ScenePresence.cs | |
parent | Clean up more unnecessary String.Format calls (diff) | |
download | opensim-SC_OLD-d773ca514726d67d7f8092440484f27440459745.zip opensim-SC_OLD-d773ca514726d67d7f8092440484f27440459745.tar.gz opensim-SC_OLD-d773ca514726d67d7f8092440484f27440459745.tar.bz2 opensim-SC_OLD-d773ca514726d67d7f8092440484f27440459745.tar.xz |
* Made physical prim stable enough for the general population to turn on. (though I still don't recommend it for welcome regions unless object build is off.
* Updated the ode.dll for windows with a more reasonable stack space reserve. Linux users will need to type ulimit -s 262144 before starting up OpenSimulator if using Physical Prim to protect against stack collisions. or run the included ./bin/opensim-ode.sh to start up OpenSimulator in ODE mode.
* Added internal collision score and am keeping track of 'high usage' prim.
* Tweaked collisions some more
* Tested up to 460 physical prim in extremely close quarters (which was previously impossible in OpenSim). After 460 in tight quarters, physics slows down enough to make it hard to do any moving, however.. non physics things still work, such as logging on to the simulator, etc.
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 5403fc7..61fce39 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -100,6 +100,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
100 | private LLQuaternion m_headrotation = new LLQuaternion(); | 100 | private LLQuaternion m_headrotation = new LLQuaternion(); |
101 | private byte m_state = (byte) 0; | 101 | private byte m_state = (byte) 0; |
102 | 102 | ||
103 | //Reuse the LLVector3 instead of creating a new one on the UpdateMovement method | ||
104 | private LLVector3 movementvector = new LLVector3(); | ||
105 | |||
103 | private List<LLUUID> m_knownPrimUUID = new List<LLUUID>(); | 106 | private List<LLUUID> m_knownPrimUUID = new List<LLUUID>(); |
104 | 107 | ||
105 | // Agent's Draw distance. | 108 | // Agent's Draw distance. |
@@ -1660,8 +1663,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
1660 | NewForce force = m_forcesList[i]; | 1663 | NewForce force = m_forcesList[i]; |
1661 | 1664 | ||
1662 | m_updateflag = true; | 1665 | m_updateflag = true; |
1663 | 1666 | try | |
1664 | Velocity = new LLVector3(force.X, force.Y, force.Z); | 1667 | { |
1668 | movementvector.X = force.X; | ||
1669 | movementvector.Y = force.Y; | ||
1670 | movementvector.Z = force.Z; | ||
1671 | Velocity = movementvector; | ||
1672 | } | ||
1673 | catch (System.NullReferenceException) | ||
1674 | { | ||
1675 | // Under extreme load, this returns a NullReference Exception that we can ignore. | ||
1676 | // Ignoring this causes no movement to be sent to the physics engine... | ||
1677 | // which when the scene is moving at 1 frame every 10 seconds, it doesn't really matter! | ||
1678 | } | ||
1665 | m_newForce = true; | 1679 | m_newForce = true; |
1666 | } | 1680 | } |
1667 | for (int i = 0; i < m_forcesList.Count; i++) | 1681 | for (int i = 0; i < m_forcesList.Count; i++) |