diff options
author | Brian McBee | 2007-08-03 21:54:21 +0000 |
---|---|---|
committer | Brian McBee | 2007-08-03 21:54:21 +0000 |
commit | 6cb3833021a15e1f62ed198de8845b7332a2152b (patch) | |
tree | 2d8a8498f861a848f91e3082fa11aa9c22c8433b /OpenSim | |
parent | * a very small first step with shape wrappers (diff) | |
download | opensim-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.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 18 | ||||
-rw-r--r-- | OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | 10 |
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; |