aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
authorUbitUmarov2012-12-13 02:55:36 +0000
committerUbitUmarov2012-12-13 02:55:36 +0000
commit20773dcfccc04d8af14e27f87746711bfaba07b1 (patch)
treeb1428733102b796e1fd87e204da4d24b9f66b670 /OpenSim/Region/ClientStack/Linden
parentmake ubitODE ignore X and Y rotation components on avatar rotations (diff)
downloadopensim-SC-20773dcfccc04d8af14e27f87746711bfaba07b1.zip
opensim-SC-20773dcfccc04d8af14e27f87746711bfaba07b1.tar.gz
opensim-SC-20773dcfccc04d8af14e27f87746711bfaba07b1.tar.bz2
opensim-SC-20773dcfccc04d8af14e27f87746711bfaba07b1.tar.xz
add a Check method to flotsamAssetCache, so to check if a asset is in
cache without actually loading it. Make use limited use of it in avatarfactory textures check. Also on llclientview HandleAgentTextureCached that now should work. Other asset cache modules for now will return false, so are broken. baked textures logic still unchanged. *UNTESTED*
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs29
1 files changed, 22 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index ea3c6a4..edb1a9d 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -3992,7 +3992,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3992 3992
3993 const float TIME_DILATION = 1.0f; 3993 const float TIME_DILATION = 1.0f;
3994 ushort timeDilation = Utils.FloatToUInt16(avgTimeDilation, 0.0f, 1.0f); 3994 ushort timeDilation = Utils.FloatToUInt16(avgTimeDilation, 0.0f, 1.0f);
3995
3996 3995
3997 if (terseAgentUpdateBlocks.IsValueCreated) 3996 if (terseAgentUpdateBlocks.IsValueCreated)
3998 { 3997 {
@@ -11695,14 +11694,30 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11695 cachedresp.WearableData = 11694 cachedresp.WearableData =
11696 new AgentCachedTextureResponsePacket.WearableDataBlock[cachedtex.WearableData.Length]; 11695 new AgentCachedTextureResponsePacket.WearableDataBlock[cachedtex.WearableData.Length];
11697 11696
11698 for (int i = 0; i < cachedtex.WearableData.Length; i++) 11697 IImprovedAssetCache cache = m_scene.RequestModuleInterface<IImprovedAssetCache>();
11698 if (cache == null)
11699 { 11699 {
11700 cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock(); 11700 for (int i = 0; i < cachedtex.WearableData.Length; i++)
11701 cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex; 11701 {
11702 cachedresp.WearableData[i].TextureID = UUID.Zero; 11702 cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock();
11703 cachedresp.WearableData[i].HostName = new byte[0]; 11703 cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex;
11704 cachedresp.WearableData[i].TextureID = UUID.Zero;
11705 cachedresp.WearableData[i].HostName = new byte[0];
11706 }
11707 }
11708 else
11709 {
11710 for (int i = 0; i < cachedtex.WearableData.Length; i++)
11711 {
11712 cachedresp.WearableData[i] = new AgentCachedTextureResponsePacket.WearableDataBlock();
11713 cachedresp.WearableData[i].TextureIndex = cachedtex.WearableData[i].TextureIndex;
11714 if(cache.Check(cachedtex.WearableData[i].ID.ToString()))
11715 cachedresp.WearableData[i].TextureID = UUID.Zero;
11716 else
11717 cachedresp.WearableData[i].TextureID = UUID.Zero;
11718 cachedresp.WearableData[i].HostName = new byte[0];
11719 }
11704 } 11720 }
11705
11706 cachedresp.Header.Zerocoded = true; 11721 cachedresp.Header.Zerocoded = true;
11707 OutPacket(cachedresp, ThrottleOutPacketType.Task); 11722 OutPacket(cachedresp, ThrottleOutPacketType.Task);
11708 11723