diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 82 |
1 files changed, 77 insertions, 5 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; |