diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 98 |
1 files changed, 76 insertions, 22 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 4e2a0b7..0df1748 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -232,6 +232,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
232 | public event ObjectBuy OnObjectBuy; | 232 | public event ObjectBuy OnObjectBuy; |
233 | public event BuyObjectInventory OnBuyObjectInventory; | 233 | public event BuyObjectInventory OnBuyObjectInventory; |
234 | public event AgentSit OnUndo; | 234 | public event AgentSit OnUndo; |
235 | public event AgentSit OnRedo; | ||
236 | public event LandUndo OnLandUndo; | ||
235 | public event ForceReleaseControls OnForceReleaseControls; | 237 | public event ForceReleaseControls OnForceReleaseControls; |
236 | public event GodLandStatRequest OnLandStatRequest; | 238 | public event GodLandStatRequest OnLandStatRequest; |
237 | public event RequestObjectPropertiesFamily OnObjectGroupRequest; | 239 | public event RequestObjectPropertiesFamily OnObjectGroupRequest; |
@@ -3307,9 +3309,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
3307 | awb.ItemID = wearables[i].ItemID; | 3309 | awb.ItemID = wearables[i].ItemID; |
3308 | aw.WearableData[i] = awb; | 3310 | aw.WearableData[i] = awb; |
3309 | 3311 | ||
3310 | // m_log.DebugFormat( | 3312 | // m_log.DebugFormat( |
3311 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", | 3313 | // "[APPEARANCE]: Sending wearable item/asset {0} {1} (index {2}) for {3}", |
3312 | // awb.ItemID, awb.AssetID, i, Name); | 3314 | // awb.ItemID, awb.AssetID, i, Name); |
3313 | } | 3315 | } |
3314 | 3316 | ||
3315 | OutPacket(aw, ThrottleOutPacketType.Task); | 3317 | OutPacket(aw, ThrottleOutPacketType.Task); |
@@ -4668,6 +4670,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
4668 | AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName, false); | 4670 | AddLocalPacketHandler(PacketType.ObjectName, HandleObjectName, false); |
4669 | AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions, false); | 4671 | AddLocalPacketHandler(PacketType.ObjectPermissions, HandleObjectPermissions, false); |
4670 | AddLocalPacketHandler(PacketType.Undo, HandleUndo, false); | 4672 | AddLocalPacketHandler(PacketType.Undo, HandleUndo, false); |
4673 | AddLocalPacketHandler(PacketType.UndoLand, HandleLandUndo, false); | ||
4674 | AddLocalPacketHandler(PacketType.Redo, HandleRedo, false); | ||
4671 | AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); | 4675 | AddLocalPacketHandler(PacketType.ObjectDuplicateOnRay, HandleObjectDuplicateOnRay); |
4672 | AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily, false); | 4676 | AddLocalPacketHandler(PacketType.RequestObjectPropertiesFamily, HandleRequestObjectPropertiesFamily, false); |
4673 | AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); | 4677 | AddLocalPacketHandler(PacketType.ObjectIncludeInSearch, HandleObjectIncludeInSearch); |
@@ -5838,7 +5842,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5838 | handlerSoundTrigger(soundTriggerPacket.SoundData.SoundID, soundTriggerPacket.SoundData.OwnerID, | 5842 | handlerSoundTrigger(soundTriggerPacket.SoundData.SoundID, soundTriggerPacket.SoundData.OwnerID, |
5839 | soundTriggerPacket.SoundData.ObjectID, soundTriggerPacket.SoundData.ParentID, | 5843 | soundTriggerPacket.SoundData.ObjectID, soundTriggerPacket.SoundData.ParentID, |
5840 | soundTriggerPacket.SoundData.Gain, soundTriggerPacket.SoundData.Position, | 5844 | soundTriggerPacket.SoundData.Gain, soundTriggerPacket.SoundData.Position, |
5841 | soundTriggerPacket.SoundData.Handle); | 5845 | soundTriggerPacket.SoundData.Handle, 0); |
5842 | 5846 | ||
5843 | } | 5847 | } |
5844 | return true; | 5848 | return true; |
@@ -6736,6 +6740,56 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
6736 | return true; | 6740 | return true; |
6737 | } | 6741 | } |
6738 | 6742 | ||
6743 | private bool HandleLandUndo(IClientAPI sender, Packet Pack) | ||
6744 | { | ||
6745 | UndoLandPacket undolanditem = (UndoLandPacket)Pack; | ||
6746 | |||
6747 | #region Packet Session and User Check | ||
6748 | if (m_checkPackets) | ||
6749 | { | ||
6750 | if (undolanditem.AgentData.SessionID != SessionId || | ||
6751 | undolanditem.AgentData.AgentID != AgentId) | ||
6752 | return true; | ||
6753 | } | ||
6754 | #endregion | ||
6755 | |||
6756 | LandUndo handlerOnUndo = OnLandUndo; | ||
6757 | if (handlerOnUndo != null) | ||
6758 | { | ||
6759 | handlerOnUndo(this); | ||
6760 | } | ||
6761 | return true; | ||
6762 | } | ||
6763 | |||
6764 | private bool HandleRedo(IClientAPI sender, Packet Pack) | ||
6765 | { | ||
6766 | RedoPacket redoitem = (RedoPacket)Pack; | ||
6767 | |||
6768 | #region Packet Session and User Check | ||
6769 | if (m_checkPackets) | ||
6770 | { | ||
6771 | if (redoitem.AgentData.SessionID != SessionId || | ||
6772 | redoitem.AgentData.AgentID != AgentId) | ||
6773 | return true; | ||
6774 | } | ||
6775 | #endregion | ||
6776 | |||
6777 | if (redoitem.ObjectData.Length > 0) | ||
6778 | { | ||
6779 | for (int i = 0; i < redoitem.ObjectData.Length; i++) | ||
6780 | { | ||
6781 | UUID objiD = redoitem.ObjectData[i].ObjectID; | ||
6782 | AgentSit handlerOnRedo = OnRedo; | ||
6783 | if (handlerOnRedo != null) | ||
6784 | { | ||
6785 | handlerOnRedo(this, objiD); | ||
6786 | } | ||
6787 | |||
6788 | } | ||
6789 | } | ||
6790 | return true; | ||
6791 | } | ||
6792 | |||
6739 | private bool HandleObjectDuplicateOnRay(IClientAPI sender, Packet Pack) | 6793 | private bool HandleObjectDuplicateOnRay(IClientAPI sender, Packet Pack) |
6740 | { | 6794 | { |
6741 | ObjectDuplicateOnRayPacket dupeOnRay = (ObjectDuplicateOnRayPacket)Pack; | 6795 | ObjectDuplicateOnRayPacket dupeOnRay = (ObjectDuplicateOnRayPacket)Pack; |
@@ -8311,8 +8365,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8311 | { | 8365 | { |
8312 | OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter), | 8366 | OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter), |
8313 | convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter), | 8367 | convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter), |
8314 | Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter))), | 8368 | Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter), Culture.NumberFormatInfo)), |
8315 | (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)), | 8369 | (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo), |
8316 | Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)), | 8370 | Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)), |
8317 | convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter)); | 8371 | convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter)); |
8318 | } | 8372 | } |
@@ -8360,8 +8414,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8360 | if (splitField.Length == 3) | 8414 | if (splitField.Length == 3) |
8361 | { | 8415 | { |
8362 | Int16 corner = Convert.ToInt16(splitField[0]); | 8416 | Int16 corner = Convert.ToInt16(splitField[0]); |
8363 | float lowValue = (float)Convert.ToDecimal(splitField[1]); | 8417 | float lowValue = (float)Convert.ToDecimal(splitField[1], Culture.NumberFormatInfo); |
8364 | float highValue = (float)Convert.ToDecimal(splitField[2]); | 8418 | float highValue = (float)Convert.ToDecimal(splitField[2], Culture.NumberFormatInfo); |
8365 | 8419 | ||
8366 | OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue); | 8420 | OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue); |
8367 | } | 8421 | } |
@@ -8384,19 +8438,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
8384 | { | 8438 | { |
8385 | string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter); | 8439 | string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter); |
8386 | if (!tmp.Contains(".")) tmp += ".00"; | 8440 | if (!tmp.Contains(".")) tmp += ".00"; |
8387 | float WaterHeight = (float)Convert.ToDecimal(tmp); | 8441 | float WaterHeight = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo); |
8388 | tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter); | 8442 | tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter); |
8389 | if (!tmp.Contains(".")) tmp += ".00"; | 8443 | if (!tmp.Contains(".")) tmp += ".00"; |
8390 | float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp); | 8444 | float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo); |
8391 | tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter); | 8445 | tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter); |
8392 | if (!tmp.Contains(".")) tmp += ".00"; | 8446 | if (!tmp.Contains(".")) tmp += ".00"; |
8393 | float TerrainLowerLimit = (float)Convert.ToDecimal(tmp); | 8447 | float TerrainLowerLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo); |
8394 | bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter); | 8448 | bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter); |
8395 | bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter); | 8449 | bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter); |
8396 | float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)); | 8450 | float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo); |
8397 | bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter); | 8451 | bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter); |
8398 | bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter); | 8452 | bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter); |
8399 | float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter)); | 8453 | float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo); |
8400 | 8454 | ||
8401 | OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour); | 8455 | OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour); |
8402 | 8456 | ||
@@ -13928,8 +13982,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
13928 | { | 13982 | { |
13929 | OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter), | 13983 | OnSetEstateFlagsRequest(convertParamStringToBool(messagePacket.ParamList[0].Parameter), convertParamStringToBool(messagePacket.ParamList[1].Parameter), |
13930 | convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter), | 13984 | convertParamStringToBool(messagePacket.ParamList[2].Parameter), !convertParamStringToBool(messagePacket.ParamList[3].Parameter), |
13931 | Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter))), | 13985 | Convert.ToInt16(Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[4].Parameter), Culture.NumberFormatInfo)), |
13932 | (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)), | 13986 | (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo), |
13933 | Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)), | 13987 | Convert.ToInt16(Utils.BytesToString(messagePacket.ParamList[6].Parameter)), |
13934 | convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter)); | 13988 | convertParamStringToBool(messagePacket.ParamList[7].Parameter), convertParamStringToBool(messagePacket.ParamList[8].Parameter)); |
13935 | } | 13989 | } |
@@ -13977,8 +14031,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
13977 | if (splitField.Length == 3) | 14031 | if (splitField.Length == 3) |
13978 | { | 14032 | { |
13979 | Int16 corner = Convert.ToInt16(splitField[0]); | 14033 | Int16 corner = Convert.ToInt16(splitField[0]); |
13980 | float lowValue = (float)Convert.ToDecimal(splitField[1]); | 14034 | float lowValue = (float)Convert.ToDecimal(splitField[1], Culture.NumberFormatInfo); |
13981 | float highValue = (float)Convert.ToDecimal(splitField[2]); | 14035 | float highValue = (float)Convert.ToDecimal(splitField[2], Culture.NumberFormatInfo); |
13982 | 14036 | ||
13983 | OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue); | 14037 | OnSetEstateTerrainTextureHeights(this, corner, lowValue, highValue); |
13984 | } | 14038 | } |
@@ -14001,19 +14055,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
14001 | { | 14055 | { |
14002 | string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter); | 14056 | string tmp = Utils.BytesToString(messagePacket.ParamList[0].Parameter); |
14003 | if (!tmp.Contains(".")) tmp += ".00"; | 14057 | if (!tmp.Contains(".")) tmp += ".00"; |
14004 | float WaterHeight = (float)Convert.ToDecimal(tmp); | 14058 | float WaterHeight = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo); |
14005 | tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter); | 14059 | tmp = Utils.BytesToString(messagePacket.ParamList[1].Parameter); |
14006 | if (!tmp.Contains(".")) tmp += ".00"; | 14060 | if (!tmp.Contains(".")) tmp += ".00"; |
14007 | float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp); | 14061 | float TerrainRaiseLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo); |
14008 | tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter); | 14062 | tmp = Utils.BytesToString(messagePacket.ParamList[2].Parameter); |
14009 | if (!tmp.Contains(".")) tmp += ".00"; | 14063 | if (!tmp.Contains(".")) tmp += ".00"; |
14010 | float TerrainLowerLimit = (float)Convert.ToDecimal(tmp); | 14064 | float TerrainLowerLimit = (float)Convert.ToDecimal(tmp, Culture.NumberFormatInfo); |
14011 | bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter); | 14065 | bool UseEstateSun = convertParamStringToBool(messagePacket.ParamList[3].Parameter); |
14012 | bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter); | 14066 | bool UseFixedSun = convertParamStringToBool(messagePacket.ParamList[4].Parameter); |
14013 | float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter)); | 14067 | float SunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[5].Parameter), Culture.NumberFormatInfo); |
14014 | bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter); | 14068 | bool UseGlobal = convertParamStringToBool(messagePacket.ParamList[6].Parameter); |
14015 | bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter); | 14069 | bool EstateFixedSun = convertParamStringToBool(messagePacket.ParamList[7].Parameter); |
14016 | float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter)); | 14070 | float EstateSunHour = (float)Convert.ToDecimal(Utils.BytesToString(messagePacket.ParamList[8].Parameter), Culture.NumberFormatInfo); |
14017 | 14071 | ||
14018 | OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour); | 14072 | OnSetRegionTerrainSettings(WaterHeight, TerrainRaiseLimit, TerrainLowerLimit, UseEstateSun, UseFixedSun, SunHour, UseGlobal, EstateFixedSun, EstateSunHour); |
14019 | 14073 | ||