aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorTeravus Ovares2007-12-26 17:16:47 +0000
committerTeravus Ovares2007-12-26 17:16:47 +0000
commitf852b6455550569d002d0b1c527249f3f7894326 (patch)
tree95abccc4ae8529dc8c1b2aa283ac44e952f7dda7 /OpenSim/Region/Environment
parent* Patch by Melanie to fix CreateSelected (diff)
downloadopensim-SC_OLD-f852b6455550569d002d0b1c527249f3f7894326.zip
opensim-SC_OLD-f852b6455550569d002d0b1c527249f3f7894326.tar.gz
opensim-SC_OLD-f852b6455550569d002d0b1c527249f3f7894326.tar.bz2
opensim-SC_OLD-f852b6455550569d002d0b1c527249f3f7894326.tar.xz
* This update includes a wide range of changes to the ODEPlugin for avatar movement, including:
** - avatar can navigate stairs better now ** - avatar can land without shooting into the air ** - excessive collisions with the ground are tempered somewhat and should only shoot the avatar up 20m instead of 200m ** - Try Catched a TextureDownloadModule.cs array out of bounds error with a report that causes it not to crash the sim, however it reports a few important items for tracking it down.
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Modules/TextureDownloadModule.cs10
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs22
2 files changed, 20 insertions, 12 deletions
diff --git a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
index d126569..0adace1 100644
--- a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
+++ b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs
@@ -319,7 +319,15 @@ namespace OpenSim.Region.Environment.Modules
319 int size = m_asset.Data.Length - 600 - (1000 * (PacketCounter - 1)); 319 int size = m_asset.Data.Length - 600 - (1000 * (PacketCounter - 1));
320 if (size > 1000) size = 1000; 320 if (size > 1000) size = 1000;
321 im.ImageData.Data = new byte[size]; 321 im.ImageData.Data = new byte[size];
322 Array.Copy(m_asset.Data, 600 + (1000 * (PacketCounter - 1)), im.ImageData.Data, 0, size); 322 try
323 {
324 Array.Copy(m_asset.Data, 600 + (1000 * (PacketCounter - 1)), im.ImageData.Data, 0, size);
325 }
326 catch (System.ArgumentOutOfRangeException)
327 {
328 OpenSim.Framework.Console.MainLog.Instance.Warn("TEXTURE", "Unable to separate texture into multiple packets: Array bounds failure on asset:" + m_asset.FullID.ToString() + "- TextureDownloadModule.cs. line:328");
329 return;
330 }
323 RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); 331 RequestUser.OutPacket(im, ThrottleOutPacketType.Texture);
324 PacketCounter++; 332 PacketCounter++;
325 } 333 }
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 5570136..03f1a70 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -999,17 +999,17 @@ namespace OpenSim.Region.Environment.Scenes
999 if (m_physicsActor.Flying) 999 if (m_physicsActor.Flying)
1000 { 1000 {
1001 direc *= 4; 1001 direc *= 4;
1002 bool controlland = (((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) || ((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0)); 1002 //bool controlland = (((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) || ((m_AgentControlFlags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0));
1003 bool colliding = (m_physicsActor.IsColliding==true); 1003 //bool colliding = (m_physicsActor.IsColliding==true);
1004 if (controlland) 1004 //if (controlland)
1005 MainLog.Instance.Verbose("AGENT","landCommand"); 1005 // MainLog.Instance.Verbose("AGENT","landCommand");
1006 if (colliding ) 1006 //if (colliding )
1007 MainLog.Instance.Verbose("AGENT","colliding"); 1007 // MainLog.Instance.Verbose("AGENT","colliding");
1008 if (m_physicsActor.Flying && colliding && controlland) 1008 //if (m_physicsActor.Flying && colliding && controlland)
1009 { 1009 //{
1010 StopFlying(); 1010 // StopFlying();
1011 MainLog.Instance.Verbose("AGENT", "Stop FLying"); 1011 // MainLog.Instance.Verbose("AGENT", "Stop FLying");
1012 } 1012 //}
1013 } 1013 }
1014 else 1014 else
1015 { 1015 {