aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs310
-rw-r--r--OpenSim/Region/Communications/OGS1/OGS1GridServices.cs6
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs132
-rw-r--r--OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs216
-rw-r--r--OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs2
-rw-r--r--OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs4
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneManager.cs2
-rw-r--r--OpenSim/Region/Physics/Meshing/Extruder.cs27
-rw-r--r--OpenSim/Region/Physics/Meshing/Meshmerizer.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs18
-rw-r--r--OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs16
-rw-r--r--OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/XmlRequest.cs8
-rw-r--r--OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs8
13 files changed, 351 insertions, 406 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index 440392a..071a1bb 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -47,7 +47,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
47{ 47{
48 public delegate bool PacketMethod(IClientAPI simClient, Packet packet); 48 public delegate bool PacketMethod(IClientAPI simClient, Packet packet);
49 49
50 public class PacketDupeLimiter 50 public class PacketDupeLimiter
51 { 51 {
52 public PacketType pktype; 52 public PacketType pktype;
53 public int timeIn; 53 public int timeIn;
@@ -658,7 +658,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
658 { 658 {
659 // this will normally trigger at least one packet (ping response) 659 // this will normally trigger at least one packet (ping response)
660 SendStartPingCheck(0); 660 SendStartPingCheck(0);
661
662 } 661 }
663 } 662 }
664 else 663 else
@@ -666,7 +665,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
666 // Something received in the meantime - we can reset the counters 665 // Something received in the meantime - we can reset the counters
667 m_probesWithNoIngressPackets = 0; 666 m_probesWithNoIngressPackets = 0;
668 m_lastPacketsReceived = m_packetsReceived; 667 m_lastPacketsReceived = m_packetsReceived;
669
670 } 668 }
671 //SendPacketStats(); 669 //SendPacketStats();
672 } 670 }
@@ -726,7 +724,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
726 // Previously ClientView.API partial class 724 // Previously ClientView.API partial class
727 public event Action<IClientAPI> OnLogout; 725 public event Action<IClientAPI> OnLogout;
728 public event ObjectPermissions OnObjectPermissions; 726 public event ObjectPermissions OnObjectPermissions;
729
730 public event Action<IClientAPI> OnConnectionClosed; 727 public event Action<IClientAPI> OnConnectionClosed;
731 public event ViewerEffectEventHandler OnViewerEffect; 728 public event ViewerEffectEventHandler OnViewerEffect;
732 public event ImprovedInstantMessage OnInstantMessage; 729 public event ImprovedInstantMessage OnInstantMessage;
@@ -788,12 +785,10 @@ namespace OpenSim.Region.ClientStack.LindenUDP
788 public event DisconnectUser OnDisconnectUser; 785 public event DisconnectUser OnDisconnectUser;
789 public event RequestAvatarProperties OnRequestAvatarProperties; 786 public event RequestAvatarProperties OnRequestAvatarProperties;
790 public event SetAlwaysRun OnSetAlwaysRun; 787 public event SetAlwaysRun OnSetAlwaysRun;
791
792 public event FetchInventory OnAgentDataUpdateRequest; 788 public event FetchInventory OnAgentDataUpdateRequest;
793 public event FetchInventory OnUserInfoRequest; 789 public event FetchInventory OnUserInfoRequest;
794 public event TeleportLocationRequest OnSetStartLocationRequest; 790 public event TeleportLocationRequest OnSetStartLocationRequest;
795 public event UpdateAvatarProperties OnUpdateAvatarProperties; 791 public event UpdateAvatarProperties OnUpdateAvatarProperties;
796
797 public event CreateNewInventoryItem OnCreateNewInventoryItem; 792 public event CreateNewInventoryItem OnCreateNewInventoryItem;
798 public event CreateInventoryFolder OnCreateNewInventoryFolder; 793 public event CreateInventoryFolder OnCreateNewInventoryFolder;
799 public event UpdateInventoryFolder OnUpdateInventoryFolder; 794 public event UpdateInventoryFolder OnUpdateInventoryFolder;
@@ -816,9 +811,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
816 public event MoveTaskInventory OnMoveTaskItem; 811 public event MoveTaskInventory OnMoveTaskItem;
817 public event RemoveTaskInventory OnRemoveTaskItem; 812 public event RemoveTaskInventory OnRemoveTaskItem;
818 public event RequestAsset OnRequestAsset; 813 public event RequestAsset OnRequestAsset;
819
820 public event UUIDNameRequest OnNameFromUUIDRequest; 814 public event UUIDNameRequest OnNameFromUUIDRequest;
821
822 public event ParcelAccessListRequest OnParcelAccessListRequest; 815 public event ParcelAccessListRequest OnParcelAccessListRequest;
823 public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest; 816 public event ParcelAccessListUpdateRequest OnParcelAccessListUpdateRequest;
824 public event ParcelPropertiesRequest OnParcelPropertiesRequest; 817 public event ParcelPropertiesRequest OnParcelPropertiesRequest;
@@ -829,36 +822,24 @@ namespace OpenSim.Region.ClientStack.LindenUDP
829 public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest; 822 public event ParcelObjectOwnerRequest OnParcelObjectOwnerRequest;
830 public event ParcelAbandonRequest OnParcelAbandonRequest; 823 public event ParcelAbandonRequest OnParcelAbandonRequest;
831 public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest; 824 public event ParcelReturnObjectsRequest OnParcelReturnObjectsRequest;
832
833 public event RegionInfoRequest OnRegionInfoRequest; 825 public event RegionInfoRequest OnRegionInfoRequest;
834 public event EstateCovenantRequest OnEstateCovenantRequest; 826 public event EstateCovenantRequest OnEstateCovenantRequest;
835
836 public event FriendActionDelegate OnApproveFriendRequest; 827 public event FriendActionDelegate OnApproveFriendRequest;
837 public event FriendActionDelegate OnDenyFriendRequest; 828 public event FriendActionDelegate OnDenyFriendRequest;
838 public event FriendshipTermination OnTerminateFriendship; 829 public event FriendshipTermination OnTerminateFriendship;
839
840 public event PacketStats OnPacketStats; 830 public event PacketStats OnPacketStats;
841
842 public event MoneyTransferRequest OnMoneyTransferRequest; 831 public event MoneyTransferRequest OnMoneyTransferRequest;
843 public event EconomyDataRequest OnEconomyDataRequest; 832 public event EconomyDataRequest OnEconomyDataRequest;
844
845 public event MoneyBalanceRequest OnMoneyBalanceRequest; 833 public event MoneyBalanceRequest OnMoneyBalanceRequest;
846 public event ParcelBuy OnParcelBuy; 834 public event ParcelBuy OnParcelBuy;
847
848 public event UUIDNameRequest OnTeleportHomeRequest; 835 public event UUIDNameRequest OnTeleportHomeRequest;
849
850 public event UUIDNameRequest OnUUIDGroupNameRequest; 836 public event UUIDNameRequest OnUUIDGroupNameRequest;
851
852 public event ScriptAnswer OnScriptAnswer; 837 public event ScriptAnswer OnScriptAnswer;
853 public event RequestPayPrice OnRequestPayPrice; 838 public event RequestPayPrice OnRequestPayPrice;
854 public event AgentSit OnUndo; 839 public event AgentSit OnUndo;
855
856 public event ForceReleaseControls OnForceReleaseControls; 840 public event ForceReleaseControls OnForceReleaseControls;
857
858 public event GodLandStatRequest OnLandStatRequest; 841 public event GodLandStatRequest OnLandStatRequest;
859
860 public event RequestObjectPropertiesFamily OnObjectGroupRequest; 842 public event RequestObjectPropertiesFamily OnObjectGroupRequest;
861
862 public event DetailedEstateDataRequest OnDetailedEstateDataRequest; 843 public event DetailedEstateDataRequest OnDetailedEstateDataRequest;
863 public event SetEstateFlagsRequest OnSetEstateFlagsRequest; 844 public event SetEstateFlagsRequest OnSetEstateFlagsRequest;
864 public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture; 845 public event SetEstateTerrainBaseTexture OnSetEstateTerrainBaseTexture;
@@ -1049,7 +1030,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1049 //} 1030 //}
1050 } 1031 }
1051 1032
1052
1053 private void DoSendLayerData(object o) 1033 private void DoSendLayerData(object o)
1054 { 1034 {
1055 float[] map = (float[])o; 1035 float[] map = (float[])o;
@@ -1083,7 +1063,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1083 OutPacket(layerpack, ThrottleOutPacketType.Land); 1063 OutPacket(layerpack, ThrottleOutPacketType.Land);
1084 } 1064 }
1085 1065
1086
1087 /// <summary> 1066 /// <summary>
1088 /// Sends a specified patch to a client 1067 /// Sends a specified patch to a client
1089 /// </summary> 1068 /// </summary>
@@ -1449,7 +1428,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1449 1428
1450 if (i < MAX_ITEMS_PER_PACKET) 1429 if (i < MAX_ITEMS_PER_PACKET)
1451 { 1430 {
1452
1453 OutPacket(descend, ThrottleOutPacketType.Asset); 1431 OutPacket(descend, ThrottleOutPacketType.Asset);
1454 } 1432 }
1455 } 1433 }
@@ -1748,7 +1726,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1748 economyData.Info.TeleportPriceExponent = TeleportPriceExponent; 1726 economyData.Info.TeleportPriceExponent = TeleportPriceExponent;
1749 economyData.Header.Reliable = true; 1727 economyData.Header.Reliable = true;
1750 OutPacket(economyData, ThrottleOutPacketType.Unknown); 1728 OutPacket(economyData, ThrottleOutPacketType.Unknown);
1751
1752 } 1729 }
1753 1730
1754 public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data) 1731 public void SendAvatarPickerReply(AvatarPickerReplyAgentDataArgs AgentData, List<AvatarPickerReplyDataArgs> Data)
@@ -2209,7 +2186,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2209 2186
2210 ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate); 2187 ObjectUpdatePacket outPacket = (ObjectUpdatePacket)PacketPool.Instance.GetPacket(PacketType.ObjectUpdate);
2211 2188
2212 2189
2213 2190
2214 // TODO: don't create new blocks if recycling an old packet 2191 // TODO: don't create new blocks if recycling an old packet
2215 outPacket.RegionData.RegionHandle = regionHandle; 2192 outPacket.RegionData.RegionHandle = regionHandle;
@@ -2256,8 +2233,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2256 outPacket.ObjectData[0].OwnerID = ownerID; 2233 outPacket.ObjectData[0].OwnerID = ownerID;
2257 outPacket.ObjectData[0].Gain = (float) SoundGain; 2234 outPacket.ObjectData[0].Gain = (float) SoundGain;
2258 outPacket.ObjectData[0].Radius = (float) SoundRadius; 2235 outPacket.ObjectData[0].Radius = (float) SoundRadius;
2259 outPacket.ObjectData[0].Flags = SoundFlags; 2236 outPacket.ObjectData[0].Flags = SoundFlags;
2260
2261 2237
2262 byte[] pb = pos.GetBytes(); 2238 byte[] pb = pos.GetBytes();
2263 Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length); 2239 Array.Copy(pb, 0, outPacket.ObjectData[0].ObjectData, 0, pb.Length);
@@ -2318,6 +2294,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2318 terse.Header.Zerocoded = true; 2294 terse.Header.Zerocoded = true;
2319 OutPacket(terse, ThrottleOutPacketType.Task); 2295 OutPacket(terse, ThrottleOutPacketType.Task);
2320 } 2296 }
2297
2321 public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, LLUUID AssetFullID) 2298 public void SendAssetUploadCompleteMessage(sbyte AssetType, bool Success, LLUUID AssetFullID)
2322 { 2299 {
2323 AssetUploadCompletePacket newPack = new AssetUploadCompletePacket(); 2300 AssetUploadCompletePacket newPack = new AssetUploadCompletePacket();
@@ -2327,6 +2304,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2327 newPack.Header.Zerocoded = true; 2304 newPack.Header.Zerocoded = true;
2328 OutPacket(newPack, ThrottleOutPacketType.Asset); 2305 OutPacket(newPack, ThrottleOutPacketType.Asset);
2329 } 2306 }
2307
2330 public void SendXferRequest(ulong XferID, short AssetType, LLUUID vFileID, byte FilePath, byte[] FileName) 2308 public void SendXferRequest(ulong XferID, short AssetType, LLUUID vFileID, byte FilePath, byte[] FileName)
2331 { 2309 {
2332 RequestXferPacket newPack = new RequestXferPacket(); 2310 RequestXferPacket newPack = new RequestXferPacket();
@@ -2337,8 +2315,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2337 newPack.XferID.Filename = FileName; 2315 newPack.XferID.Filename = FileName;
2338 newPack.Header.Zerocoded = true; 2316 newPack.Header.Zerocoded = true;
2339 OutPacket(newPack, ThrottleOutPacketType.Asset); 2317 OutPacket(newPack, ThrottleOutPacketType.Asset);
2340
2341 } 2318 }
2319
2342 public void SendConfirmXfer(ulong xferID, uint PacketID) 2320 public void SendConfirmXfer(ulong xferID, uint PacketID)
2343 { 2321 {
2344 ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket(); 2322 ConfirmXferPacketPacket newPack = new ConfirmXferPacketPacket();
@@ -2347,6 +2325,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2347 newPack.Header.Zerocoded = true; 2325 newPack.Header.Zerocoded = true;
2348 OutPacket(newPack, ThrottleOutPacketType.Asset); 2326 OutPacket(newPack, ThrottleOutPacketType.Asset);
2349 } 2327 }
2328
2350 public void SendImagePart(ushort numParts, LLUUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec) 2329 public void SendImagePart(ushort numParts, LLUUID ImageUUID, uint ImageSize, byte[] ImageData, byte imageCodec)
2351 { 2330 {
2352 ImageDataPacket im = new ImageDataPacket(); 2331 ImageDataPacket im = new ImageDataPacket();
@@ -2362,6 +2341,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2362 im.Header.Zerocoded = true; 2341 im.Header.Zerocoded = true;
2363 OutPacket(im, ThrottleOutPacketType.Texture); 2342 OutPacket(im, ThrottleOutPacketType.Texture);
2364 } 2343 }
2344
2365 public void SendShutdownConnectionNotice() 2345 public void SendShutdownConnectionNotice()
2366 { 2346 {
2367 OutPacket(PacketPool.Instance.GetPacket(PacketType.DisableSimulator), ThrottleOutPacketType.Unknown); 2347 OutPacket(PacketPool.Instance.GetPacket(PacketType.DisableSimulator), ThrottleOutPacketType.Unknown);
@@ -2449,125 +2429,126 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2449 #endregion 2429 #endregion
2450 2430
2451 #region Estate Data Sending Methods 2431 #region Estate Data Sending Methods
2452 private bool convertParamStringToBool(byte[] field)
2453 {
2454 string s = Helpers.FieldToUTF8String(field);
2455 if (s == "1" || s.ToLower() == "y" || s.ToLower() == "yes" || s.ToLower() == "t" || s.ToLower() == "true")
2456 {
2457 return true;
2458 }
2459 return false;
2460 }
2461 2432
2462 public void sendEstateManagersList(LLUUID invoice, LLUUID[] EstateManagers, uint estateID) 2433 private bool convertParamStringToBool(byte[] field)
2434 {
2435 string s = Helpers.FieldToUTF8String(field);
2436 if (s == "1" || s.ToLower() == "y" || s.ToLower() == "yes" || s.ToLower() == "t" || s.ToLower() == "true")
2463 { 2437 {
2464 EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); 2438 return true;
2465 packet.AgentData.TransactionID = LLUUID.Random(); 2439 }
2466 packet.AgentData.AgentID = this.AgentId; 2440 return false;
2467 packet.AgentData.SessionID = this.SessionId; 2441 }
2468 packet.MethodData.Invoice = invoice;
2469 packet.MethodData.Method = Helpers.StringToField("setaccess");
2470 2442
2471 EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + EstateManagers.Length]; 2443 public void sendEstateManagersList(LLUUID invoice, LLUUID[] EstateManagers, uint estateID)
2444 {
2445 EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
2446 packet.AgentData.TransactionID = LLUUID.Random();
2447 packet.AgentData.AgentID = this.AgentId;
2448 packet.AgentData.SessionID = this.SessionId;
2449 packet.MethodData.Invoice = invoice;
2450 packet.MethodData.Method = Helpers.StringToField("setaccess");
2472 2451
2473 for (int i = 0; i < (6 + EstateManagers.Length); i++) 2452 EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[6 + EstateManagers.Length];
2474 {
2475 returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
2476 }
2477 int j = 0;
2478
2479 returnblock[j].Parameter = Helpers.StringToField(estateID.ToString()); j++;
2480 returnblock[j].Parameter = Helpers.StringToField(((int)Constants.EstateAccessCodex.EstateManagers).ToString()); j++;
2481 returnblock[j].Parameter = Helpers.StringToField("0"); j++;
2482 returnblock[j].Parameter = Helpers.StringToField("0"); j++;
2483 returnblock[j].Parameter = Helpers.StringToField("0"); j++;
2484 returnblock[j].Parameter = Helpers.StringToField(EstateManagers.Length.ToString()); j++;
2485 for (int i = 0; i < EstateManagers.Length; i++)
2486 {
2487 returnblock[j].Parameter = EstateManagers[i].GetBytes(); j++;
2488 }
2489 packet.ParamList = returnblock;
2490 packet.Header.Reliable = false;
2491 this.OutPacket(packet, ThrottleOutPacketType.Task);
2492 }
2493 2453
2494 public void sendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args) 2454 for (int i = 0; i < (6 + EstateManagers.Length); i++)
2495 { 2455 {
2496 RegionInfoPacket rinfopack = new RegionInfoPacket(); 2456 returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
2497 RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock();
2498 rinfopack.AgentData.AgentID = this.AgentId;
2499 rinfopack.AgentData.SessionID = this.SessionId;
2500 rinfoblk.BillableFactor =args.billableFactor;
2501 rinfoblk.EstateID = args.estateID;
2502 rinfoblk.MaxAgents = args.maxAgents;
2503 rinfoblk.ObjectBonusFactor =args.objectBonusFactor;
2504 rinfoblk.ParentEstateID = args.parentEstateID;
2505 rinfoblk.PricePerMeter = args.pricePerMeter;
2506 rinfoblk.RedirectGridX = args.redirectGridX;
2507 rinfoblk.RedirectGridY = args.redirectGridY;
2508 rinfoblk.RegionFlags = args.regionFlags;
2509 rinfoblk.SimAccess = args.simAccess;
2510 rinfoblk.SunHour = args.sunHour;
2511 rinfoblk.TerrainLowerLimit = args.terrainLowerLimit;
2512 rinfoblk.TerrainRaiseLimit = args.terrainRaiseLimit;
2513 rinfoblk.UseEstateSun = args.useEstateSun;
2514 rinfoblk.WaterHeight = args.waterHeight;
2515 rinfoblk.SimName = Helpers.StringToField(args.simName);
2516
2517
2518 rinfopack.RegionInfo = rinfoblk;
2519
2520 this.OutPacket(rinfopack, ThrottleOutPacketType.Task);
2521 } 2457 }
2522 2458 int j = 0;
2523 public void sendEstateCovenantInformation() 2459
2460 returnblock[j].Parameter = Helpers.StringToField(estateID.ToString()); j++;
2461 returnblock[j].Parameter = Helpers.StringToField(((int)Constants.EstateAccessCodex.EstateManagers).ToString()); j++;
2462 returnblock[j].Parameter = Helpers.StringToField("0"); j++;
2463 returnblock[j].Parameter = Helpers.StringToField("0"); j++;
2464 returnblock[j].Parameter = Helpers.StringToField("0"); j++;
2465 returnblock[j].Parameter = Helpers.StringToField(EstateManagers.Length.ToString()); j++;
2466 for (int i = 0; i < EstateManagers.Length; i++)
2524 { 2467 {
2525 EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket(); 2468 returnblock[j].Parameter = EstateManagers[i].GetBytes(); j++;
2526 EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
2527 edata.CovenantID = m_scene.RegionInfo.CovenantID;
2528 edata.CovenantTimestamp = 0;
2529 edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
2530 edata.EstateName =
2531 Helpers.StringToField(m_scene.RegionInfo.MasterAvatarFirstName + " " + m_scene.RegionInfo.MasterAvatarLastName);
2532 einfopack.Data = edata;
2533 this.OutPacket(einfopack, ThrottleOutPacketType.Task);
2534 } 2469 }
2470 packet.ParamList = returnblock;
2471 packet.Header.Reliable = false;
2472 this.OutPacket(packet, ThrottleOutPacketType.Task);
2473 }
2535 2474
2536 public void sendDetailedEstateData(LLUUID invoice, string estateName, uint estateID) 2475 public void sendRegionInfoToEstateMenu(RegionInfoForEstateMenuArgs args)
2476 {
2477 RegionInfoPacket rinfopack = new RegionInfoPacket();
2478 RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock();
2479 rinfopack.AgentData.AgentID = this.AgentId;
2480 rinfopack.AgentData.SessionID = this.SessionId;
2481 rinfoblk.BillableFactor =args.billableFactor;
2482 rinfoblk.EstateID = args.estateID;
2483 rinfoblk.MaxAgents = args.maxAgents;
2484 rinfoblk.ObjectBonusFactor =args.objectBonusFactor;
2485 rinfoblk.ParentEstateID = args.parentEstateID;
2486 rinfoblk.PricePerMeter = args.pricePerMeter;
2487 rinfoblk.RedirectGridX = args.redirectGridX;
2488 rinfoblk.RedirectGridY = args.redirectGridY;
2489 rinfoblk.RegionFlags = args.regionFlags;
2490 rinfoblk.SimAccess = args.simAccess;
2491 rinfoblk.SunHour = args.sunHour;
2492 rinfoblk.TerrainLowerLimit = args.terrainLowerLimit;
2493 rinfoblk.TerrainRaiseLimit = args.terrainRaiseLimit;
2494 rinfoblk.UseEstateSun = args.useEstateSun;
2495 rinfoblk.WaterHeight = args.waterHeight;
2496 rinfoblk.SimName = Helpers.StringToField(args.simName);
2497
2498 rinfopack.RegionInfo = rinfoblk;
2499
2500 this.OutPacket(rinfopack, ThrottleOutPacketType.Task);
2501 }
2502
2503 public void sendEstateCovenantInformation()
2504 {
2505 EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket();
2506 EstateCovenantReplyPacket.DataBlock edata = new EstateCovenantReplyPacket.DataBlock();
2507 edata.CovenantID = m_scene.RegionInfo.CovenantID;
2508 edata.CovenantTimestamp = 0;
2509 edata.EstateOwnerID = m_scene.RegionInfo.MasterAvatarAssignedUUID;
2510 edata.EstateName =
2511 Helpers.StringToField(m_scene.RegionInfo.MasterAvatarFirstName + " " + m_scene.RegionInfo.MasterAvatarLastName);
2512 einfopack.Data = edata;
2513 this.OutPacket(einfopack, ThrottleOutPacketType.Task);
2514 }
2515
2516 public void sendDetailedEstateData(LLUUID invoice, string estateName, uint estateID)
2517 {
2518 EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket();
2519 packet.MethodData.Invoice = invoice;
2520 packet.AgentData.TransactionID = LLUUID.Random();
2521 packet.MethodData.Method = Helpers.StringToField("estateupdateinfo");
2522 EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[9];
2523
2524 for (int i = 0; i < 9; i++)
2537 { 2525 {
2538 EstateOwnerMessagePacket packet = new EstateOwnerMessagePacket(); 2526 returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
2539 packet.MethodData.Invoice = invoice;
2540 packet.AgentData.TransactionID = LLUUID.Random();
2541 packet.MethodData.Method = Helpers.StringToField("estateupdateinfo");
2542 EstateOwnerMessagePacket.ParamListBlock[] returnblock = new EstateOwnerMessagePacket.ParamListBlock[9];
2543
2544 for (int i = 0; i < 9; i++)
2545 {
2546 returnblock[i] = new EstateOwnerMessagePacket.ParamListBlock();
2547 }
2548
2549 //Sending Estate Settings
2550 returnblock[0].Parameter = Helpers.StringToField(estateName);
2551 returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString());
2552 returnblock[2].Parameter = Helpers.StringToField(estateID.ToString());
2553
2554 // TODO: Resolve Magic numbers here
2555 returnblock[3].Parameter = Helpers.StringToField("269516800");
2556 returnblock[4].Parameter = Helpers.StringToField("0");
2557 returnblock[5].Parameter = Helpers.StringToField("1");
2558 returnblock[6].Parameter = Helpers.StringToField(m_scene.RegionInfo.RegionID.ToString());
2559 returnblock[7].Parameter = Helpers.StringToField("1160895077");
2560 returnblock[8].Parameter = Helpers.StringToField("1");
2561
2562 packet.ParamList = returnblock;
2563 packet.Header.Reliable = false;
2564 //System.Console.WriteLine("[ESTATE]: SIM--->" + packet.ToString());
2565 this.OutPacket(packet, ThrottleOutPacketType.Task);
2566 } 2527 }
2567 2528
2529 //Sending Estate Settings
2530 returnblock[0].Parameter = Helpers.StringToField(estateName);
2531 returnblock[1].Parameter = Helpers.StringToField(m_scene.RegionInfo.MasterAvatarAssignedUUID.ToString());
2532 returnblock[2].Parameter = Helpers.StringToField(estateID.ToString());
2533
2534 // TODO: Resolve Magic numbers here
2535 returnblock[3].Parameter = Helpers.StringToField("269516800");
2536 returnblock[4].Parameter = Helpers.StringToField("0");
2537 returnblock[5].Parameter = Helpers.StringToField("1");
2538 returnblock[6].Parameter = Helpers.StringToField(m_scene.RegionInfo.RegionID.ToString());
2539 returnblock[7].Parameter = Helpers.StringToField("1160895077");
2540 returnblock[8].Parameter = Helpers.StringToField("1");
2541
2542 packet.ParamList = returnblock;
2543 packet.Header.Reliable = false;
2544 //System.Console.WriteLine("[ESTATE]: SIM--->" + packet.ToString());
2545 this.OutPacket(packet, ThrottleOutPacketType.Task);
2546 }
2547
2568 #endregion 2548 #endregion
2569 2549
2570 #region Land Data Sending Methods 2550 #region Land Data Sending Methods
2551
2571 public void sendLandParcelOverlay(byte[] data, int sequence_id) 2552 public void sendLandParcelOverlay(byte[] data, int sequence_id)
2572 { 2553 {
2573 2554
@@ -2578,6 +2559,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2578 packet.Header.Zerocoded = true; 2559 packet.Header.Zerocoded = true;
2579 this.OutPacket(packet, ThrottleOutPacketType.Task); 2560 this.OutPacket(packet, ThrottleOutPacketType.Task);
2580 } 2561 }
2562
2581 public void sendLandProperties(IClientAPI remote_client,int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int simObjectCapacity, uint regionFlags) 2563 public void sendLandProperties(IClientAPI remote_client,int sequence_id, bool snap_selection, int request_result, LandData landData, float simObjectBonusFactor, int simObjectCapacity, uint regionFlags)
2582 { 2564 {
2583 ParcelPropertiesPacket updatePacket = (ParcelPropertiesPacket) PacketPool.Instance.GetPacket(PacketType.ParcelProperties); 2565 ParcelPropertiesPacket updatePacket = (ParcelPropertiesPacket) PacketPool.Instance.GetPacket(PacketType.ParcelProperties);
@@ -2743,8 +2725,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2743 notifyCount = 32; 2725 notifyCount = 32;
2744 } 2726 }
2745 2727
2746
2747
2748 ParcelObjectOwnersReplyPacket.DataBlock[] dataBlock 2728 ParcelObjectOwnersReplyPacket.DataBlock[] dataBlock
2749 = new ParcelObjectOwnersReplyPacket.DataBlock[notifyCount]; 2729 = new ParcelObjectOwnersReplyPacket.DataBlock[notifyCount];
2750 2730
@@ -2773,9 +2753,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2773 2753
2774 #endregion 2754 #endregion
2775 2755
2776 #region Helper Methods 2756 #region Helper Methods
2777 2757
2778 protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateAvatarImprovedBlock(uint localID, LLVector3 pos, 2758 protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreateAvatarImprovedBlock(uint localID, LLVector3 pos,
2779 LLVector3 velocity, 2759 LLVector3 velocity,
2780 LLQuaternion rotation) 2760 LLQuaternion rotation)
2781 { 2761 {
@@ -2958,7 +2938,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2958 bytes[i++] = (byte)((rvelz >> 8) % 256); 2938 bytes[i++] = (byte)((rvelz >> 8) % 256);
2959 dat.Data = bytes; 2939 dat.Data = bytes;
2960 2940
2961
2962 return dat; 2941 return dat;
2963 } 2942 }
2964 2943
@@ -3034,7 +3013,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3034 objdata.ObjectData[47] = 63; 3013 objdata.ObjectData[47] = 63;
3035 } 3014 }
3036 3015
3037
3038 /// <summary> 3016 /// <summary>
3039 /// 3017 ///
3040 /// </summary> 3018 /// </summary>
@@ -3165,13 +3143,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3165 false); 3143 false);
3166 } 3144 }
3167 return true; 3145 return true;
3168
3169 } 3146 }
3170 else 3147 else
3171 { 3148 {
3172 return false; 3149 return false;
3173 } 3150 }
3174
3175 } 3151 }
3176 3152
3177 private bool HandleUUIDGroupNameRequest(IClientAPI sender, Packet Pack) 3153 private bool HandleUUIDGroupNameRequest(IClientAPI sender, Packet Pack)
@@ -3205,8 +3181,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3205 return true; 3181 return true;
3206 } 3182 }
3207 3183
3208
3209
3210 private bool HandleViewerEffect(IClientAPI sender, Packet Pack) 3184 private bool HandleViewerEffect(IClientAPI sender, Packet Pack)
3211 { 3185 {
3212 ViewerEffectPacket viewer = (ViewerEffectPacket)Pack; 3186 ViewerEffectPacket viewer = (ViewerEffectPacket)Pack;
@@ -3346,7 +3320,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3346 handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition; 3320 handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition;
3347 if (handlerUpdatePrimSinglePosition != null) 3321 if (handlerUpdatePrimSinglePosition != null)
3348 { 3322 {
3349
3350 // Console.WriteLine("new movement position is " + pos.X + " , " + pos.Y + " , " + pos.Z); 3323 // Console.WriteLine("new movement position is " + pos.X + " , " + pos.Y + " , " + pos.Z);
3351 handlerUpdatePrimSinglePosition(localId, pos1, this); 3324 handlerUpdatePrimSinglePosition(localId, pos1, this);
3352 } 3325 }
@@ -3357,7 +3330,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3357 handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation; 3330 handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation;
3358 if (handlerUpdatePrimSingleRotation != null) 3331 if (handlerUpdatePrimSingleRotation != null)
3359 { 3332 {
3360
3361 //Console.WriteLine("new tab rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W); 3333 //Console.WriteLine("new tab rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
3362 handlerUpdatePrimSingleRotation(localId, rot1, this); 3334 handlerUpdatePrimSingleRotation(localId, rot1, this);
3363 } 3335 }
@@ -3368,7 +3340,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3368 handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation; 3340 handlerUpdatePrimSingleRotation = OnUpdatePrimSingleRotation;
3369 if (handlerUpdatePrimSingleRotation != null) 3341 if (handlerUpdatePrimSingleRotation != null)
3370 { 3342 {
3371
3372 //Console.WriteLine("new mouse rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W); 3343 //Console.WriteLine("new mouse rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
3373 handlerUpdatePrimSingleRotation(localId, rot2, this); 3344 handlerUpdatePrimSingleRotation(localId, rot2, this);
3374 } 3345 }
@@ -3381,11 +3352,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3381 handlerUpdatePrimScale = OnUpdatePrimScale; 3352 handlerUpdatePrimScale = OnUpdatePrimScale;
3382 if (handlerUpdatePrimScale != null) 3353 if (handlerUpdatePrimScale != null)
3383 { 3354 {
3384
3385 // Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z); 3355 // Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
3386 handlerUpdatePrimScale(localId, scale1, this); 3356 handlerUpdatePrimScale(localId, scale1, this);
3387 3357
3388
3389 handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition; 3358 handlerUpdatePrimSinglePosition = OnUpdatePrimSinglePosition;
3390 if (handlerUpdatePrimSinglePosition != null) 3359 if (handlerUpdatePrimSinglePosition != null)
3391 { 3360 {
@@ -3405,40 +3374,34 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3405 } 3374 }
3406 break; 3375 break;
3407 case 10: 3376 case 10:
3408
3409 LLQuaternion rot3 = new LLQuaternion(block.Data, 0, true); 3377 LLQuaternion rot3 = new LLQuaternion(block.Data, 0, true);
3410 3378
3411 handlerUpdatePrimRotation = OnUpdatePrimGroupRotation; 3379 handlerUpdatePrimRotation = OnUpdatePrimGroupRotation;
3412 if (handlerUpdatePrimRotation != null) 3380 if (handlerUpdatePrimRotation != null)
3413 { 3381 {
3414
3415 // Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W); 3382 // Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
3416 handlerUpdatePrimRotation(localId, rot3, this); 3383 handlerUpdatePrimRotation(localId, rot3, this);
3417 } 3384 }
3418 break; 3385 break;
3419 case 11: 3386 case 11:
3420
3421 LLVector3 pos3 = new LLVector3(block.Data, 0); 3387 LLVector3 pos3 = new LLVector3(block.Data, 0);
3422 LLQuaternion rot4 = new LLQuaternion(block.Data, 12, true); 3388 LLQuaternion rot4 = new LLQuaternion(block.Data, 12, true);
3423 3389
3424 handlerUpdatePrimGroupRotation = OnUpdatePrimGroupMouseRotation; 3390 handlerUpdatePrimGroupRotation = OnUpdatePrimGroupMouseRotation;
3425 if (handlerUpdatePrimGroupRotation != null) 3391 if (handlerUpdatePrimGroupRotation != null)
3426 { 3392 {
3427
3428 //Console.WriteLine("new rotation position is " + pos.X + " , " + pos.Y + " , " + pos.Z); 3393 //Console.WriteLine("new rotation position is " + pos.X + " , " + pos.Y + " , " + pos.Z);
3429 // Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W); 3394 // Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W);
3430 handlerUpdatePrimGroupRotation(localId, pos3, rot4, this); 3395 handlerUpdatePrimGroupRotation(localId, pos3, rot4, this);
3431 } 3396 }
3432 break; 3397 break;
3433 case 13: 3398 case 13:
3434
3435 LLVector3 scale2 = new LLVector3(block.Data, 12); 3399 LLVector3 scale2 = new LLVector3(block.Data, 12);
3436 LLVector3 pos4 = new LLVector3(block.Data, 0); 3400 LLVector3 pos4 = new LLVector3(block.Data, 0);
3437 3401
3438 handlerUpdatePrimScale = OnUpdatePrimScale; 3402 handlerUpdatePrimScale = OnUpdatePrimScale;
3439 if (handlerUpdatePrimScale != null) 3403 if (handlerUpdatePrimScale != null)
3440 { 3404 {
3441
3442 //Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z); 3405 //Console.WriteLine("new scale is " + scale.X + " , " + scale.Y + " , " + scale.Z);
3443 handlerUpdatePrimScale(localId, scale2, this); 3406 handlerUpdatePrimScale(localId, scale2, this);
3444 3407
@@ -3464,7 +3427,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3464 3427
3465 if (handlerUpdateVector != null) 3428 if (handlerUpdateVector != null)
3466 { 3429 {
3467
3468 handlerUpdateVector(localId, pos5, this); 3430 handlerUpdateVector(localId, pos5, this);
3469 } 3431 }
3470 } 3432 }
@@ -3841,11 +3803,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3841 3803
3842 protected void AckTimer_Elapsed(object sender, ElapsedEventArgs ea) 3804 protected void AckTimer_Elapsed(object sender, ElapsedEventArgs ea)
3843 { 3805 {
3844
3845 SendAcks(); 3806 SendAcks();
3846 ResendUnacked(); 3807 ResendUnacked();
3847 SendPacketStats(); 3808 SendPacketStats();
3848
3849 } 3809 }
3850 3810
3851 protected void SendPacketStats() 3811 protected void SendPacketStats()
@@ -3858,6 +3818,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3858 m_lastPacketsSentSentToScene = m_packetsSent; 3818 m_lastPacketsSentSentToScene = m_packetsSent;
3859 } 3819 }
3860 } 3820 }
3821
3861 protected void ClearOldPacketDupeTracking() 3822 protected void ClearOldPacketDupeTracking()
3862 { 3823 {
3863 lock (m_dupeLimiter) 3824 lock (m_dupeLimiter)
@@ -3865,7 +3826,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3865 List<uint> toEliminate = new List<uint>(); 3826 List<uint> toEliminate = new List<uint>();
3866 try 3827 try
3867 { 3828 {
3868
3869 foreach (uint seq in m_dupeLimiter.Keys) 3829 foreach (uint seq in m_dupeLimiter.Keys)
3870 { 3830 {
3871 PacketDupeLimiter pkdata = null; 3831 PacketDupeLimiter pkdata = null;
@@ -3913,7 +3873,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3913 3873
3914 private bool m_packetProcessingEnabled = true; 3874 private bool m_packetProcessingEnabled = true;
3915 3875
3916 public bool IsActive { 3876 public bool IsActive
3877 {
3917 get { return m_packetProcessingEnabled; } 3878 get { return m_packetProcessingEnabled; }
3918 set { m_packetProcessingEnabled = value; } 3879 set { m_packetProcessingEnabled = value; }
3919 } 3880 }
@@ -3945,10 +3906,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3945 } 3906 }
3946 else 3907 else
3947 { 3908 {
3948
3949 switch (Pack.Type) 3909 switch (Pack.Type)
3950 { 3910 {
3951 #region Scene/Avatar 3911 #region Scene/Avatar
3952 3912
3953 case PacketType.AvatarPropertiesRequest: 3913 case PacketType.AvatarPropertiesRequest:
3954 AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack; 3914 AvatarPropertiesRequestPacket avatarProperties = (AvatarPropertiesRequestPacket)Pack;
@@ -4425,9 +4385,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4425 } 4385 }
4426 break; 4386 break;
4427 4387
4428 #endregion 4388 #endregion
4429 4389
4430 #region Objects/m_sceneObjects 4390 #region Objects/m_sceneObjects
4431 4391
4432 case PacketType.ObjectLink: 4392 case PacketType.ObjectLink:
4433 ObjectLinkPacket link = (ObjectLinkPacket)Pack; 4393 ObjectLinkPacket link = (ObjectLinkPacket)Pack;
@@ -4816,9 +4776,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4816 } 4776 }
4817 break; 4777 break;
4818 4778
4819 #endregion 4779 #endregion
4820 4780
4821 #region Inventory/Asset/Other related packets 4781 #region Inventory/Asset/Other related packets
4822 4782
4823 case PacketType.RequestImage: 4783 case PacketType.RequestImage:
4824 RequestImagePacket imageRequest = (RequestImagePacket)Pack; 4784 RequestImagePacket imageRequest = (RequestImagePacket)Pack;
@@ -5346,8 +5306,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5346 } 5306 }
5347 break; 5307 break;
5348 5308
5349 #endregion 5309 #endregion
5350
5351 5310
5352 case PacketType.UUIDNameRequest: 5311 case PacketType.UUIDNameRequest:
5353 UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack; 5312 UUIDNameRequestPacket incoming = (UUIDNameRequestPacket)Pack;
@@ -5361,7 +5320,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5361 } 5320 }
5362 break; 5321 break;
5363 5322
5364 #region Parcel related packets 5323 #region Parcel related packets
5365 5324
5366 case PacketType.ParcelAccessListRequest: 5325 case PacketType.ParcelAccessListRequest:
5367 ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack; 5326 ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack;
@@ -5518,14 +5477,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5518 } 5477 }
5519 break; 5478 break;
5520 5479
5521 #endregion 5480 #endregion
5522 5481
5523 #region Estate Packets 5482 #region Estate Packets
5524 5483
5525 case PacketType.EstateOwnerMessage: 5484 case PacketType.EstateOwnerMessage:
5526 EstateOwnerMessagePacket messagePacket = (EstateOwnerMessagePacket)Pack; 5485 EstateOwnerMessagePacket messagePacket = (EstateOwnerMessagePacket)Pack;
5527 5486
5528
5529 switch (Helpers.FieldToUTF8String(messagePacket.MethodData.Method)) 5487 switch (Helpers.FieldToUTF8String(messagePacket.MethodData.Method))
5530 { 5488 {
5531 case "getinfo": 5489 case "getinfo":
@@ -5772,9 +5730,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5772 } 5730 }
5773 break; 5731 break;
5774 5732
5775 #endregion 5733 #endregion
5776 5734
5777 #region GodPackets 5735 #region GodPackets
5778 5736
5779 case PacketType.RequestGodlikePowers: 5737 case PacketType.RequestGodlikePowers:
5780 RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket)Pack; 5738 RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket)Pack;
@@ -5822,9 +5780,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5822 //OutPacket(kupack, ThrottleOutPacketType.Task); 5780 //OutPacket(kupack, ThrottleOutPacketType.Task);
5823 break; 5781 break;
5824 5782
5825 #endregion 5783 #endregion
5826 5784
5827 #region Economy/Transaction Packets 5785 #region Economy/Transaction Packets
5828 5786
5829 case PacketType.MoneyBalanceRequest: 5787 case PacketType.MoneyBalanceRequest:
5830 MoneyBalanceRequestPacket moneybalancerequestpacket = (MoneyBalanceRequestPacket)Pack; 5788 MoneyBalanceRequestPacket moneybalancerequestpacket = (MoneyBalanceRequestPacket)Pack;
@@ -5856,9 +5814,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5856 } 5814 }
5857 break; 5815 break;
5858 5816
5859 #endregion 5817 #endregion
5860 5818
5861 #region unimplemented handlers 5819 #region unimplemented handlers
5862 5820
5863 case PacketType.StartPingCheck: 5821 case PacketType.StartPingCheck:
5864 // Send the client the ping response back 5822 // Send the client the ping response back
@@ -5935,7 +5893,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5935 m_log.Warn("[CLIENT]: unhandled packet " + Pack.ToString()); 5893 m_log.Warn("[CLIENT]: unhandled packet " + Pack.ToString());
5936 break; 5894 break;
5937 5895
5938 #endregion 5896 #endregion
5939 } 5897 }
5940 } 5898 }
5941 5899
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
index cf0e0e8..309a795 100644
--- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
+++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs
@@ -398,8 +398,10 @@ namespace OpenSim.Region.Communications.OGS1
398 public RegionInfo RequestClosestRegion(string regionName) 398 public RegionInfo RequestClosestRegion(string regionName)
399 { 399 {
400 foreach (RegionInfo ri in m_remoteRegionInfoCache.Values) 400 foreach (RegionInfo ri in m_remoteRegionInfoCache.Values)
401 if(ri.RegionName == regionName) 401 {
402 if (ri.RegionName == regionName)
402 return ri; 403 return ri;
404 }
403 405
404 RegionInfo regionInfo = null; 406 RegionInfo regionInfo = null;
405 try 407 try
@@ -441,7 +443,7 @@ namespace OpenSim.Region.Communications.OGS1
441 regionInfo.RegionID = new LLUUID((string) responseData["region_UUID"]); 443 regionInfo.RegionID = new LLUUID((string) responseData["region_UUID"]);
442 regionInfo.RegionName = (string) responseData["region_name"]; 444 regionInfo.RegionName = (string) responseData["region_name"];
443 445
444 if(!m_remoteRegionInfoCache.ContainsKey(regionInfo.RegionHandle)) 446 if (!m_remoteRegionInfoCache.ContainsKey(regionInfo.RegionHandle))
445 m_remoteRegionInfoCache.Add(regionInfo.RegionHandle, regionInfo); 447 m_remoteRegionInfoCache.Add(regionInfo.RegionHandle, regionInfo);
446 } 448 }
447 catch (WebException) 449 catch (WebException)
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs
index 5c739af..c3f8d2b 100644
--- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs
@@ -1,66 +1,66 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright 7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright 9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the 12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products 13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission. 14 * derived from this software without specific prior written permission.
15 * 15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using OpenSim.Region.Environment.Scenes; 28using OpenSim.Region.Environment.Scenes;
29using System.Reflection; 29using System.Reflection;
30using log4net; 30using log4net;
31 31
32namespace OpenSim.Region.Environment.Modules.World.Archiver 32namespace OpenSim.Region.Environment.Modules.World.Archiver
33{ 33{
34 /// <summary> 34 /// <summary>
35 /// Handles an individual archive read request 35 /// Handles an individual archive read request
36 /// </summary> 36 /// </summary>
37 public class ArchiveReadRequest 37 public class ArchiveReadRequest
38 { 38 {
39 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 39 private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
40 40
41 private Scene m_scene; 41 private Scene m_scene;
42 private string m_loadPath; 42 private string m_loadPath;
43 43
44 public ArchiveReadRequest(Scene scene, string loadPath) 44 public ArchiveReadRequest(Scene scene, string loadPath)
45 { 45 {
46 m_scene = scene; 46 m_scene = scene;
47 m_loadPath = loadPath; 47 m_loadPath = loadPath;
48 48
49 DearchiveRegion(); 49 DearchiveRegion();
50 } 50 }
51 51
52 protected void DearchiveRegion() 52 protected void DearchiveRegion()
53 { 53 {
54 TarArchiveReader archive = new TarArchiveReader(m_loadPath); 54 TarArchiveReader archive = new TarArchiveReader(m_loadPath);
55 55
56 // Just test for now by reading first file 56 // Just test for now by reading first file
57 string filePath = "ERROR"; 57 string filePath = "ERROR";
58 58
59 byte[] data = archive.Read(out filePath); 59 byte[] data = archive.Read(out filePath);
60 60
61 m_log.DebugFormat("[ARCHIVER]: Successfully read {0} ({1} bytes) from archive {2}", filePath, data.Length, m_loadPath); 61 m_log.DebugFormat("[ARCHIVER]: Successfully read {0} ({1} bytes) from archive {2}", filePath, data.Length, m_loadPath);
62 62
63 archive.Close(); 63 archive.Close();
64 } 64 }
65 } 65 }
66} 66}
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs
index e785c6c..80641e3 100644
--- a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs
+++ b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs
@@ -1,108 +1,108 @@
1/* 1/*
2 * Copyright (c) Contributors, http://opensimulator.org/ 2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders. 3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met: 6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright 7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright 9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the 12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products 13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission. 14 * derived from this software without specific prior written permission.
15 * 15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY 16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY 19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using System; 28using System;
29using System.IO; 29using System.IO;
30//using System.Reflection; 30//using System.Reflection;
31//using log4net; 31//using log4net;
32 32
33namespace OpenSim.Region.Environment.Modules.World.Archiver 33namespace OpenSim.Region.Environment.Modules.World.Archiver
34{ 34{
35 /// <summary> 35 /// <summary>
36 /// Temporary code to do the bare minimum required to read a tar archive for our purposes 36 /// Temporary code to do the bare minimum required to read a tar archive for our purposes
37 /// </summary> 37 /// </summary>
38 public class TarArchiveReader 38 public class TarArchiveReader
39 { 39 {
40// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 40// private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
41 41
42 protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); 42 protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding();
43 43
44 /// <summary> 44 /// <summary>
45 /// Binary reader for the underlying stream 45 /// Binary reader for the underlying stream
46 /// </summary> 46 /// </summary>
47 protected BinaryReader m_br; 47 protected BinaryReader m_br;
48 48
49 public TarArchiveReader(string archivePath) 49 public TarArchiveReader(string archivePath)
50 { 50 {
51 m_br = new BinaryReader(new FileStream(archivePath, FileMode.Open)); 51 m_br = new BinaryReader(new FileStream(archivePath, FileMode.Open));
52 } 52 }
53 53
54 public byte[] Read(out string filePath) 54 public byte[] Read(out string filePath)
55 { 55 {
56 TarHeader header = ReadHeader(); 56 TarHeader header = ReadHeader();
57 filePath = header.FilePath; 57 filePath = header.FilePath;
58 return m_br.ReadBytes(header.FileSize); 58 return m_br.ReadBytes(header.FileSize);
59 } 59 }
60 60
61 /// <summary> 61 /// <summary>
62 /// Read the next 512 byte chunk of data as a tar header. 62 /// Read the next 512 byte chunk of data as a tar header.
63 /// </summary> 63 /// </summary>
64 /// <returns>A tar header struct</returns> 64 /// <returns>A tar header struct</returns>
65 protected TarHeader ReadHeader() 65 protected TarHeader ReadHeader()
66 { 66 {
67 TarHeader tarHeader = new TarHeader(); 67 TarHeader tarHeader = new TarHeader();
68 68
69 byte[] header = m_br.ReadBytes(512); 69 byte[] header = m_br.ReadBytes(512);
70 70
71 tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100); 71 tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100);
72 tarHeader.FileSize = ConvertOctalBytesToDecimal(header, 124, 11); 72 tarHeader.FileSize = ConvertOctalBytesToDecimal(header, 124, 11);
73 73
74 return tarHeader; 74 return tarHeader;
75 } 75 }
76 76
77 public void Close() 77 public void Close()
78 { 78 {
79 m_br.Close(); 79 m_br.Close();
80 } 80 }
81 81
82 /// <summary> 82 /// <summary>
83 /// Convert octal bytes to a decimal representation 83 /// Convert octal bytes to a decimal representation
84 /// </summary> 84 /// </summary>
85 /// <param name="bytes"></param> 85 /// <param name="bytes"></param>
86 /// <returns></returns> 86 /// <returns></returns>
87 public static int ConvertOctalBytesToDecimal(byte[] bytes, int startIndex, int count) 87 public static int ConvertOctalBytesToDecimal(byte[] bytes, int startIndex, int count)
88 { 88 {
89 string oString = m_asciiEncoding.GetString(bytes, startIndex, count); 89 string oString = m_asciiEncoding.GetString(bytes, startIndex, count);
90 90
91 int d = 0; 91 int d = 0;
92 92
93 foreach (char c in oString) 93 foreach (char c in oString)
94 { 94 {
95 d <<= 3; 95 d <<= 3;
96 d |= c - '0'; 96 d |= c - '0';
97 } 97 }
98 98
99 return d; 99 return d;
100 } 100 }
101 } 101 }
102 102
103 public struct TarHeader 103 public struct TarHeader
104 { 104 {
105 public string FilePath; 105 public string FilePath;
106 public int FileSize; 106 public int FileSize;
107 } 107 }
108} 108}
diff --git a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
index 96ae065..ff179da 100644
--- a/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Estate/EstateManagementModule.cs
@@ -357,7 +357,7 @@ namespace OpenSim.Region.Environment.Modules.World.Estate
357 else 357 else
358 { 358 {
359 lsri.OwnerName = "waiting"; 359 lsri.OwnerName = "waiting";
360 lock(uuidNameLookupList) 360 lock (uuidNameLookupList)
361 uuidNameLookupList.Add(sog.OwnerID); 361 uuidNameLookupList.Add(sog.OwnerID);
362 } 362 }
363 363
diff --git a/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs b/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs
index 889be97..e1358db 100644
--- a/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs
+++ b/OpenSim/Region/Environment/Modules/World/Sun/SunModule.cs
@@ -104,7 +104,7 @@ namespace OpenSim.Region.Environment.Modules
104 private ulong CurrentTime 104 private ulong CurrentTime
105 { 105 {
106 get { 106 get {
107 107
108 return (ulong)(((System.DateTime.Now.Ticks) - TicksToEpoch + TicksOffset)/10000000); 108 return (ulong)(((System.DateTime.Now.Ticks) - TicksToEpoch + TicksOffset)/10000000);
109 } 109 }
110 } 110 }
@@ -346,7 +346,7 @@ namespace OpenSim.Region.Environment.Modules
346 { 346 {
347 if (m_rootAgents.ContainsKey(avatar.UUID)) 347 if (m_rootAgents.ContainsKey(avatar.UUID))
348 { 348 {
349 m_rootAgents[avatar.UUID] = avatar.RegionHandle; 349 m_rootAgents[avatar.UUID] = avatar.RegionHandle;
350 } 350 }
351 else 351 else
352 { 352 {
diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs
index 63146bd..c596f6e 100644
--- a/OpenSim/Region/Environment/Scenes/SceneManager.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs
@@ -192,7 +192,7 @@ namespace OpenSim.Region.Environment.Scenes
192 public void LoadCurrentSceneFromXml2(string filename) 192 public void LoadCurrentSceneFromXml2(string filename)
193 { 193 {
194 CurrentOrFirstScene.LoadPrimsFromXml2(filename); 194 CurrentOrFirstScene.LoadPrimsFromXml2(filename);
195 } 195 }
196 196
197 /// <summary> 197 /// <summary>
198 /// Save the current scene to an OpenSimulator archive. This archive will eventually include the prim's assets 198 /// Save the current scene to an OpenSimulator archive. This archive will eventually include the prim's assets
diff --git a/OpenSim/Region/Physics/Meshing/Extruder.cs b/OpenSim/Region/Physics/Meshing/Extruder.cs
index 154a423..8a95df9 100644
--- a/OpenSim/Region/Physics/Meshing/Extruder.cs
+++ b/OpenSim/Region/Physics/Meshing/Extruder.cs
@@ -62,7 +62,6 @@ namespace OpenSim.Region.Physics.Meshing
62 public float pathTaperX = 0.0f; 62 public float pathTaperX = 0.0f;
63 public float pathTaperY = 0.0f; 63 public float pathTaperY = 0.0f;
64 64
65
66 public Mesh Extrude(Mesh m) 65 public Mesh Extrude(Mesh m)
67 { 66 {
68 startParameter = float.MinValue; 67 startParameter = float.MinValue;
@@ -129,8 +128,8 @@ namespace OpenSim.Region.Physics.Meshing
129 v.Y = v2.Y; 128 v.Y = v2.Y;
130 v.Z = v2.Z; 129 v.Z = v2.Z;
131 } 130 }
132
133 } 131 }
132
134 foreach (Vertex v in workingMinus.vertices) 133 foreach (Vertex v in workingMinus.vertices)
135 { 134 {
136 if (v == null) 135 if (v == null)
@@ -159,10 +158,8 @@ namespace OpenSim.Region.Physics.Meshing
159 } 158 }
160 159
161 result.Append(workingMinus); 160 result.Append(workingMinus);
162
163 result.Append(workingMiddle); 161 result.Append(workingMiddle);
164 162
165
166 int iLastNull = 0; 163 int iLastNull = 0;
167 164
168 for (int i = 0; i < workingMiddle.vertices.Count; i++) 165 for (int i = 0; i < workingMiddle.vertices.Count; i++)
@@ -228,6 +225,7 @@ namespace OpenSim.Region.Physics.Meshing
228 new Triangle(workingPlus.vertices[iNext], workingMiddle.vertices[i], workingMiddle.vertices[iNext]); 225 new Triangle(workingPlus.vertices[iNext], workingMiddle.vertices[i], workingMiddle.vertices[iNext]);
229 result.Add(tSide); 226 result.Add(tSide);
230 } 227 }
228
231 if (twistMid != 0) 229 if (twistMid != 0)
232 { 230 {
233 foreach (Vertex v in result.vertices) 231 foreach (Vertex v in result.vertices)
@@ -245,6 +243,7 @@ namespace OpenSim.Region.Physics.Meshing
245 } 243 }
246 return result; 244 return result;
247 } 245 }
246
248 public Mesh ExtrudeCircularPath(Mesh m) 247 public Mesh ExtrudeCircularPath(Mesh m)
249 { 248 {
250 //startParameter = float.MinValue; 249 //startParameter = float.MinValue;
@@ -294,8 +293,6 @@ namespace OpenSim.Region.Physics.Meshing
294 //System.Console.WriteLine("taperBotFactorX: " + taperBotFactorX.ToString() + " taperBotFactorY: " + taperBotFactorY.ToString() 293 //System.Console.WriteLine("taperBotFactorX: " + taperBotFactorX.ToString() + " taperBotFactorY: " + taperBotFactorY.ToString()
295 // + " taperTopFactorX: " + taperTopFactorX.ToString() + " taperTopFactorY: " + taperTopFactorY.ToString()); 294 // + " taperTopFactorX: " + taperTopFactorX.ToString() + " taperTopFactorY: " + taperTopFactorY.ToString());
296 295
297
298
299 do 296 do
300 { 297 {
301 float percentOfPath = 1.0f; 298 float percentOfPath = 1.0f;
@@ -328,10 +325,6 @@ namespace OpenSim.Region.Physics.Meshing
328 325
329 //System.Console.WriteLine("Extruder: radius: " + radius.ToString() + " radiusScale: " + radiusScale.ToString()); 326 //System.Console.WriteLine("Extruder: radius: " + radius.ToString() + " radiusScale: " + radiusScale.ToString());
330 327
331
332
333
334
335 float twist = twistBot + (twistTotal * (float)percentOfPath); 328 float twist = twistBot + (twistTotal * (float)percentOfPath);
336 329
337 float zOffset = (float)(System.Math.Sin(angle) * (0.5f - yPathScale)) * radiusScale; 330 float zOffset = (float)(System.Math.Sin(angle) * (0.5f - yPathScale)) * radiusScale;
@@ -404,13 +397,6 @@ namespace OpenSim.Region.Physics.Meshing
404 } 397 }
405 lastLayer = newLayer; 398 lastLayer = newLayer;
406 399
407
408
409
410
411
412
413
414 // calc next angle 400 // calc next angle
415 401
416 if (angle >= endAngle) 402 if (angle >= endAngle)
@@ -421,10 +407,7 @@ namespace OpenSim.Region.Physics.Meshing
421 if (angle > endAngle) 407 if (angle > endAngle)
422 angle = endAngle; 408 angle = endAngle;
423 } 409 }
424 } 410 } while (!done);
425 while (!done);
426
427
428 411
429 // scale the mesh to the desired size 412 // scale the mesh to the desired size
430 float xScale = size.X; 413 float xScale = size.X;
@@ -432,12 +415,14 @@ namespace OpenSim.Region.Physics.Meshing
432 float zScale = size.Z; 415 float zScale = size.Z;
433 416
434 foreach (Vertex v in result.vertices) 417 foreach (Vertex v in result.vertices)
418 {
435 if (v != null) 419 if (v != null)
436 { 420 {
437 v.X *= xScale; 421 v.X *= xScale;
438 v.Y *= yScale; 422 v.Y *= yScale;
439 v.Z *= zScale; 423 v.Z *= zScale;
440 } 424 }
425 }
441 426
442 return result; 427 return result;
443 } 428 }
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
index 5ef392c..3fbc7c9 100644
--- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
+++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs
@@ -255,7 +255,7 @@ namespace OpenSim.Region.Physics.Meshing
255 holeHull.AddVertex(IPM); 255 holeHull.AddVertex(IPM);
256 } 256 }
257 //if (hshape == HollowShape.Circle && pbs.PathCurve == (byte)Extrusion.Straight) 257 //if (hshape == HollowShape.Circle && pbs.PathCurve == (byte)Extrusion.Straight)
258 if ( hshape == HollowShape.Circle ) 258 if (hshape == HollowShape.Circle)
259 { 259 {
260 float hollowFactorF = (float)fhollowFactor / (float)50000; 260 float hollowFactorF = (float)fhollowFactor / (float)50000;
261 261
@@ -1346,7 +1346,7 @@ namespace OpenSim.Region.Physics.Meshing
1346 // || (primShape.ProfileCurve & 0x07) == (byte) ProfileShape.Square) 1346 // || (primShape.ProfileCurve & 0x07) == (byte) ProfileShape.Square)
1347 { 1347 {
1348 //Console.WriteLine("Meshmerizer thinks " + primName + " is a TORUS"); 1348 //Console.WriteLine("Meshmerizer thinks " + primName + " is a TORUS");
1349 if ( hollowShape == HollowShape.Same ) 1349 if (hollowShape == HollowShape.Same)
1350 hollowShape = HollowShape.Circle; 1350 hollowShape = HollowShape.Circle;
1351 1351
1352 // build the profile shape 1352 // build the profile shape
@@ -1381,7 +1381,7 @@ namespace OpenSim.Region.Physics.Meshing
1381 else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) // a ring 1381 else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.Square) // a ring
1382 { 1382 {
1383 //Console.WriteLine("Meshmerizer thinks " + primName + " is a TUBE"); 1383 //Console.WriteLine("Meshmerizer thinks " + primName + " is a TUBE");
1384 if ( hollowShape == HollowShape.Same ) 1384 if (hollowShape == HollowShape.Same)
1385 hollowShape = HollowShape.Square; 1385 hollowShape = HollowShape.Square;
1386 1386
1387 outerHull.AddVertex(new Vertex(+0.5f, +0.5f, 0.0f)); 1387 outerHull.AddVertex(new Vertex(+0.5f, +0.5f, 0.0f));
@@ -1393,7 +1393,7 @@ namespace OpenSim.Region.Physics.Meshing
1393 else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.EquilateralTriangle) 1393 else if ((primShape.ProfileCurve & 0x07) == (byte)ProfileShape.EquilateralTriangle)
1394 { 1394 {
1395 //Console.WriteLine("Meshmerizer thinks " + primName + " is a RING"); 1395 //Console.WriteLine("Meshmerizer thinks " + primName + " is a RING");
1396 if ( hollowShape == HollowShape.Same ) 1396 if (hollowShape == HollowShape.Same)
1397 hollowShape = HollowShape.Triangle; 1397 hollowShape = HollowShape.Triangle;
1398 1398
1399 outerHull.AddVertex(new Vertex(+0.255f, -0.375f, 0.0f)); 1399 outerHull.AddVertex(new Vertex(+0.255f, -0.375f, 0.0f));
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
index 33aa905..518e37b 100644
--- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
+++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs
@@ -1432,7 +1432,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1432 m_host.Sound = key; 1432 m_host.Sound = key;
1433 } 1433 }
1434 // else try to locate the name in inventory of object. found returns key, 1434 // else try to locate the name in inventory of object. found returns key,
1435 // not found returns LLUUID.Zero 1435 // not found returns LLUUID.Zero
1436 else 1436 else
1437 { 1437 {
1438 m_host.Sound = InventoryKey(sound.ToString()); 1438 m_host.Sound = InventoryKey(sound.ToString());
@@ -1477,7 +1477,7 @@ namespace OpenSim.Region.ScriptEngine.Common
1477 m_host.Sound = LLUUID.Zero; 1477 m_host.Sound = LLUUID.Zero;
1478 m_host.SoundGain = 0; 1478 m_host.SoundGain = 0;
1479 m_host.SoundFlags = 0; 1479 m_host.SoundFlags = 0;
1480 m_host.SoundRadius = 0; 1480 m_host.SoundRadius = 0;
1481 1481
1482 m_host.SendFullUpdateToAllClients(); 1482 m_host.SendFullUpdateToAllClients();
1483 1483
@@ -3871,7 +3871,7 @@ namespace OpenSim.Region.ScriptEngine.Common
3871 { 3871 {
3872 // Finally got to the first line of the notecard 3872 // Finally got to the first line of the notecard
3873 // now find the end of the notecard text delimited by }<LF> 3873 // now find the end of the notecard text delimited by }<LF>
3874 // parse the lines, delimited by <LF> 3874 // parse the lines, delimited by <LF>
3875 notecardIndex = dataString.IndexOf("\n", notecardIndex); 3875 notecardIndex = dataString.IndexOf("\n", notecardIndex);
3876 notecardIndex++; // get past delimiter 3876 notecardIndex++; // get past delimiter
3877 3877
@@ -5627,10 +5627,10 @@ namespace OpenSim.Region.ScriptEngine.Common
5627 5627
5628 RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator); 5628 RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator);
5629 5629
5630 switch(data) 5630 switch (data)
5631 { 5631 {
5632 case 5: // DATA_SIM_POS 5632 case 5: // DATA_SIM_POS
5633 if(info == null) 5633 if (info == null)
5634 return LLUUID.Zero.ToString(); 5634 return LLUUID.Zero.ToString();
5635 reply = new LSL_Types.Vector3( 5635 reply = new LSL_Types.Vector3(
5636 info.RegionLocX * Constants.RegionSize, 5636 info.RegionLocX * Constants.RegionSize,
@@ -5638,18 +5638,18 @@ namespace OpenSim.Region.ScriptEngine.Common
5638 0).ToString(); 5638 0).ToString();
5639 break; 5639 break;
5640 case 6: // DATA_SIM_STATUS 5640 case 6: // DATA_SIM_STATUS
5641 if(info != null) 5641 if (info != null)
5642 reply = "up"; // Duh! 5642 reply = "up"; // Duh!
5643 else 5643 else
5644 reply = "unknown"; 5644 reply = "unknown";
5645 break; 5645 break;
5646 case 7: // DATA_SIM_RATING 5646 case 7: // DATA_SIM_RATING
5647 if(info == null) 5647 if (info == null)
5648 return LLUUID.Zero.ToString(); 5648 return LLUUID.Zero.ToString();
5649 int access = (int)info.EstateSettings.simAccess; 5649 int access = (int)info.EstateSettings.simAccess;
5650 if(access == 21) 5650 if (access == 21)
5651 reply = "MATURE"; 5651 reply = "MATURE";
5652 else if(access == 13) 5652 else if (access == 13)
5653 reply = "MATURE"; 5653 reply = "MATURE";
5654 else 5654 else
5655 reply = "UNKNOWN"; 5655 reply = "UNKNOWN";
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs
index eb87a9c..5f86c9c 100644
--- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs
+++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/Dataserver.cs
@@ -59,9 +59,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
59 public LLUUID RegisterRequest(uint localID, LLUUID itemID, 59 public LLUUID RegisterRequest(uint localID, LLUUID itemID,
60 string identifier) 60 string identifier)
61 { 61 {
62 lock(DataserverRequests) 62 lock (DataserverRequests)
63 { 63 {
64 if(DataserverRequests.ContainsKey(identifier)) 64 if (DataserverRequests.ContainsKey(identifier))
65 return LLUUID.Zero; 65 return LLUUID.Zero;
66 66
67 DataserverRequest ds = new DataserverRequest(); 67 DataserverRequest ds = new DataserverRequest();
@@ -84,9 +84,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
84 { 84 {
85 DataserverRequest ds; 85 DataserverRequest ds;
86 86
87 lock(DataserverRequests) 87 lock (DataserverRequests)
88 { 88 {
89 if(!DataserverRequests.ContainsKey(identifier)) 89 if (!DataserverRequests.ContainsKey(identifier))
90 return; 90 return;
91 91
92 ds=DataserverRequests[identifier]; 92 ds=DataserverRequests[identifier];
@@ -101,11 +101,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
101 101
102 public void RemoveEvents(uint localID, LLUUID itemID) 102 public void RemoveEvents(uint localID, LLUUID itemID)
103 { 103 {
104 lock(DataserverRequests) 104 lock (DataserverRequests)
105 { 105 {
106 foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) 106 foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
107 { 107 {
108 if(ds.itemID == itemID) 108 if (ds.itemID == itemID)
109 DataserverRequests.Remove(ds.handle); 109 DataserverRequests.Remove(ds.handle);
110 } 110 }
111 } 111 }
@@ -113,11 +113,11 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
113 113
114 public void ExpireRequests() 114 public void ExpireRequests()
115 { 115 {
116 lock(DataserverRequests) 116 lock (DataserverRequests)
117 { 117 {
118 foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) 118 foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
119 { 119 {
120 if(ds.startTime > DateTime.Now.AddSeconds(30)) 120 if (ds.startTime > DateTime.Now.AddSeconds(30))
121 DataserverRequests.Remove(ds.handle); 121 DataserverRequests.Remove(ds.handle);
122 } 122 }
123 } 123 }
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/XmlRequest.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/XmlRequest.cs
index c793add..ba6a98c 100644
--- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/XmlRequest.cs
+++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/AsyncCommandPlugins/XmlRequest.cs
@@ -57,7 +57,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
57 bool handled = false; 57 bool handled = false;
58 58
59 // Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely 59 // Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely
60 xmlrpc.RemoveCompletedRequest(rInfo.GetMessageID()); 60 xmlrpc.RemoveCompletedRequest(rInfo.GetMessageID());
61 61
62 // And since the xmlrpc request queue is actually shared among all regions on the simulator, we need 62 // And since the xmlrpc request queue is actually shared among all regions on the simulator, we need
63 // to look in each one for the appropriate handler 63 // to look in each one for the appropriate handler
@@ -96,9 +96,9 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
96 96
97 // Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely 97 // Request must be taken out of the queue in case there is no handler, otherwise we loop infinitely
98 xmlrpc.RemoveCompletedSRDRequest(srdInfo.GetReqID()); 98 xmlrpc.RemoveCompletedSRDRequest(srdInfo.GetReqID());
99 99
100 // And this is another shared queue... so we check each of the script engines for a handler 100 // And this is another shared queue... so we check each of the script engines for a handler
101 foreach (ScriptEngine sman in ScriptEngine.ScriptEngines) 101 foreach (ScriptEngine sman in ScriptEngine.ScriptEngines)
102 { 102 {
103 if (sman.m_ScriptManager.GetScript(srdInfo.m_localID,srdInfo.m_itemID) != null) { 103 if (sman.m_ScriptManager.GetScript(srdInfo.m_localID,srdInfo.m_itemID) != null) {
104 104
@@ -116,7 +116,7 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase.AsyncCommandPlugin
116 handled = true; 116 handled = true;
117 } 117 }
118 } 118 }
119 119
120 if (! handled) 120 if (! handled)
121 { 121 {
122 Console.WriteLine("Unhandled xml_srdrequest: " + srdInfo.GetReqID()); 122 Console.WriteLine("Unhandled xml_srdrequest: " + srdInfo.GetReqID());
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
index 10380f2..583bb93 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
@@ -87,9 +87,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
87 string quote = String.Empty; 87 string quote = String.Empty;
88 bool last_was_escape = false; 88 bool last_was_escape = false;
89 int quote_replaced_count = 0; 89 int quote_replaced_count = 0;
90 90
91 string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";"); 91 string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";");
92 92
93 string removecomments = conelinecomments.Replace(removefwnoncomments, ""); 93 string removecomments = conelinecomments.Replace(removefwnoncomments, "");
94 removecomments = cstylecomments.Replace(removecomments, ""); 94 removecomments = cstylecomments.Replace(removecomments, "");
95 string[] localscript = removecomments.Split('"'); 95 string[] localscript = removecomments.Split('"');
@@ -121,9 +121,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
121 // ignores alpha.x alpha.y, alpha.z for refering to vector components 121 // ignores alpha.x alpha.y, alpha.z for refering to vector components
122 Match SecurityM; 122 Match SecurityM;
123 123
124 124
125 SecurityM = Regex.Match(checkscript, @"([a-zA-Z])\.(?:[a-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); 125 SecurityM = Regex.Match(checkscript, @"([a-zA-Z])\.(?:[a-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
126 if (SecurityM.Success) 126 if (SecurityM.Success)
127 throw new Exception("CS0103: 'The . symbol cannot be used in LSL except in float values or vector components'. Detected around: " + SecurityM.Captures[0].Value); 127 throw new Exception("CS0103: 'The . symbol cannot be used in LSL except in float values or vector components'. Detected around: " + SecurityM.Captures[0].Value);
128 128
129 SecurityM = Regex.Match(checkscript, @"typeof\s", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); 129 SecurityM = Regex.Match(checkscript, @"typeof\s", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);