aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Framework/ClientManager.cs19
-rw-r--r--OpenSim/Framework/IClientAPI.cs84
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs82
-rw-r--r--OpenSim/Region/Environment/Scenes/AvatarAppearance.cs8
-rw-r--r--OpenSim/Region/Environment/Scenes/InnerScene.cs25
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs16
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs34
-rw-r--r--OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs9
8 files changed, 232 insertions, 45 deletions
diff --git a/OpenSim/Framework/ClientManager.cs b/OpenSim/Framework/ClientManager.cs
index 35c9319..4f21ab6 100644
--- a/OpenSim/Framework/ClientManager.cs
+++ b/OpenSim/Framework/ClientManager.cs
@@ -171,11 +171,22 @@ namespace OpenSim.Framework
171 return circuits; 171 return circuits;
172 } 172 }
173 173
174 public void ViewerEffectHandler(IClientAPI sender, ViewerEffectPacket.EffectBlock[] effectBlock) 174 public void ViewerEffectHandler(IClientAPI sender, List<ViewerEffectEventHandlerArg> args)
175 { 175 {
176 ViewerEffectPacket packet = (ViewerEffectPacket) PacketPool.Instance.GetPacket(PacketType.ViewerEffect); 176 ViewerEffectPacket packet = (ViewerEffectPacket)PacketPool.Instance.GetPacket(PacketType.ViewerEffect);
177 // TODO: don't create new blocks if recycling an old packet 177 // TODO: don't create new blocks if recycling an old packet
178 packet.Effect = effectBlock; 178 List<ViewerEffectPacket.EffectBlock> effectBlock = new List<ViewerEffectPacket.EffectBlock>();
179 for (int i = 0; i < args.Count; i++)
180 {
181 ViewerEffectPacket.EffectBlock effect = new ViewerEffectPacket.EffectBlock();
182 effect.AgentID = args[i].AgentID;
183 effect.Color = args[i].Color;
184 effect.Duration = args[i].Duration;
185 effect.ID = args[i].ID;
186 effect.Type = args[i].Type;
187 effectBlock.Add(effect);
188 }
189 packet.Effect = effectBlock.ToArray();
179 190
180 // Wasteful, I know 191 // Wasteful, I know
181 IClientAPI[] LocalClients = new IClientAPI[0]; 192 IClientAPI[] LocalClients = new IClientAPI[0];
@@ -205,4 +216,4 @@ namespace OpenSim.Framework
205 } 216 }
206 } 217 }
207 } 218 }
208} \ No newline at end of file 219}
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 8344196..2ade592 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -41,7 +41,8 @@ namespace OpenSim.Framework
41 IClientAPI Sender { get; set; } 41 IClientAPI Sender { get; set; }
42 } 42 }
43 43
44 public delegate void ViewerEffectEventHandler(IClientAPI sender, ViewerEffectPacket.EffectBlock[] effectBlock); 44
45 public delegate void ViewerEffectEventHandler(IClientAPI sender, List<ViewerEffectEventHandlerArg> args);
45 46
46 public delegate void ChatFromViewer(Object sender, ChatFromViewerArgs e); 47 public delegate void ChatFromViewer(Object sender, ChatFromViewerArgs e);
47 48
@@ -235,6 +236,15 @@ namespace OpenSim.Framework
235 #endregion 236 #endregion
236 } 237 }
237 238
239 public class ViewerEffectEventHandlerArg : EventArgs
240 {
241 public LLUUID AgentID;
242 public byte[] Color;
243 public float Duration;
244 public LLUUID ID;
245 public byte Type;
246 }
247
238 public class LandUpdateArgs : EventArgs 248 public class LandUpdateArgs : EventArgs
239 { 249 {
240 public LLUUID AuthBuyerID; 250 public LLUUID AuthBuyerID;
@@ -301,6 +311,66 @@ namespace OpenSim.Framework
301 public float waterHeight; 311 public float waterHeight;
302 public string simName; 312 public string simName;
303 } 313 }
314
315 public class UpdateShapeArgs : EventArgs
316 {
317 public uint ObjectLocalID;
318 public ushort PathBegin;
319 public byte PathCurve;
320 public ushort PathEnd;
321 public sbyte PathRadiusOffset;
322 public byte PathRevolutions;
323 public byte PathScaleX;
324 public byte PathScaleY;
325 public byte PathShearX;
326 public byte PathShearY;
327 public sbyte PathSkew;
328 public sbyte PathTaperX;
329 public sbyte PathTaperY;
330 public sbyte PathTwist;
331 public sbyte PathTwistBegin;
332 public ushort ProfileBegin;
333 public byte ProfileCurve;
334 public ushort ProfileEnd;
335 public ushort ProfileHollow;
336 }
337
338 public class RequestAssetArgs : EventArgs
339 {
340 public int ChannelType;
341 public float Priority;
342 public int SourceType;
343 public LLUUID TransferID;
344 }
345 public class AgentUpdateArgs : EventArgs
346 {
347 public LLUUID AgentID;
348 public LLQuaternion BodyRotation;
349 public LLVector3 CameraAtAxis;
350 public LLVector3 CameraCenter;
351 public LLVector3 CameraLeftAxis;
352 public LLVector3 CameraUpAxis;
353 public uint ControlFlags;
354 public float Far;
355 public byte Flags;
356 public LLQuaternion HeadRotation;
357 public LLUUID SessionID;
358 public byte State;
359 }
360
361 public class AvatarPickerReplyAgentDataArgs : EventArgs
362 {
363 public LLUUID AgentID;
364 public LLUUID QueryID;
365 }
366
367 public class AvatarPickerReplyDataArgs : EventArgs
368 {
369 public LLUUID AvatarID;
370 public byte[] FirstName;
371 public byte[] LastName;
372 }
373
304 public delegate void TextureRequest(Object sender, TextureRequestArgs e); 374 public delegate void TextureRequest(Object sender, TextureRequestArgs e);
305 375
306 public delegate void AvatarNowWearing(Object sender, AvatarWearingArgs e); 376 public delegate void AvatarNowWearing(Object sender, AvatarWearingArgs e);
@@ -325,7 +395,7 @@ namespace OpenSim.Framework
325 float height, float seconds, byte size, byte action, float north, float west, float south, float east, 395 float height, float seconds, byte size, byte action, float north, float west, float south, float east,
326 IClientAPI remoteClient); 396 IClientAPI remoteClient);
327 397
328 public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam); 398 public delegate void SetAppearance(byte[] texture, List<byte> visualParamList);
329 399
330 public delegate void StartAnim(IClientAPI remoteClient, LLUUID animID); 400 public delegate void StartAnim(IClientAPI remoteClient, LLUUID animID);
331 401
@@ -362,7 +432,7 @@ namespace OpenSim.Framework
362 432
363 public delegate void GenericCall7(IClientAPI remoteClient, uint localID, string message); 433 public delegate void GenericCall7(IClientAPI remoteClient, uint localID, string message);
364 434
365 public delegate void UpdateShape(LLUUID agentID, uint localID, ObjectShapePacket.ObjectDataBlock shapeBlock); 435 public delegate void UpdateShape(LLUUID agentID, uint localID, UpdateShapeArgs shapeBlock);
366 436
367 public delegate void ObjectExtraParams(LLUUID agentID, uint localID, ushort type, bool inUse, byte[] data); 437 public delegate void ObjectExtraParams(LLUUID agentID, uint localID, ushort type, bool inUse, byte[] data);
368 438
@@ -396,7 +466,7 @@ namespace OpenSim.Framework
396 466
397 public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status); 467 public delegate void NewAvatar(IClientAPI remoteClient, LLUUID agentID, bool status);
398 468
399 public delegate void UpdateAgent(IClientAPI remoteClient, AgentUpdatePacket agentData); 469 public delegate void UpdateAgent(IClientAPI remoteClient, AgentUpdateArgs agentData);
400 470
401 public delegate void AgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset); 471 public delegate void AgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset);
402 472
@@ -427,7 +497,7 @@ namespace OpenSim.Framework
427 497
428 public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client); 498 public delegate void ParcelObjectOwnerRequest(int local_id, IClientAPI remote_client);
429 499
430 public delegate void EstateOwnerMessageRequest(EstateOwnerMessagePacket packet, IClientAPI remote_client); 500 public delegate void EstateOwnerMessageRequest(LLUUID AgentID, LLUUID SessionID, LLUUID TransactionID, LLUUID Invoice, byte[] Method, byte[][] Parameters, IClientAPI remote_client);
431 501
432 public delegate void RegionInfoRequest(IClientAPI remote_client); 502 public delegate void RegionInfoRequest(IClientAPI remote_client);
433 503
@@ -487,7 +557,7 @@ namespace OpenSim.Framework
487 public delegate void RemoveInventoryFolder( 557 public delegate void RemoveInventoryFolder(
488 IClientAPI remoteClient, LLUUID folderID); 558 IClientAPI remoteClient, LLUUID folderID);
489 559
490 public delegate void RequestAsset(IClientAPI remoteClient, TransferRequestPacket transferRequest); 560 public delegate void RequestAsset(IClientAPI remoteClient, RequestAssetArgs transferRequest);
491 561
492 public delegate void RezScript(IClientAPI remoteClient, LLUUID itemID, uint localID); 562 public delegate void RezScript(IClientAPI remoteClient, LLUUID itemID, uint localID);
493 563
@@ -822,7 +892,7 @@ namespace OpenSim.Framework
822 int PriceParcelClaim, float PriceParcelClaimFactor, int PriceParcelRent, int PricePublicObjectDecay, 892 int PriceParcelClaim, float PriceParcelClaimFactor, int PriceParcelRent, int PricePublicObjectDecay,
823 int PricePublicObjectDelete, int PriceRentLight, int PriceUpload, int TeleportMinPrice, float TeleportPriceExponent); 893 int PricePublicObjectDelete, int PriceRentLight, int PriceUpload, int TeleportMinPrice, float TeleportPriceExponent);
824 894
825 void SendAvatarPickerReply(AvatarPickerReplyPacket Pack); 895 void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data);
826 896
827 void SendAgentDataUpdate(LLUUID agentid, LLUUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle); 897 void SendAgentDataUpdate(LLUUID agentid, LLUUID activegroupid, string firstname, string lastname, ulong grouppowers, string groupname, string grouptitle);
828 898
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 7587f44..0ea7e0a 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -1651,8 +1651,23 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1651 1651
1652 } 1652 }
1653 1653
1654 public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket) 1654 public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
1655 { 1655 {
1656 //construct the AvatarPickerReply packet.
1657 AvatarPickerReplyPacket replyPacket = new AvatarPickerReplyPacket();
1658 replyPacket.AgentData.AgentID = AgentData.AgentID;
1659 replyPacket.AgentData.QueryID = AgentData.QueryID;
1660 int i = 0;
1661 List<AvatarPickerReplyPacket.DataBlock> data_block = new List<AvatarPickerReplyPacket.DataBlock>();
1662 foreach (AvatarPickerReplyDataArgs arg in Data)
1663 {
1664 AvatarPickerReplyPacket.DataBlock db = new AvatarPickerReplyPacket.DataBlock();
1665 db.AvatarID = arg.AvatarID;
1666 db.FirstName = arg.FirstName;
1667 db.LastName = arg.LastName;
1668 data_block.Add(db);
1669 }
1670 replyPacket.Data = data_block.ToArray();
1656 OutPacket(replyPacket, ThrottleOutPacketType.Task); 1671 OutPacket(replyPacket, ThrottleOutPacketType.Task);
1657 } 1672 }
1658 1673
@@ -2904,11 +2919,26 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2904 handlerViewerEffect = OnViewerEffect; 2919 handlerViewerEffect = OnViewerEffect;
2905 if (handlerViewerEffect != null) 2920 if (handlerViewerEffect != null)
2906 { 2921 {
2907 handlerViewerEffect(sender, viewer.Effect); 2922 int length = viewer.Effect.Length;
2923 List<ViewerEffectEventHandlerArg> args = new List<ViewerEffectEventHandlerArg>(length);
2924 for (int i = 0; i < length; i++)
2925 {
2926 //copy the effects block arguments into the event handler arg.
2927 ViewerEffectEventHandlerArg argument = new ViewerEffectEventHandlerArg();
2928 argument.AgentID = viewer.Effect[i].AgentID;
2929 argument.Color = viewer.Effect[i].Color;
2930 argument.Duration = viewer.Effect[i].Duration;
2931 argument.ID = viewer.Effect[i].ID;
2932 argument.Type = viewer.Effect[i].Type;
2933 args.Add(argument);
2934 }
2935
2936 handlerViewerEffect(sender, args);
2908 } 2937 }
2909 2938
2910 return true; 2939 return true;
2911 } 2940 }
2941
2912 2942
2913 public void SendScriptQuestion(LLUUID taskID, string taskName, string ownerName, LLUUID itemID, int question) 2943 public void SendScriptQuestion(LLUUID taskID, string taskName, string ownerName, LLUUID itemID, int question)
2914 { 2944 {
@@ -3778,7 +3808,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3778 // for the client session anyway, in order to protect ourselves against bad code in plugins 3808 // for the client session anyway, in order to protect ourselves against bad code in plugins
3779 try 3809 try
3780 { 3810 {
3781 handlerSetAppearance(appear.ObjectData.TextureEntry, appear.VisualParam); 3811 List<byte> visualparams = new List<byte>();
3812 foreach (AgentSetAppearancePacket.VisualParamBlock x in appear.VisualParam)
3813 {
3814 visualparams.Add(x.ParamValue);
3815 }
3816
3817 handlerSetAppearance(appear.ObjectData.TextureEntry, visualparams);
3782 } 3818 }
3783 catch (Exception e) 3819 catch (Exception e)
3784 { 3820 {
@@ -3885,9 +3921,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3885 { 3921 {
3886 AgentUpdatePacket agenUpdate = (AgentUpdatePacket)Pack; 3922 AgentUpdatePacket agenUpdate = (AgentUpdatePacket)Pack;
3887 3923
3924 AgentUpdatePacket.AgentDataBlock x = agenUpdate.AgentData;
3925 AgentUpdateArgs arg = new AgentUpdateArgs();
3926 arg.AgentID = x.AgentID;
3927 arg.BodyRotation = x.BodyRotation;
3928 arg.CameraAtAxis = x.CameraAtAxis;
3929 arg.CameraCenter = x.CameraCenter;
3930 arg.CameraLeftAxis = x.CameraLeftAxis;
3931 arg.CameraUpAxis = x.CameraUpAxis;
3932 arg.ControlFlags = x.ControlFlags;
3933 arg.Far = x.Far;
3934 arg.Flags = x.Flags;
3935 arg.HeadRotation = x.HeadRotation;
3936 arg.SessionID = x.SessionID;
3937 arg.State = x.State;
3938
3888 handlerAgentUpdate = OnAgentUpdate; 3939 handlerAgentUpdate = OnAgentUpdate;
3889 if (handlerAgentUpdate != null) 3940 if (handlerAgentUpdate != null)
3890 OnAgentUpdate(this, agenUpdate); 3941 OnAgentUpdate(this, arg);
3891 3942
3892 handlerAgentUpdate = null; 3943 handlerAgentUpdate = null;
3893 //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); 3944 //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa);
@@ -4085,8 +4136,29 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4085 handlerUpdatePrimShape = OnUpdatePrimShape; 4136 handlerUpdatePrimShape = OnUpdatePrimShape;
4086 if (handlerUpdatePrimShape != null) 4137 if (handlerUpdatePrimShape != null)
4087 { 4138 {
4139 UpdateShapeArgs shapeData = new UpdateShapeArgs();
4140 shapeData.ObjectLocalID = shapePacket.ObjectData[i].ObjectLocalID;
4141 shapeData.PathBegin = shapePacket.ObjectData[i].PathBegin;
4142 shapeData.PathCurve = shapePacket.ObjectData[i].PathCurve;
4143 shapeData.PathEnd = shapePacket.ObjectData[i].PathEnd;
4144 shapeData.PathRadiusOffset = shapePacket.ObjectData[i].PathRadiusOffset;
4145 shapeData.PathRevolutions = shapePacket.ObjectData[i].PathRevolutions;
4146 shapeData.PathScaleX = shapePacket.ObjectData[i].PathScaleX;
4147 shapeData.PathScaleY = shapePacket.ObjectData[i].PathScaleY;
4148 shapeData.PathShearX = shapePacket.ObjectData[i].PathShearX;
4149 shapeData.PathShearY = shapePacket.ObjectData[i].PathShearY;
4150 shapeData.PathSkew = shapePacket.ObjectData[i].PathSkew;
4151 shapeData.PathTaperX = shapePacket.ObjectData[i].PathTaperX;
4152 shapeData.PathTaperY = shapePacket.ObjectData[i].PathTaperY;
4153 shapeData.PathTwist = shapePacket.ObjectData[i].PathTwist;
4154 shapeData.PathTwistBegin = shapePacket.ObjectData[i].PathTwistBegin;
4155 shapeData.ProfileBegin = shapePacket.ObjectData[i].ProfileBegin;
4156 shapeData.ProfileCurve = shapePacket.ObjectData[i].ProfileCurve;
4157 shapeData.ProfileEnd = shapePacket.ObjectData[i].ProfileEnd;
4158 shapeData.ProfileHollow = shapePacket.ObjectData[i].ProfileHollow;
4159
4088 handlerUpdatePrimShape(m_agentId, shapePacket.ObjectData[i].ObjectLocalID, 4160 handlerUpdatePrimShape(m_agentId, shapePacket.ObjectData[i].ObjectLocalID,
4089 shapePacket.ObjectData[i]); 4161 shapeData);
4090 } 4162 }
4091 } 4163 }
4092 break; 4164 break;
diff --git a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs
index 8f29507..c482d94 100644
--- a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs
+++ b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs
@@ -26,6 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections.Generic;
29using System.Runtime.Serialization; 30using System.Runtime.Serialization;
30using System.Security.Permissions; 31using System.Security.Permissions;
31using libsecondlife; 32using libsecondlife;
@@ -102,15 +103,12 @@ namespace OpenSim.Region.Environment.Scenes
102 /// </summary> 103 /// </summary>
103 /// <param name="texture"></param> 104 /// <param name="texture"></param>
104 /// <param name="visualParam"></param> 105 /// <param name="visualParam"></param>
105 public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) 106 public void SetAppearance(byte[] texture, List<byte> visualParam)
106 { 107 {
107 LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length); 108 LLObject.TextureEntry textureEnt = new LLObject.TextureEntry(texture, 0, texture.Length);
108 m_textureEntry = textureEnt; 109 m_textureEntry = textureEnt;
109 110
110 for (int i = 0; i < visualParam.Length; i++) 111 m_visualParams = visualParam.ToArray();
111 {
112 m_visualParams[i] = visualParam[i].ParamValue;
113 }
114 112
115 // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters. 113 // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters.
116 // (float)m_visualParams[25] = Height 114 // (float)m_visualParams[25] = Height
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs
index f29e1f3..80e71c8 100644
--- a/OpenSim/Region/Environment/Scenes/InnerScene.cs
+++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs
@@ -1275,14 +1275,35 @@ namespace OpenSim.Region.Environment.Scenes
1275 /// </summary> 1275 /// </summary>
1276 /// <param name="primLocalID"></param> 1276 /// <param name="primLocalID"></param>
1277 /// <param name="shapeBlock"></param> 1277 /// <param name="shapeBlock"></param>
1278 public void UpdatePrimShape(LLUUID agentID, uint primLocalID, ObjectShapePacket.ObjectDataBlock shapeBlock) 1278 public void UpdatePrimShape(LLUUID agentID, uint primLocalID, UpdateShapeArgs shapeBlock)
1279 { 1279 {
1280 SceneObjectGroup group = GetGroupByPrim(primLocalID); 1280 SceneObjectGroup group = GetGroupByPrim(primLocalID);
1281 if (group != null) 1281 if (group != null)
1282 { 1282 {
1283 if (m_parentScene.Permissions.CanEditObjectPosition(agentID, group.GetPartsFullID(primLocalID))) 1283 if (m_parentScene.Permissions.CanEditObjectPosition(agentID, group.GetPartsFullID(primLocalID)))
1284 { 1284 {
1285 group.UpdateShape(shapeBlock, primLocalID); 1285 ObjectShapePacket.ObjectDataBlock shapeData = new ObjectShapePacket.ObjectDataBlock();
1286 shapeData.ObjectLocalID = shapeBlock.ObjectLocalID;
1287 shapeData.PathBegin = shapeBlock.PathBegin;
1288 shapeData.PathCurve = shapeBlock.PathCurve;
1289 shapeData.PathEnd = shapeBlock.PathEnd;
1290 shapeData.PathRadiusOffset = shapeBlock.PathRadiusOffset;
1291 shapeData.PathRevolutions = shapeBlock.PathRevolutions;
1292 shapeData.PathScaleX = shapeBlock.PathScaleX;
1293 shapeData.PathScaleY = shapeBlock.PathScaleY;
1294 shapeData.PathShearX = shapeBlock.PathShearX;
1295 shapeData.PathShearY = shapeBlock.PathShearY;
1296 shapeData.PathSkew = shapeBlock.PathSkew;
1297 shapeData.PathTaperX = shapeBlock.PathTaperX;
1298 shapeData.PathTaperY = shapeBlock.PathTaperY;
1299 shapeData.PathTwist = shapeBlock.PathTwist;
1300 shapeData.PathTwistBegin = shapeBlock.PathTwistBegin;
1301 shapeData.ProfileBegin = shapeBlock.ProfileBegin;
1302 shapeData.ProfileCurve = shapeBlock.ProfileCurve;
1303 shapeData.ProfileEnd = shapeBlock.ProfileEnd;
1304 shapeData.ProfileHollow = shapeBlock.ProfileHollow;
1305
1306 group.UpdateShape(shapeData, primLocalID);
1286 } 1307 }
1287 } 1308 }
1288 } 1309 }
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 0a4906a..623368a 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -245,7 +245,21 @@ namespace OpenSim.Region.Environment.Scenes
245 searchData = new AvatarPickerReplyPacket.DataBlock[0]; 245 searchData = new AvatarPickerReplyPacket.DataBlock[0];
246 } 246 }
247 replyPacket.Data = searchData; 247 replyPacket.Data = searchData;
248 client.SendAvatarPickerReply(replyPacket); 248
249 AvatarPickerReplyAgentDataArgs agent_data = new AvatarPickerReplyAgentDataArgs();
250 agent_data.AgentID = replyPacket.AgentData.AgentID;
251 agent_data.QueryID = replyPacket.AgentData.QueryID;
252
253 List<AvatarPickerReplyDataArgs> data_args = new List<AvatarPickerReplyDataArgs>();
254 for (i = 0; i < replyPacket.Data.Length; i++)
255 {
256 AvatarPickerReplyDataArgs data_arg = new AvatarPickerReplyDataArgs();
257 data_arg.AvatarID = replyPacket.Data[i].AvatarID;
258 data_arg.FirstName = replyPacket.Data[i].FirstName;
259 data_arg.LastName = replyPacket.Data[i].LastName;
260 data_args.Add(data_arg);
261 }
262 client.SendAvatarPickerReply(agent_data, data_args);
249 } 263 }
250 } 264 }
251} 265}
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 9343ad3..9732d05 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -754,7 +754,7 @@ namespace OpenSim.Region.Environment.Scenes
754 /// <summary> 754 /// <summary>
755 /// This is the event handler for client movement. If a client is moving, this event is triggering. 755 /// This is the event handler for client movement. If a client is moving, this event is triggering.
756 /// </summary> 756 /// </summary>
757 public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdatePacket agentData) 757 public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdateArgs agentData)
758 { 758 {
759 //if (m_isChildAgent) 759 //if (m_isChildAgent)
760 //{ 760 //{
@@ -767,31 +767,31 @@ namespace OpenSim.Region.Environment.Scenes
767 767
768 m_perfMonMS = System.Environment.TickCount; 768 m_perfMonMS = System.Environment.TickCount;
769 769
770 uint flags = agentData.AgentData.ControlFlags; 770 uint flags = agentData.ControlFlags;
771 LLQuaternion bodyRotation = agentData.AgentData.BodyRotation; 771 LLQuaternion bodyRotation = agentData.BodyRotation;
772 772
773 // Camera location in world. We'll need to raytrace 773 // Camera location in world. We'll need to raytrace
774 // from this location from time to time. 774 // from this location from time to time.
775 m_CameraCenter.x = agentData.AgentData.CameraCenter.X; 775 m_CameraCenter.x = agentData.CameraCenter.X;
776 m_CameraCenter.y = agentData.AgentData.CameraCenter.Y; 776 m_CameraCenter.y = agentData.CameraCenter.Y;
777 m_CameraCenter.z = agentData.AgentData.CameraCenter.Z; 777 m_CameraCenter.z = agentData.CameraCenter.Z;
778 778
779 // Use these three vectors to figure out what the agent is looking at 779 // Use these three vectors to figure out what the agent is looking at
780 // Convert it to a Matrix and/or Quaternion 780 // Convert it to a Matrix and/or Quaternion
781 m_CameraAtAxis.x = agentData.AgentData.CameraAtAxis.X; 781 m_CameraAtAxis.x = agentData.CameraAtAxis.X;
782 m_CameraAtAxis.y = agentData.AgentData.CameraAtAxis.Y; 782 m_CameraAtAxis.y = agentData.CameraAtAxis.Y;
783 m_CameraAtAxis.z = agentData.AgentData.CameraAtAxis.Z; 783 m_CameraAtAxis.z = agentData.CameraAtAxis.Z;
784 784
785 m_CameraLeftAxis.x = agentData.AgentData.CameraLeftAxis.X; 785 m_CameraLeftAxis.x = agentData.CameraLeftAxis.X;
786 m_CameraLeftAxis.y = agentData.AgentData.CameraLeftAxis.Y; 786 m_CameraLeftAxis.y = agentData.CameraLeftAxis.Y;
787 m_CameraLeftAxis.z = agentData.AgentData.CameraLeftAxis.Z; 787 m_CameraLeftAxis.z = agentData.CameraLeftAxis.Z;
788 788
789 m_CameraUpAxis.x = agentData.AgentData.CameraUpAxis.X; 789 m_CameraUpAxis.x = agentData.CameraUpAxis.X;
790 m_CameraUpAxis.y = agentData.AgentData.CameraUpAxis.Y; 790 m_CameraUpAxis.y = agentData.CameraUpAxis.Y;
791 m_CameraUpAxis.z = agentData.AgentData.CameraUpAxis.Z; 791 m_CameraUpAxis.z = agentData.CameraUpAxis.Z;
792 792
793 // The Agent's Draw distance setting 793 // The Agent's Draw distance setting
794 m_DrawDistance = agentData.AgentData.Far; 794 m_DrawDistance = agentData.Far;
795 795
796 if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0) 796 if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0)
797 { 797 {
@@ -1569,7 +1569,7 @@ namespace OpenSim.Region.Environment.Scenes
1569 m_appearance.SendAppearanceToOtherAgent(avatar); 1569 m_appearance.SendAppearanceToOtherAgent(avatar);
1570 } 1570 }
1571 1571
1572 public void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam) 1572 public void SetAppearance(byte[] texture, List<byte> visualParam)
1573 { 1573 {
1574 m_appearance.SetAppearance(texture, visualParam); 1574 m_appearance.SetAppearance(texture, visualParam);
1575 SetHeight(m_appearance.AvatarHeight); 1575 SetHeight(m_appearance.AvatarHeight);
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
index 51bc0d8..e5e6469 100644
--- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
@@ -271,7 +271,7 @@ namespace OpenSim.Region.Examples.SimpleModule
271 { 271 {
272 } 272 }
273 273
274 public virtual void SendAvatarPickerReply(AvatarPickerReplyPacket response) 274 public virtual void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
275 { 275 {
276 } 276 }
277 277
@@ -528,9 +528,10 @@ namespace OpenSim.Region.Examples.SimpleModule
528 frame = 0; 528 frame = 0;
529 if (OnAgentUpdate != null) 529 if (OnAgentUpdate != null)
530 { 530 {
531 AgentUpdatePacket pack = new AgentUpdatePacket(); 531 AgentUpdateArgs pack = new AgentUpdateArgs();
532 pack.AgentData.ControlFlags = movementFlag; 532 pack.ControlFlags = movementFlag;
533 pack.AgentData.BodyRotation = bodyDirection; 533 pack.BodyRotation = bodyDirection;
534
534 OnAgentUpdate(this, pack); 535 OnAgentUpdate(this, pack);
535 } 536 }
536 if (flyState == 0) 537 if (flyState == 0)