aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Primitive.cs18
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs16
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs1
3 files changed, 35 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Primitive.cs b/OpenSim/Region/Environment/Scenes/Primitive.cs
index 4818348..bca8e0c 100644
--- a/OpenSim/Region/Environment/Scenes/Primitive.cs
+++ b/OpenSim/Region/Environment/Scenes/Primitive.cs
@@ -588,6 +588,24 @@ namespace OpenSim.Region.Environment.Scenes
588 588
589 #endregion 589 #endregion
590 590
591 public void UpdateExtraParam(ushort type, bool inUse, byte[] data)
592 {
593 this.m_Shape.ExtraParams = new byte[data.Length + 7];
594 int i =0;
595 uint length = (uint) data.Length;
596 this.m_Shape.ExtraParams[i++] = 1;
597 this.m_Shape.ExtraParams[i++] = (byte)(type % 256);
598 this.m_Shape.ExtraParams[i++] = (byte)((type >> 8) % 256);
599
600 this.m_Shape.ExtraParams[i++] = (byte)(length % 256);
601 this.m_Shape.ExtraParams[i++] = (byte)((length >> 8) % 256);
602 this.m_Shape.ExtraParams[i++] = (byte)((length >> 16) % 256);
603 this.m_Shape.ExtraParams[i++] = (byte)((length >> 24) % 256);
604 Array.Copy(data, 0, this.m_Shape.ExtraParams, i, data.Length);
605
606 this.ScheduleFullUpdate();
607 }
608
591 #region Texture 609 #region Texture
592 610
593 /// <summary> 611 /// <summary>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index f39d56a..5bfdccb 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -327,6 +327,22 @@ namespace OpenSim.Region.Environment.Scenes
327 } 327 }
328 } 328 }
329 329
330 public void UpdateExtraParam(uint primLocalID, ushort type, bool inUse, byte[] data)
331 {
332 Primitive prim = null;
333 foreach (EntityBase ent in Entities.Values)
334 {
335 if (ent is SceneObject)
336 {
337 prim = ((SceneObject)ent).HasChildPrim(primLocalID);
338 if (prim != null)
339 {
340 prim.UpdateExtraParam(type, inUse, data);
341 break;
342 }
343 }
344 }
345 }
330 /// <summary> 346 /// <summary>
331 /// 347 ///
332 /// </summary> 348 /// </summary>
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 70d2c6a..1ba23b4 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -548,6 +548,7 @@ namespace OpenSim.Region.Environment.Scenes
548 client.OnUpdatePrimGroupMouseRotation += UpdatePrimRotation; 548 client.OnUpdatePrimGroupMouseRotation += UpdatePrimRotation;
549 client.OnUpdatePrimSingleRotation += UpdatePrimSingleRotation; 549 client.OnUpdatePrimSingleRotation += UpdatePrimSingleRotation;
550 client.OnUpdatePrimScale += UpdatePrimScale; 550 client.OnUpdatePrimScale += UpdatePrimScale;
551 client.OnUpdateExtraParams += UpdateExtraParam;
551 client.OnUpdatePrimShape += UpdatePrimShape; 552 client.OnUpdatePrimShape += UpdatePrimShape;
552 client.OnRequestMapBlocks += RequestMapBlocks; 553 client.OnRequestMapBlocks += RequestMapBlocks;
553 client.OnUpdatePrimTexture += UpdatePrimTexture; 554 client.OnUpdatePrimTexture += UpdatePrimTexture;