diff options
Sculpted Prims should now work.
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Primitive.cs | 18 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 1 |
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; |