aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorAdam Frisby2008-05-07 20:31:48 +0000
committerAdam Frisby2008-05-07 20:31:48 +0000
commita95f13a646e6c0ff07c765437011a29c3372f1b9 (patch)
tree7129f9dae3624287f7f8320d0cf16e90e46f0298 /OpenSim/Region
parentenable velocity on our full update, as I think I know why (diff)
downloadopensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.zip
opensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.tar.gz
opensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.tar.bz2
opensim-SC-a95f13a646e6c0ff07c765437011a29c3372f1b9.tar.xz
* Removes references to libsecondlife.Packets from IClientAPI. BAD PROGRAMMERS. NAUGHTY.
* Thanks to Andrew (DeepThink) for working on this one.
Diffstat (limited to '')
-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
6 files changed, 140 insertions, 34 deletions
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)