aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/LandManagement/Land.cs19
-rw-r--r--OpenSim/Region/Environment/LandManagement/LandManager.cs5
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs8
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs71
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs13
-rw-r--r--OpenSim/Region/Environment/Scenes/SimStatsReporter.cs6
6 files changed, 68 insertions, 54 deletions
diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs
index ff16319..5c99ffd 100644
--- a/OpenSim/Region/Environment/LandManagement/Land.cs
+++ b/OpenSim/Region/Environment/LandManagement/Land.cs
@@ -32,6 +32,7 @@ using libsecondlife;
32using libsecondlife.Packets; 32using libsecondlife.Packets;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Region.Environment.Scenes; 34using OpenSim.Region.Environment.Scenes;
35using OpenSim.Region.Environment.Interfaces;
35 36
36namespace OpenSim.Region.Environment.LandManagement 37namespace OpenSim.Region.Environment.LandManagement
37{ 38{
@@ -110,7 +111,9 @@ namespace OpenSim.Region.Environment.LandManagement
110 public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, 111 public void sendLandProperties(int sequence_id, bool snap_selection, int request_result,
111 IClientAPI remote_client) 112 IClientAPI remote_client)
112 { 113 {
113 ParcelPropertiesPacket updatePacket = new ParcelPropertiesPacket(); 114 ParcelPropertiesPacket updatePacket = (ParcelPropertiesPacket) PacketPool.Instance.GetPacket(PacketType.ParcelProperties);
115 // TODO: don't create new blocks if recycling an old packet
116
114 updatePacket.ParcelData.AABBMax = landData.AABBMax; 117 updatePacket.ParcelData.AABBMax = landData.AABBMax;
115 updatePacket.ParcelData.AABBMin = landData.AABBMin; 118 updatePacket.ParcelData.AABBMin = landData.AABBMin;
116 updatePacket.ParcelData.Area = landData.area; 119 updatePacket.ParcelData.Area = landData.area;
@@ -334,7 +337,7 @@ namespace OpenSim.Region.Environment.LandManagement
334 337
335 if (flags == (uint) ParcelManager.AccessList.Access || flags == (uint) ParcelManager.AccessList.Both) 338 if (flags == (uint) ParcelManager.AccessList.Access || flags == (uint) ParcelManager.AccessList.Both)
336 { 339 {
337 replyPacket = new ParcelAccessListReplyPacket(); 340 replyPacket = (ParcelAccessListReplyPacket) PacketPool.Instance.GetPacket(PacketType.ParcelAccessListReply);
338 replyPacket.Data.AgentID = agentID; 341 replyPacket.Data.AgentID = agentID;
339 replyPacket.Data.Flags = (uint) ParcelManager.AccessList.Access; 342 replyPacket.Data.Flags = (uint) ParcelManager.AccessList.Access;
340 replyPacket.Data.LocalID = landData.localID; 343 replyPacket.Data.LocalID = landData.localID;
@@ -346,7 +349,7 @@ namespace OpenSim.Region.Environment.LandManagement
346 349
347 if (flags == (uint) ParcelManager.AccessList.Ban || flags == (uint) ParcelManager.AccessList.Both) 350 if (flags == (uint) ParcelManager.AccessList.Ban || flags == (uint) ParcelManager.AccessList.Both)
348 { 351 {
349 replyPacket = new ParcelAccessListReplyPacket(); 352 replyPacket = (ParcelAccessListReplyPacket) PacketPool.Instance.GetPacket(PacketType.ParcelAccessListReply);
350 replyPacket.Data.AgentID = agentID; 353 replyPacket.Data.AgentID = agentID;
351 replyPacket.Data.Flags = (uint) ParcelManager.AccessList.Ban; 354 replyPacket.Data.Flags = (uint) ParcelManager.AccessList.Ban;
352 replyPacket.Data.LocalID = landData.localID; 355 replyPacket.Data.LocalID = landData.localID;
@@ -657,7 +660,8 @@ namespace OpenSim.Region.Environment.LandManagement
657 660
658 bool firstCall = true; 661 bool firstCall = true;
659 int MAX_OBJECTS_PER_PACKET = 251; 662 int MAX_OBJECTS_PER_PACKET = 251;
660 ForceObjectSelectPacket pack = new ForceObjectSelectPacket(); 663 ForceObjectSelectPacket pack = (ForceObjectSelectPacket) PacketPool.Instance.GetPacket(PacketType.ForceObjectSelect);
664 // TODO: don't create new blocks if recycling an old packet
661 ForceObjectSelectPacket.DataBlock[] data; 665 ForceObjectSelectPacket.DataBlock[] data;
662 while (resultLocalIDs.Count > 0) 666 while (resultLocalIDs.Count > 0)
663 { 667 {
@@ -695,7 +699,9 @@ namespace OpenSim.Region.Environment.LandManagement
695 public void sendLandObjectOwners(IClientAPI remote_client) 699 public void sendLandObjectOwners(IClientAPI remote_client)
696 { 700 {
697 Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>(); 701 Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>();
698 ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket(); 702 ParcelObjectOwnersReplyPacket pack = (ParcelObjectOwnersReplyPacket) PacketPool.Instance.GetPacket(PacketType.ParcelObjectOwnersReply);
703 // TODO: don't create new blocks if recycling an old packet
704
699 foreach (SceneObjectGroup obj in primsOverMe) 705 foreach (SceneObjectGroup obj in primsOverMe)
700 { 706 {
701 if (!ownersAndCount.ContainsKey(obj.OwnerID)) 707 if (!ownersAndCount.ContainsKey(obj.OwnerID))
@@ -725,7 +731,6 @@ namespace OpenSim.Region.Environment.LandManagement
725 731
726 num++; 732 num++;
727 } 733 }
728
729 pack.Data = dataBlock; 734 pack.Data = dataBlock;
730 } 735 }
731 remote_client.OutPacket(pack, ThrottleOutPacketType.Task); 736 remote_client.OutPacket(pack, ThrottleOutPacketType.Task);
@@ -810,4 +815,4 @@ namespace OpenSim.Region.Environment.LandManagement
810 } 815 }
811 816
812 #endregion 817 #endregion
813} \ No newline at end of file 818}
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs
index 772fe2e..22e7fc9 100644
--- a/OpenSim/Region/Environment/LandManagement/LandManager.cs
+++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs
@@ -33,6 +33,7 @@ using libsecondlife.Packets;
33using OpenSim.Framework; 33using OpenSim.Framework;
34using OpenSim.Framework.Console; 34using OpenSim.Framework.Console;
35using OpenSim.Region.Environment.Scenes; 35using OpenSim.Region.Environment.Scenes;
36using OpenSim.Region.Environment.Interfaces;
36using OpenSim.Region.Physics.Manager; 37using OpenSim.Region.Physics.Manager;
37 38
38namespace OpenSim.Region.Environment.LandManagement 39namespace OpenSim.Region.Environment.LandManagement
@@ -493,7 +494,7 @@ namespace OpenSim.Region.Environment.LandManagement
493 if (byteArrayCount >= LAND_BLOCKS_PER_PACKET) 494 if (byteArrayCount >= LAND_BLOCKS_PER_PACKET)
494 { 495 {
495 byteArrayCount = 0; 496 byteArrayCount = 0;
496 packet = new ParcelOverlayPacket(); 497 packet = (ParcelOverlayPacket) PacketPool.Instance.GetPacket(PacketType.ParcelOverlay);
497 packet.ParcelData.Data = byteArray; 498 packet.ParcelData.Data = byteArray;
498 packet.ParcelData.SequenceID = sequenceID; 499 packet.ParcelData.SequenceID = sequenceID;
499 remote_client.OutPacket((Packet) packet, ThrottleOutPacketType.Task); 500 remote_client.OutPacket((Packet) packet, ThrottleOutPacketType.Task);
@@ -856,4 +857,4 @@ namespace OpenSim.Region.Environment.LandManagement
856 } 857 }
857 858
858 #endregion 859 #endregion
859} \ No newline at end of file 860}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
index 999b70f..647fbf4 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs
@@ -29,6 +29,8 @@ using System.Collections.Generic;
29using libsecondlife; 29using libsecondlife;
30using libsecondlife.Packets; 30using libsecondlife.Packets;
31using OpenSim.Framework; 31using OpenSim.Framework;
32using OpenSim.Framework.UserManagement;
33using OpenSim.Framework.Console;
32 34
33namespace OpenSim.Region.Environment.Scenes 35namespace OpenSim.Region.Environment.Scenes
34{ 36{
@@ -164,7 +166,9 @@ namespace OpenSim.Region.Environment.Scenes
164 List<AvatarPickerAvatar> AvatarResponses = new List<AvatarPickerAvatar>(); 166 List<AvatarPickerAvatar> AvatarResponses = new List<AvatarPickerAvatar>();
165 AvatarResponses = CommsManager.GenerateAgentPickerRequestResponse(RequestID, query); 167 AvatarResponses = CommsManager.GenerateAgentPickerRequestResponse(RequestID, query);
166 168
167 AvatarPickerReplyPacket replyPacket = new AvatarPickerReplyPacket(); 169 AvatarPickerReplyPacket replyPacket = (AvatarPickerReplyPacket) PacketPool.Instance.GetPacket(PacketType.AvatarPickerReply);
170 // TODO: don't create new blocks if recycling an old packet
171
168 AvatarPickerReplyPacket.DataBlock[] searchData = 172 AvatarPickerReplyPacket.DataBlock[] searchData =
169 new AvatarPickerReplyPacket.DataBlock[AvatarResponses.Count]; 173 new AvatarPickerReplyPacket.DataBlock[AvatarResponses.Count];
170 AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock(); 174 AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock();
@@ -192,4 +196,4 @@ namespace OpenSim.Region.Environment.Scenes
192 client.SendAvatarPickerReply(replyPacket); 196 client.SendAvatarPickerReply(replyPacket);
193 } 197 }
194 } 198 }
195} \ No newline at end of file 199}
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index d8c5255..4657264 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -474,7 +474,7 @@ namespace OpenSim.Region.Environment.Scenes
474 if (!avatar.IsChildAgent) 474 if (!avatar.IsChildAgent)
475 avatar.ControllingClient.Kick("The simulator is going down."); 475 avatar.ControllingClient.Kick("The simulator is going down.");
476 476
477 avatar.ControllingClient.OutPacket(new DisableSimulatorPacket(), 477 avatar.ControllingClient.OutPacket(PacketPool.Instance.GetPacket(libsecondlife.Packets.PacketType.DisableSimulator),
478 ThrottleOutPacketType.Task); 478 ThrottleOutPacketType.Task);
479 }); 479 });
480 480
@@ -1016,43 +1016,42 @@ namespace OpenSim.Region.Environment.Scenes
1016 // It's wrong many times though. 1016 // It's wrong many times though.
1017 1017
1018 LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, rot, bypassRaycast, RayEndIsIntersection); 1018 LLVector3 pos = GetNewRezLocation(RayStart, RayEnd, RayTargetID, rot, bypassRaycast, RayEndIsIntersection);
1019
1020
1021
1019 1022
1020 if (PermissionsMngr.CanRezObject(ownerID, pos)) 1023 if (PermissionsMngr.CanRezObject(ownerID, pos))
1021 { 1024 {
1022 // rez ON the ground, not IN the ground
1023 pos.Z += 0.25F;
1024
1025 AddNewPrim(ownerID, pos, rot, shape);
1026 }
1027 }
1028 1025
1029 public virtual void AddNewPrim(LLUUID ownerID, LLVector3 pos, LLQuaternion rot, PrimitiveBaseShape shape) 1026 // rez ON the ground, not IN the ground
1030 { 1027 pos.Z += 0.25F;
1031 SceneObjectGroup sceneOb = 1028
1032 new SceneObjectGroup(this, m_regionHandle, ownerID, PrimIDAllocate(), pos, rot, shape); 1029
1033 1030 SceneObjectGroup sceneOb =
1034 AddEntity(sceneOb); 1031 new SceneObjectGroup(this, m_regionHandle, ownerID, PrimIDAllocate(), pos, rot, shape);
1035 SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID); 1032 AddEntity(sceneOb);
1036 // if grass or tree, make phantom 1033 SceneObjectPart rootPart = sceneOb.GetChildPart(sceneOb.UUID);
1037 //rootPart.ApplySanePermissions(); 1034 // if grass or tree, make phantom
1038 if ((rootPart.Shape.PCode == 95) || (rootPart.Shape.PCode == 255) || (rootPart.Shape.PCode == 111)) 1035 //rootPart.ApplySanePermissions();
1039 { 1036 if ((rootPart.Shape.PCode == 95) || (rootPart.Shape.PCode == 255) || (rootPart.Shape.PCode == 111))
1040 rootPart.AddFlag(LLObject.ObjectFlags.Phantom); 1037 {
1041 //rootPart.ObjectFlags += (uint)LLObject.ObjectFlags.Phantom; 1038 rootPart.AddFlag(LLObject.ObjectFlags.Phantom);
1042 } 1039 //rootPart.ObjectFlags += (uint)LLObject.ObjectFlags.Phantom;
1043 // if not phantom, add to physics 1040 }
1044 bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim); 1041 // if not phantom, add to physics
1045 if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) 1042 bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim);
1046 { 1043 if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0)
1047 rootPart.PhysActor = 1044 {
1048 PhysicsScene.AddPrimShape( 1045 rootPart.PhysActor =
1049 rootPart.Name, 1046 PhysicsScene.AddPrimShape(
1050 rootPart.Shape, 1047 rootPart.Name,
1051 new PhysicsVector(pos.X, pos.Y, pos.Z), 1048 rootPart.Shape,
1052 new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z), 1049 new PhysicsVector(pos.X, pos.Y, pos.Z),
1053 new Quaternion(), UsePhysics); 1050 new PhysicsVector(shape.Scale.X, shape.Scale.Y, shape.Scale.Z),
1054 // subscribe to physics events. 1051 new Quaternion(), UsePhysics);
1055 rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); 1052 // subscribe to physics events.
1053 rootPart.DoPhysicsPropertyUpdate(UsePhysics, true);
1054 }
1056 } 1055 }
1057 } 1056 }
1058 1057
@@ -1499,7 +1498,7 @@ namespace OpenSim.Region.Environment.Scenes
1499 m_innerScene.removeUserCount(true); 1498 m_innerScene.removeUserCount(true);
1500 } 1499 }
1501 // Tell a single agent to disconnect from the region. 1500 // Tell a single agent to disconnect from the region.
1502 DisableSimulatorPacket disable = new DisableSimulatorPacket(); 1501 libsecondlife.Packets.DisableSimulatorPacket disable = (libsecondlife.Packets.DisableSimulatorPacket) PacketPool.Instance.GetPacket(libsecondlife.Packets.PacketType.DisableSimulator);
1503 presence.ControllingClient.OutPacket(disable, ThrottleOutPacketType.Task); 1502 presence.ControllingClient.OutPacket(disable, ThrottleOutPacketType.Task);
1504 } 1503 }
1505 } 1504 }
@@ -2246,4 +2245,4 @@ namespace OpenSim.Region.Environment.Scenes
2246 2245
2247 #endregion 2246 #endregion
2248 } 2247 }
2249} \ No newline at end of file 2248}
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 5b74c9b..94b6797 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -74,13 +74,11 @@ namespace OpenSim.Region.Environment.Scenes
74 { 74 {
75 get { return m_rootPart.RotationOffset; } 75 get { return m_rootPart.RotationOffset; }
76 } 76 }
77
78 public LLUUID GroupID 77 public LLUUID GroupID
79 { 78 {
80 get { return m_rootPart.GroupID; } 79 get { return m_rootPart.GroupID; }
81 set { m_rootPart.GroupID = value; } 80 set { m_rootPart.GroupID = value; }
82 } 81 }
83
84 /// <summary> 82 /// <summary>
85 /// 83 ///
86 /// </summary> 84 /// </summary>
@@ -638,7 +636,9 @@ namespace OpenSim.Region.Environment.Scenes
638 public void ServiceObjectPropertiesFamilyRequest(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags) 636 public void ServiceObjectPropertiesFamilyRequest(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags)
639 { 637 {
640 //RootPart.ServiceObjectPropertiesFamilyRequest(remoteClient, AgentID, RequestFlags); 638 //RootPart.ServiceObjectPropertiesFamilyRequest(remoteClient, AgentID, RequestFlags);
641 ObjectPropertiesFamilyPacket objPropFamilyPack = new ObjectPropertiesFamilyPacket(); 639 ObjectPropertiesFamilyPacket objPropFamilyPack = (ObjectPropertiesFamilyPacket) PacketPool.Instance.GetPacket(PacketType.ObjectPropertiesFamily);
640 // TODO: don't create new blocks if recycling an old packet
641
642 ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock(); 642 ObjectPropertiesFamilyPacket.ObjectDataBlock objPropDB = new ObjectPropertiesFamilyPacket.ObjectDataBlock();
643 objPropDB.RequestFlags = RequestFlags; 643 objPropDB.RequestFlags = RequestFlags;
644 objPropDB.ObjectID = RootPart.UUID; 644 objPropDB.ObjectID = RootPart.UUID;
@@ -1045,7 +1045,9 @@ namespace OpenSim.Region.Environment.Scenes
1045 /// <param name="client"></param> 1045 /// <param name="client"></param>
1046 public void GetProperites(IClientAPI client) 1046 public void GetProperites(IClientAPI client)
1047 { 1047 {
1048 ObjectPropertiesPacket proper = new ObjectPropertiesPacket(); 1048 ObjectPropertiesPacket proper = (ObjectPropertiesPacket) PacketPool.Instance.GetPacket(PacketType.ObjectProperties);
1049 // TODO: don't create new blocks if recycling an old packet
1050
1049 proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; 1051 proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1];
1050 proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); 1052 proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock();
1051 proper.ObjectData[0].ItemID = LLUUID.Zero; 1053 proper.ObjectData[0].ItemID = LLUUID.Zero;
@@ -1297,6 +1299,7 @@ namespace OpenSim.Region.Environment.Scenes
1297 m_rootPart.PhysActor.IsPhysical); 1299 m_rootPart.PhysActor.IsPhysical);
1298 bool UsePhysics = ((m_rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); 1300 bool UsePhysics = ((m_rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0);
1299 m_rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); 1301 m_rootPart.DoPhysicsPropertyUpdate(UsePhysics, true);
1302
1300 } 1303 }
1301 } 1304 }
1302 1305
@@ -1737,4 +1740,4 @@ namespace OpenSim.Region.Environment.Scenes
1737 m_rootPart.ApplyPhysics(); 1740 m_rootPart.ApplyPhysics();
1738 } 1741 }
1739 } 1742 }
1740} \ No newline at end of file 1743}
diff --git a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs
index b183c04..5033965 100644
--- a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs
+++ b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs
@@ -83,7 +83,9 @@ namespace OpenSim.Region.Environment.Scenes
83 private void statsHeartBeat(object sender, EventArgs e) 83 private void statsHeartBeat(object sender, EventArgs e)
84 { 84 {
85 m_report.Enabled = false; 85 m_report.Enabled = false;
86 SimStatsPacket statpack = new SimStatsPacket(); 86 SimStatsPacket statpack = (SimStatsPacket) PacketPool.Instance.GetPacket(PacketType.SimStats);
87 // TODO: don't create new blocks if recycling an old packet
88
87 SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[11]; 89 SimStatsPacket.StatBlock[] sb = new SimStatsPacket.StatBlock[11];
88 statpack.Region = new SimStatsPacket.RegionBlock(); 90 statpack.Region = new SimStatsPacket.RegionBlock();
89 statpack.Region.RegionX = ReportingRegion.RegionLocX; 91 statpack.Region.RegionX = ReportingRegion.RegionLocX;
@@ -241,4 +243,4 @@ namespace OpenSim.Region.Environment.Scenes
241 m_unAckedBytes += numBytes; 243 m_unAckedBytes += numBytes;
242 } 244 }
243 } 245 }
244} \ No newline at end of file 246}