* Change the signature of the agent set appearance callback to prevent unnecessary serialization/deserialization of TextureEntry objects and allow TextureEntry to be inspected for missing bakes

* Inspect incoming TextureEntry updates for bakes that do not exist on the simulator and request the missing textures
* Properly handle appearance updates that do not have a TextureEntry set
This commit is contained in:
John Hurliman
2009-09-30 15:53:03 -07:00
parent 041aaaa62c
commit 5dfd2643df
8 changed files with 51 additions and 41 deletions

View File

@@ -5272,13 +5272,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
// for the client session anyway, in order to protect ourselves against bad code in plugins
try
{
List<byte> visualparams = new List<byte>();
foreach (AgentSetAppearancePacket.VisualParamBlock x in appear.VisualParam)
{
visualparams.Add(x.ParamValue);
}
byte[] visualparams = new byte[appear.VisualParam.Length];
for (int i = 0; i < appear.VisualParam.Length; i++)
visualparams[i] = appear.VisualParam[i].ParamValue;
handlerSetAppearance(appear.ObjectData.TextureEntry, visualparams);
Primitive.TextureEntry te = null;
if (appear.ObjectData.TextureEntry.Length > 1)
te = new Primitive.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length);
handlerSetAppearance(te, visualparams);
}
catch (Exception e)
{