aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorTeravus Ovares2008-02-13 07:50:15 +0000
committerTeravus Ovares2008-02-13 07:50:15 +0000
commitd773ca514726d67d7f8092440484f27440459745 (patch)
tree9af8e68eb67c144735e7f773292df45c368218bd /OpenSim/Region/Environment
parentClean up more unnecessary String.Format calls (diff)
downloadopensim-SC-d773ca514726d67d7f8092440484f27440459745.zip
opensim-SC-d773ca514726d67d7f8092440484f27440459745.tar.gz
opensim-SC-d773ca514726d67d7f8092440484f27440459745.tar.bz2
opensim-SC-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')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs18
2 files changed, 17 insertions, 3 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index c41979c..dbb4be0 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -737,7 +737,7 @@ namespace OpenSim.Region.Environment.Scenes
737 m_statsReporter.addOtherMS(otherMS); 737 m_statsReporter.addOtherMS(otherMS);
738 m_statsReporter.SetActiveScripts(m_innerScene.GetActiveScripts()); 738 m_statsReporter.SetActiveScripts(m_innerScene.GetActiveScripts());
739 m_statsReporter.addScriptLines(m_innerScene.GetScriptLPS()); 739 m_statsReporter.addScriptLines(m_innerScene.GetScriptLPS());
740 740 m_log.Warn(physicsMS);
741 } 741 }
742 catch (NotImplementedException) 742 catch (NotImplementedException)
743 { 743 {
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++)