aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorBrian McBee2007-08-03 21:54:21 +0000
committerBrian McBee2007-08-03 21:54:21 +0000
commit6cb3833021a15e1f62ed198de8845b7332a2152b (patch)
tree2d8a8498f861a848f91e3082fa11aa9c22c8433b
parent* a very small first step with shape wrappers (diff)
downloadopensim-SC-6cb3833021a15e1f62ed198de8845b7332a2152b.zip
opensim-SC-6cb3833021a15e1f62ed198de8845b7332a2152b.tar.gz
opensim-SC-6cb3833021a15e1f62ed198de8845b7332a2152b.tar.bz2
opensim-SC-6cb3833021a15e1f62ed198de8845b7332a2152b.tar.xz
OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs, OpenSim/Region/Environment/Scenes/ScenePresence.cs
Fix for array out-of-bounds error in basicphysics.
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs18
-rw-r--r--OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs10
2 files changed, 14 insertions, 14 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 7b97080..6c1e835 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -550,7 +550,7 @@ namespace OpenSim.Region.Environment.Scenes
550 LLVector3 pos2 = this.Pos; 550 LLVector3 pos2 = this.Pos;
551 LLVector3 vel = this.Velocity; 551 LLVector3 vel = this.Velocity;
552 552
553 float timeStep = 0.2f; 553 float timeStep = 0.1f;
554 pos2.X = pos2.X + (vel.X * timeStep); 554 pos2.X = pos2.X + (vel.X * timeStep);
555 pos2.Y = pos2.Y + (vel.Y * timeStep); 555 pos2.Y = pos2.Y + (vel.Y * timeStep);
556 pos2.Z = pos2.Z + (vel.Z * timeStep); 556 pos2.Z = pos2.Z + (vel.Z * timeStep);
@@ -576,25 +576,25 @@ namespace OpenSim.Region.Environment.Scenes
576 uint neighbourx = this.m_regionInfo.RegionLocX; 576 uint neighbourx = this.m_regionInfo.RegionLocX;
577 uint neighboury = this.m_regionInfo.RegionLocY; 577 uint neighboury = this.m_regionInfo.RegionLocY;
578 578
579 if (pos.X < 3) 579 if (pos.X < 1)
580 { 580 {
581 neighbourx -= 1; 581 neighbourx -= 1;
582 newpos.X = 254; 582 newpos.X = 255.9F;
583 } 583 }
584 if (pos.X > 252) 584 if (pos.X > 255)
585 { 585 {
586 neighbourx += 1; 586 neighbourx += 1;
587 newpos.X = 1; 587 newpos.X = 0.1F;
588 } 588 }
589 if (pos.Y < 3) 589 if (pos.Y < 1)
590 { 590 {
591 neighboury -= 1; 591 neighboury -= 1;
592 newpos.Y = 254; 592 newpos.Y = 255.9F;
593 } 593 }
594 if (pos.Y > 252) 594 if (pos.Y > 255)
595 { 595 {
596 neighboury += 1; 596 neighboury += 1;
597 newpos.Y = 1; 597 newpos.Y = 0.1F;
598 } 598 }
599 599
600 LLVector3 vel = this.m_velocity; 600 LLVector3 vel = this.m_velocity;
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
index b722fdf..6732d98 100644
--- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
+++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs
@@ -103,20 +103,20 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin
103 actor.Position.Y = actor.Position.Y + (actor.Velocity.Y * timeStep); 103 actor.Position.Y = actor.Position.Y + (actor.Velocity.Y * timeStep);
104 if (actor.Position.Y < 0) 104 if (actor.Position.Y < 0)
105 { 105 {
106 actor.Position.Y = 0; 106 actor.Position.Y = 0.1F;
107 } 107 }
108 else if (actor.Position.Y > 256) 108 else if (actor.Position.Y >= 256)
109 { 109 {
110 actor.Position.Y = 256; 110 actor.Position.Y = 255.9F;
111 } 111 }
112 112
113 if (actor.Position.X < 0) 113 if (actor.Position.X < 0)
114 { 114 {
115 actor.Position.X = 0; 115 actor.Position.X = 0.1F;
116 } 116 }
117 else if (actor.Position.X > 256) 117 else if (actor.Position.X > 256)
118 { 118 {
119 actor.Position.X = 256; 119 actor.Position.X = 255.9F;
120 } 120 }
121 121
122 float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f; 122 float height = _heightMap[(int)actor.Position.Y * 256 + (int)actor.Position.X] + 1.2f;