aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Framework/AvatarAppearance.cs34
-rw-r--r--OpenSim/Framework/AvatarWearable.cs18
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneGraph.cs2
-rw-r--r--OpenSim/Services/Interfaces/IAvatarService.cs20
5 files changed, 54 insertions, 22 deletions
diff --git a/OpenSim/Framework/AvatarAppearance.cs b/OpenSim/Framework/AvatarAppearance.cs
index 3a0b861..c5d9641 100644
--- a/OpenSim/Framework/AvatarAppearance.cs
+++ b/OpenSim/Framework/AvatarAppearance.cs
@@ -42,6 +42,8 @@ namespace OpenSim.Framework
42 { 42 {
43 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 43 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
44 44
45 // this is viewer capabilities and weared things dependent
46 // should be only used as initial default value ( V1 viewers )
45 public readonly static int VISUALPARAM_COUNT = 218; 47 public readonly static int VISUALPARAM_COUNT = 218;
46 48
47 public readonly static int TEXTURE_COUNT = 21; 49 public readonly static int TEXTURE_COUNT = 21;
@@ -319,19 +321,30 @@ namespace OpenSim.Framework
319 // made. We determine if any of the visual parameters actually 321 // made. We determine if any of the visual parameters actually
320 // changed to know if the appearance should be saved later 322 // changed to know if the appearance should be saved later
321 bool changed = false; 323 bool changed = false;
322 for (int i = 0; i < AvatarAppearance.VISUALPARAM_COUNT; i++) 324
325 int newsize = visualParams.Length;
326
327 if (newsize != m_visualparams.Length)
328 {
329 changed = true;
330 m_visualparams = (byte[])visualParams.Clone();
331 }
332 else
323 { 333 {
324 if (visualParams[i] != m_visualparams[i]) 334
335 for (int i = 0; i < newsize; i++)
325 { 336 {
326// DEBUG ON 337 if (visualParams[i] != m_visualparams[i])
327// m_log.WarnFormat("[AVATARAPPEARANCE] vparams changed [{0}] {1} ==> {2}", 338 {
328// i,m_visualparams[i],visualParams[i]); 339 // DEBUG ON
329// DEBUG OFF 340 // m_log.WarnFormat("[AVATARAPPEARANCE] vparams changed [{0}] {1} ==> {2}",
330 m_visualparams[i] = visualParams[i]; 341 // i,m_visualparams[i],visualParams[i]);
331 changed = true; 342 // DEBUG OFF
343 m_visualparams[i] = visualParams[i];
344 changed = true;
345 }
332 } 346 }
333 } 347 }
334
335 // Reset the height if the visual parameters actually changed 348 // Reset the height if the visual parameters actually changed
336 if (changed) 349 if (changed)
337 SetHeight(); 350 SetHeight();
@@ -389,7 +402,8 @@ namespace OpenSim.Framework
389 } 402 }
390 403
391 s += "Visual Params: "; 404 s += "Visual Params: ";
392 for (uint j = 0; j < AvatarAppearance.VISUALPARAM_COUNT; j++) 405 // for (uint j = 0; j < AvatarAppearance.VISUALPARAM_COUNT; j++)
406 for (uint j = 0; j < m_visualparams.Length; j++)
393 s += String.Format("{0},",m_visualparams[j]); 407 s += String.Format("{0},",m_visualparams[j]);
394 s += "\n"; 408 s += "\n";
395 409
diff --git a/OpenSim/Framework/AvatarWearable.cs b/OpenSim/Framework/AvatarWearable.cs
index 8e27596..aee295a 100644
--- a/OpenSim/Framework/AvatarWearable.cs
+++ b/OpenSim/Framework/AvatarWearable.cs
@@ -62,9 +62,14 @@ namespace OpenSim.Framework
62 public static readonly int UNDERSHIRT = 10; 62 public static readonly int UNDERSHIRT = 10;
63 public static readonly int UNDERPANTS = 11; 63 public static readonly int UNDERPANTS = 11;
64 public static readonly int SKIRT = 12; 64 public static readonly int SKIRT = 12;
65
66 public static readonly int MAX_BASICWEARABLES = 13;
67
65 public static readonly int ALPHA = 13; 68 public static readonly int ALPHA = 13;
66 public static readonly int TATTOO = 14; 69 public static readonly int TATTOO = 14;
70// public static readonly int PHYSICS = 15;
67 71
72 // public static readonly int MAX_WEARABLES = 16;
68 public static readonly int MAX_WEARABLES = 15; 73 public static readonly int MAX_WEARABLES = 15;
69 74
70 public static readonly UUID DEFAULT_BODY_ITEM = new UUID("66c41e39-38f9-f75a-024e-585989bfaba9"); 75 public static readonly UUID DEFAULT_BODY_ITEM = new UUID("66c41e39-38f9-f75a-024e-585989bfaba9");
@@ -219,7 +224,7 @@ namespace OpenSim.Framework
219 { 224 {
220 get 225 get
221 { 226 {
222 AvatarWearable[] defaultWearables = new AvatarWearable[MAX_WEARABLES]; //should be 15 of these 227 AvatarWearable[] defaultWearables = new AvatarWearable[MAX_WEARABLES];
223 for (int i = 0; i < MAX_WEARABLES; i++) 228 for (int i = 0; i < MAX_WEARABLES; i++)
224 { 229 {
225 defaultWearables[i] = new AvatarWearable(); 230 defaultWearables[i] = new AvatarWearable();
@@ -242,10 +247,13 @@ namespace OpenSim.Framework
242 247
243// // Alpha 248// // Alpha
244// defaultWearables[ALPHA].Add(DEFAULT_ALPHA_ITEM, DEFAULT_ALPHA_ASSET); 249// defaultWearables[ALPHA].Add(DEFAULT_ALPHA_ITEM, DEFAULT_ALPHA_ASSET);
245 250
246// // Tattoo 251 // // Tattoo
247// defaultWearables[TATTOO].Add(DEFAULT_TATTOO_ITEM, DEFAULT_TATTOO_ASSET); 252 // defaultWearables[TATTOO].Add(DEFAULT_TATTOO_ITEM, DEFAULT_TATTOO_ASSET);
248 253
254 // // Physics
255 // defaultWearables[PHYSICS].Add(DEFAULT_TATTOO_ITEM, DEFAULT_TATTOO_ASSET);
256
249 return defaultWearables; 257 return defaultWearables;
250 } 258 }
251 } 259 }
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 1004be6..40ebed1 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -3533,7 +3533,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3533 3533
3534 AvatarAppearancePacket avp = (AvatarAppearancePacket)PacketPool.Instance.GetPacket(PacketType.AvatarAppearance); 3534 AvatarAppearancePacket avp = (AvatarAppearancePacket)PacketPool.Instance.GetPacket(PacketType.AvatarAppearance);
3535 // TODO: don't create new blocks if recycling an old packet 3535 // TODO: don't create new blocks if recycling an old packet
3536 avp.VisualParam = new AvatarAppearancePacket.VisualParamBlock[218]; 3536 avp.VisualParam = new AvatarAppearancePacket.VisualParamBlock[visualParams.Length];
3537 avp.ObjectData.TextureEntry = textureEntry; 3537 avp.ObjectData.TextureEntry = textureEntry;
3538 3538
3539 AvatarAppearancePacket.VisualParamBlock avblock = null; 3539 AvatarAppearancePacket.VisualParamBlock avblock = null;
diff --git a/OpenSim/Region/Framework/Scenes/SceneGraph.cs b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
index f6f6a1a..982913a 100644
--- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs
@@ -357,7 +357,7 @@ namespace OpenSim.Region.Framework.Scenes
357 sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); 357 sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false);
358 sceneObject.Velocity = vel; 358 sceneObject.Velocity = vel;
359 } 359 }
360 360
361 return true; 361 return true;
362 } 362 }
363 363
diff --git a/OpenSim/Services/Interfaces/IAvatarService.cs b/OpenSim/Services/Interfaces/IAvatarService.cs
index cda7113..8412c35 100644
--- a/OpenSim/Services/Interfaces/IAvatarService.cs
+++ b/OpenSim/Services/Interfaces/IAvatarService.cs
@@ -162,10 +162,16 @@ namespace OpenSim.Services.Interfaces
162 } 162 }
163 163
164 // Visual Params 164 // Visual Params
165 string[] vps = new string[AvatarAppearance.VISUALPARAM_COUNT]; 165 // string[] vps = new string[AvatarAppearance.VISUALPARAM_COUNT];
166 // byte[] binary = appearance.VisualParams;
167
168 // for (int i = 0 ; i < AvatarAppearance.VISUALPARAM_COUNT ; i++)
169
170
166 byte[] binary = appearance.VisualParams; 171 byte[] binary = appearance.VisualParams;
172 string[] vps = new string[binary.Length];
167 173
168 for (int i = 0 ; i < AvatarAppearance.VISUALPARAM_COUNT ; i++) 174 for (int i = 0; i < binary.Length; i++)
169 { 175 {
170 vps[i] = binary[i].ToString(); 176 vps[i] = binary[i].ToString();
171 } 177 }
@@ -265,10 +271,14 @@ namespace OpenSim.Services.Interfaces
265 if (Data.ContainsKey("VisualParams")) 271 if (Data.ContainsKey("VisualParams"))
266 { 272 {
267 string[] vps = Data["VisualParams"].Split(new char[] {','}); 273 string[] vps = Data["VisualParams"].Split(new char[] {','});
268 byte[] binary = new byte[AvatarAppearance.VISUALPARAM_COUNT]; 274 // byte[] binary = new byte[AvatarAppearance.VISUALPARAM_COUNT];
275
276 // for (int i = 0 ; i < vps.Length && i < binary.Length ; i++)
277 byte[] binary = new byte[vps.Length];
278
279 for (int i = 0; i < vps.Length; i++)
269 280
270 for (int i = 0 ; i < vps.Length && i < binary.Length ; i++) 281 binary[i] = (byte)Convert.ToInt32(vps[i]);
271 binary[i] = (byte)Convert.ToInt32(vps[i]);
272 282
273 appearance.VisualParams = binary; 283 appearance.VisualParams = binary;
274 } 284 }