diff options
-rw-r--r-- | OpenSim/Framework/AvatarAppearance.cs | 34 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneGraph.cs | 2 | ||||
-rw-r--r-- | OpenSim/Services/Interfaces/IAvatarService.cs | 20 |
4 files changed, 41 insertions, 17 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/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 b7dc335..d4965ea 100644 --- a/OpenSim/Region/Framework/Scenes/SceneGraph.cs +++ b/OpenSim/Region/Framework/Scenes/SceneGraph.cs | |||
@@ -354,7 +354,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
354 | sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); | 354 | sceneObject.RootPart.ApplyImpulse((vel * sceneObject.GetMass()), false); |
355 | sceneObject.Velocity = vel; | 355 | sceneObject.Velocity = vel; |
356 | } | 356 | } |
357 | 357 | ||
358 | return true; | 358 | return true; |
359 | } | 359 | } |
360 | 360 | ||
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 | } |