aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Common/OpenSim.Framework/Interfaces/IClientAPI.cs2
-rw-r--r--OpenSim/OpenSim.Region/World/Primitive.cs69
-rw-r--r--OpenSim/OpenSim.RegionServer/ClientView.API.cs4
3 files changed, 5 insertions, 70 deletions
diff --git a/Common/OpenSim.Framework/Interfaces/IClientAPI.cs b/Common/OpenSim.Framework/Interfaces/IClientAPI.cs
index 871b8fd..719c634 100644
--- a/Common/OpenSim.Framework/Interfaces/IClientAPI.cs
+++ b/Common/OpenSim.Framework/Interfaces/IClientAPI.cs
@@ -102,6 +102,6 @@ namespace OpenSim.Framework.Interfaces
102 void InformClientOfNeighbour(ulong neighbourHandle, System.Net.IPAddress neighbourIP, ushort neighbourPort); 102 void InformClientOfNeighbour(ulong neighbourHandle, System.Net.IPAddress neighbourIP, ushort neighbourPort);
103 AgentCircuitData RequestClientInfo(); 103 AgentCircuitData RequestClientInfo();
104 104
105 void SendPrimitiveToClient(PrimData primData, LLVector3 pos, LLUUID textureID); 105 void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, PrimData primData, LLVector3 pos, LLUUID textureID);
106 } 106 }
107} 107}
diff --git a/OpenSim/OpenSim.Region/World/Primitive.cs b/OpenSim/OpenSim.Region/World/Primitive.cs
index 1b1894b..be0b6ba 100644
--- a/OpenSim/OpenSim.Region/World/Primitive.cs
+++ b/OpenSim/OpenSim.Region/World/Primitive.cs
@@ -270,13 +270,7 @@ namespace OpenSim.Region
270 lPos = this.Pos; 270 lPos = this.Pos;
271 } 271 }
272 272
273 ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); 273 remoteClient.SendPrimitiveToClient(this.m_regionHandle, 64096, this.primData, lPos, new LLUUID("00000000-0000-0000-5005-000000000005"));
274 outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
275 outPacket.ObjectData[0] = this.CreateUpdateBlock();
276 byte[] pb = lPos.GetBytes();
277 Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length);
278
279 remoteClient.OutPacket(outPacket);
280 } 274 }
281 275
282 public void SendFullUpdateToAllClients() 276 public void SendFullUpdateToAllClients()
@@ -349,67 +343,6 @@ namespace OpenSim.Region
349 343
350 #endregion 344 #endregion
351 345
352 #region Packet Update Methods
353 protected void SetDefaultPacketValues(ObjectUpdatePacket.ObjectDataBlock objdata)
354 {
355 objdata.PSBlock = new byte[0];
356 objdata.ExtraParams = new byte[1];
357 objdata.MediaURL = new byte[0];
358 objdata.NameValue = new byte[0];
359 objdata.Text = new byte[0];
360 objdata.TextColor = new byte[4];
361 objdata.JointAxisOrAnchor = new LLVector3(0, 0, 0);
362 objdata.JointPivot = new LLVector3(0, 0, 0);
363 objdata.Material = 3;
364 objdata.TextureAnim = new byte[0];
365 objdata.Sound = LLUUID.Zero;
366 LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005"));
367 this.primData.Texture = objdata.TextureEntry = ntex.ToBytes();
368 objdata.State = 0;
369 objdata.Data = new byte[0];
370
371 objdata.ObjectData = new byte[60];
372 objdata.ObjectData[46] = 128;
373 objdata.ObjectData[47] = 63;
374 }
375
376 protected void SetPacketShapeData(ObjectUpdatePacket.ObjectDataBlock objectData)
377 {
378 objectData.OwnerID = this.primData.OwnerID;
379 objectData.PCode = this.primData.PCode;
380 objectData.PathBegin = this.primData.PathBegin;
381 objectData.PathEnd = this.primData.PathEnd;
382 objectData.PathScaleX = this.primData.PathScaleX;
383 objectData.PathScaleY = this.primData.PathScaleY;
384 objectData.PathShearX = this.primData.PathShearX;
385 objectData.PathShearY = this.primData.PathShearY;
386 objectData.PathSkew = this.primData.PathSkew;
387 objectData.ProfileBegin = this.primData.ProfileBegin;
388 objectData.ProfileEnd = this.primData.ProfileEnd;
389 objectData.Scale = this.primData.Scale;
390 objectData.PathCurve = this.primData.PathCurve;
391 objectData.ProfileCurve = this.primData.ProfileCurve;
392 objectData.ParentID = this.primData.ParentID;
393 objectData.ProfileHollow = this.primData.ProfileHollow;
394 objectData.PathRadiusOffset = this.primData.PathRadiusOffset;
395 objectData.PathRevolutions = this.primData.PathRevolutions;
396 objectData.PathTaperX = this.primData.PathTaperX;
397 objectData.PathTaperY = this.primData.PathTaperY;
398 objectData.PathTwist = this.primData.PathTwist;
399 objectData.PathTwistBegin = this.primData.PathTwistBegin;
400 }
401
402 #endregion
403 protected ObjectUpdatePacket.ObjectDataBlock CreateUpdateBlock()
404 {
405 ObjectUpdatePacket.ObjectDataBlock objupdate = new ObjectUpdatePacket.ObjectDataBlock();
406 this.SetDefaultPacketValues(objupdate);
407 objupdate.UpdateFlags = 32 + 65536 + 131072 + 256 + 4 + 8 + 2048 + 524288 + 268435456;
408 this.SetPacketShapeData(objupdate);
409 byte[] pb = this.Pos.GetBytes();
410 Array.Copy(pb, 0, objupdate.ObjectData, 0, pb.Length);
411 return objupdate;
412 }
413 346
414 protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateImprovedBlock() 347 protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateImprovedBlock()
415 { 348 {
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
index 09ba266..d9a137f 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
@@ -421,9 +421,11 @@ namespace OpenSim
421 /// </summary> 421 /// </summary>
422 /// <param name="primData"></param> 422 /// <param name="primData"></param>
423 /// <param name="pos"></param> 423 /// <param name="pos"></param>
424 public void SendPrimitiveToClient( PrimData primData, LLVector3 pos, LLUUID textureID) 424 public void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, PrimData primData, LLVector3 pos, LLUUID textureID)
425 { 425 {
426 ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); 426 ObjectUpdatePacket outPacket = new ObjectUpdatePacket();
427 outPacket.RegionData.RegionHandle = regionHandle;
428 outPacket.RegionData.TimeDilation = timeDilation;
427 outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1]; 429 outPacket.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
428 outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primData, textureID); 430 outPacket.ObjectData[0] = this.CreatePrimUpdateBlock(primData, textureID);
429 byte[] pb = pos.GetBytes(); 431 byte[] pb = pos.GetBytes();