aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs2
-rw-r--r--OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs2
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs65
3 files changed, 57 insertions, 12 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs
index 6b33561..908f628 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/GetMeshModule.cs
@@ -377,7 +377,7 @@ namespace OpenSim.Region.ClientStack.Linden
377 protocol = "https"; 377 protocol = "https";
378 } 378 }
379 caps.RegisterHandler("GetMesh", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl)); 379 caps.RegisterHandler("GetMesh", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl));
380 m_pollservices.Add(agentID, args); 380 m_pollservices[agentID] = args;
381 m_capsDict[agentID] = capUrl; 381 m_capsDict[agentID] = capUrl;
382 382
383 383
diff --git a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
index dd87671..d4dbfb9 100644
--- a/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
+++ b/OpenSim/Region/ClientStack/Linden/Caps/GetTextureModule.cs
@@ -333,7 +333,7 @@ namespace OpenSim.Region.ClientStack.Linden
333 protocol = "https"; 333 protocol = "https";
334 } 334 }
335 caps.RegisterHandler("GetTexture", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl)); 335 caps.RegisterHandler("GetTexture", String.Format("{0}://{1}:{2}{3}", protocol, hostName, port, capUrl));
336 m_pollservices.Add(agentID, args); 336 m_pollservices[agentID] = args;
337 m_capsDict[agentID] = capUrl; 337 m_capsDict[agentID] = capUrl;
338 } 338 }
339 339
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 7cf6cf1..363ee54 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -331,6 +331,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
331 private Prioritizer m_prioritizer; 331 private Prioritizer m_prioritizer;
332 private bool m_disableFacelights = false; 332 private bool m_disableFacelights = false;
333 333
334 private bool m_VelocityInterpolate = false;
334 private const uint MaxTransferBytesPerPacket = 600; 335 private const uint MaxTransferBytesPerPacket = 600;
335 336
336 337
@@ -4987,7 +4988,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4987 // in that direction, even though we don't model this on the server. Implementing this in the future 4988 // in that direction, even though we don't model this on the server. Implementing this in the future
4988 // may improve movement smoothness. 4989 // may improve movement smoothness.
4989// acceleration = new Vector3(1, 0, 0); 4990// acceleration = new Vector3(1, 0, 0);
4990 4991
4991 angularVelocity = Vector3.Zero; 4992 angularVelocity = Vector3.Zero;
4992 4993
4993 if (sendTexture) 4994 if (sendTexture)
@@ -5137,7 +5138,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5137 update.PCode = (byte)PCode.Avatar; 5138 update.PCode = (byte)PCode.Avatar;
5138 update.ProfileCurve = 1; 5139 update.ProfileCurve = 1;
5139 update.PSBlock = Utils.EmptyBytes; 5140 update.PSBlock = Utils.EmptyBytes;
5140 update.Scale = new Vector3(0.45f, 0.6f, 1.9f); 5141 update.Scale = data.Appearance.AvatarSize;
5142// update.Scale.Z -= 0.2f;
5143
5141 update.Text = Utils.EmptyBytes; 5144 update.Text = Utils.EmptyBytes;
5142 update.TextColor = new byte[4]; 5145 update.TextColor = new byte[4];
5143 5146
@@ -5325,8 +5328,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5325 // If AgentUpdate is ever handled asynchronously, then we will also need to construct a new AgentUpdateArgs 5328 // If AgentUpdate is ever handled asynchronously, then we will also need to construct a new AgentUpdateArgs
5326 // for each AgentUpdate packet. 5329 // for each AgentUpdate packet.
5327 AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate, false); 5330 AddLocalPacketHandler(PacketType.AgentUpdate, HandleAgentUpdate, false);
5328 5331
5329 AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect, false); 5332 AddLocalPacketHandler(PacketType.ViewerEffect, HandleViewerEffect, false);
5333 AddLocalPacketHandler(PacketType.VelocityInterpolateOff, HandleVelocityInterpolateOff, false);
5334 AddLocalPacketHandler(PacketType.VelocityInterpolateOn, HandleVelocityInterpolateOn, false);
5330 AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached, false); 5335 AddLocalPacketHandler(PacketType.AgentCachedTexture, HandleAgentTextureCached, false);
5331 AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate, false); 5336 AddLocalPacketHandler(PacketType.MultipleObjectUpdate, HandleMultipleObjUpdate, false);
5332 AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest, false); 5337 AddLocalPacketHandler(PacketType.MoneyTransferRequest, HandleMoneyTransferRequest, false);
@@ -5844,6 +5849,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5844 return true; 5849 return true;
5845 } 5850 }
5846 5851
5852 private bool HandleVelocityInterpolateOff(IClientAPI sender, Packet Pack)
5853 {
5854 VelocityInterpolateOffPacket p = (VelocityInterpolateOffPacket)Pack;
5855 if (p.AgentData.SessionID != SessionId ||
5856 p.AgentData.AgentID != AgentId)
5857 return true;
5858
5859 m_VelocityInterpolate = false;
5860 return true;
5861 }
5862
5863 private bool HandleVelocityInterpolateOn(IClientAPI sender, Packet Pack)
5864 {
5865 VelocityInterpolateOnPacket p = (VelocityInterpolateOnPacket)Pack;
5866 if (p.AgentData.SessionID != SessionId ||
5867 p.AgentData.AgentID != AgentId)
5868 return true;
5869
5870 m_VelocityInterpolate = true;
5871 return true;
5872 }
5873
5874
5847 private bool HandleAvatarPropertiesRequest(IClientAPI sender, Packet Pack) 5875 private bool HandleAvatarPropertiesRequest(IClientAPI sender, Packet Pack)
5848 { 5876 {
5849 AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack; 5877 AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
@@ -6264,6 +6292,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6264 // Temporarily protect ourselves from the mantis #951 failure. 6292 // Temporarily protect ourselves from the mantis #951 failure.
6265 // However, we could do this for several other handlers where a failure isn't terminal 6293 // However, we could do this for several other handlers where a failure isn't terminal
6266 // for the client session anyway, in order to protect ourselves against bad code in plugins 6294 // for the client session anyway, in order to protect ourselves against bad code in plugins
6295 Vector3 avSize = appear.AgentData.Size;
6267 try 6296 try
6268 { 6297 {
6269 byte[] visualparams = new byte[appear.VisualParam.Length]; 6298 byte[] visualparams = new byte[appear.VisualParam.Length];
@@ -6274,7 +6303,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6274 if (appear.ObjectData.TextureEntry.Length > 1) 6303 if (appear.ObjectData.TextureEntry.Length > 1)
6275 te = new Primitive.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length); 6304 te = new Primitive.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length);
6276 6305
6277 handlerSetAppearance(sender, te, visualparams); 6306 handlerSetAppearance(sender, te, visualparams,avSize);
6278 } 6307 }
6279 catch (Exception e) 6308 catch (Exception e)
6280 { 6309 {
@@ -11684,14 +11713,30 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11684 cachedresp.WearableData = 11713 cachedresp.WearableData =
11685 new AgentCachedTextureResponsePacket.WearableDataBlock[cachedtex.WearableData.Length]; 11714 new AgentCachedTextureResponsePacket.WearableDataBlock[cachedtex.WearableData.Length];
11686 11715
11687 for (int i = 0; i < cachedtex.WearableData.Length; i++) 11716 IImprovedAssetCache cache = m_scene.RequestModuleInterface<IImprovedAssetCache>();
11717 if (cache == null)
11688 { 11718 {
11689 cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock(); 11719 for (int i = 0; i < cachedtex.WearableData.Length; i++)
11690 cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex; 11720 {
11691 cachedresp.WearableData[i].TextureID = UUID.Zero; 11721 cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock();
11692 cachedresp.WearableData[i].HostName = new byte[0]; 11722 cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex;
11723 cachedresp.WearableData[i].TextureID = UUID.Zero;
11724 cachedresp.WearableData[i].HostName = new byte[0];
11725 }
11726 }
11727 else
11728 {
11729 for (int i = 0; i < cachedtex.WearableData.Length; i++)
11730 {
11731 cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock();
11732 cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex;
11733 if(cache.Check(cachedtex.WearableData[i].ID.ToString()))
11734 cachedresp.WearableData[i].TextureID = UUID.Zero;
11735 else
11736 cachedresp.WearableData[i].TextureID = UUID.Zero;
11737 cachedresp.WearableData[i].HostName = new byte[0];
11738 }
11693 } 11739 }
11694
11695 cachedresp.Header.Zerocoded = true; 11740 cachedresp.Header.Zerocoded = true;
11696 OutPacket(cachedresp, ThrottleOutPacketType.Task); 11741 OutPacket(cachedresp, ThrottleOutPacketType.Task);
11697 11742