aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authordan miller2007-09-09 21:21:09 +0000
committerdan miller2007-09-09 21:21:09 +0000
commit86e3fc3da2921e47a8ee7a41a41f89633504719a (patch)
tree0c6b92eee0d9253e0a8ebdefa08886acfc472610
parentLittle green men (aka dots on minimap). Thanks to bushing for (diff)
downloadopensim-SC_OLD-86e3fc3da2921e47a8ee7a41a41f89633504719a.zip
opensim-SC_OLD-86e3fc3da2921e47a8ee7a41a41f89633504719a.tar.gz
opensim-SC_OLD-86e3fc3da2921e47a8ee7a41a41f89633504719a.tar.bz2
opensim-SC_OLD-86e3fc3da2921e47a8ee7a41a41f89633504719a.tar.xz
added avatar updates for physics movement -- fixes gravity & avatar collision (ODE)
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs18
2 files changed, 16 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 17b01d5..1af41be 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -251,7 +251,7 @@ namespace OpenSim.Region.Environment.Scenes
251 { 251 {
252 if (phyScene.IsThreaded) 252 if (phyScene.IsThreaded)
253 { 253 {
254 phyScene.GetResults(); 254 phyScene.GetResults(); /// no engines implement this, and what does it have to do with threading? possible DEAD CODE
255 } 255 }
256 256
257 List<EntityBase> moveEntities = new List<EntityBase>(Entities.Values); 257 List<EntityBase> moveEntities = new List<EntityBase>(Entities.Values);
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 8cf0b98..a32ddef 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -72,6 +72,7 @@ namespace OpenSim.Region.Environment.Scenes
72 private IScenePresenceBody m_body; 72 private IScenePresenceBody m_body;
73 73
74 private Vector3[] Dir_Vectors = new Vector3[6]; 74 private Vector3[] Dir_Vectors = new Vector3[6];
75 private libsecondlife.LLVector3 lastPhysPos = new libsecondlife.LLVector3();
75 private enum Dir_ControlFlags 76 private enum Dir_ControlFlags
76 { 77 {
77 DIR_CONTROL_FLAG_FOWARD = MainAvatar.ControlFlags.AGENT_CONTROL_AT_POS, 78 DIR_CONTROL_FLAG_FOWARD = MainAvatar.ControlFlags.AGENT_CONTROL_AT_POS,
@@ -463,18 +464,22 @@ namespace OpenSim.Region.Environment.Scenes
463 { 464 {
464 this.SendPrimUpdates(); 465 this.SendPrimUpdates();
465 466
466 if (this.newCoarseLocations) { 467 if (this.newCoarseLocations) {
467 this.SendCoarseLocations(); 468 this.SendCoarseLocations();
468 this.newCoarseLocations = false; 469 this.newCoarseLocations = false;
469 } 470 }
470 471
471 if (this.childAgent == false) 472 if (this.childAgent == false)
472 { 473 {
474
475 /// check for user movement 'forces' (ie commands to move)
473 if (this.newForce) 476 if (this.newForce)
474 { 477 {
475 this.SendTerseUpdateToALLClients(); 478 this.SendTerseUpdateToALLClients();
476 _updateCount = 0; 479 _updateCount = 0;
477 } 480 }
481
482 /// check for scripted movement (?)
478 else if (movementflag != 0) 483 else if (movementflag != 0)
479 { 484 {
480 _updateCount++; 485 _updateCount++;
@@ -485,6 +490,13 @@ namespace OpenSim.Region.Environment.Scenes
485 } 490 }
486 } 491 }
487 492
493 /// check for physics-related movement
494 else if (this.lastPhysPos.GetDistanceTo(this.AbsolutePosition) > 0.02 )
495 {
496 this.SendTerseUpdateToALLClients();
497 _updateCount = 0;
498 this.lastPhysPos = this.AbsolutePosition;
499 }
488 this.CheckForSignificantMovement(); 500 this.CheckForSignificantMovement();
489 this.CheckForBorderCrossing(); 501 this.CheckForBorderCrossing();
490 502