aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2010-08-18 23:15:25 +0100
committerJustin Clark-Casey (justincc)2010-08-18 23:15:25 +0100
commit8c12f22140d2885bb79aa4e201345ae6fd45fec6 (patch)
treee6d3fd25eafdee7f790f54d092e8494be4715149 /OpenSim/Region
parentAdd textures no longer shipped with newer viewers to OpenSim's standard asset... (diff)
parentPrevent a bad cast in llCreateLink(). (diff)
downloadopensim-SC_OLD-8c12f22140d2885bb79aa4e201345ae6fd45fec6.zip
opensim-SC_OLD-8c12f22140d2885bb79aa4e201345ae6fd45fec6.tar.gz
opensim-SC_OLD-8c12f22140d2885bb79aa4e201345ae6fd45fec6.tar.bz2
opensim-SC_OLD-8c12f22140d2885bb79aa4e201345ae6fd45fec6.tar.xz
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs21
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs13
-rw-r--r--OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs3
-rw-r--r--OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs6
-rw-r--r--OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs6
-rw-r--r--OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs2
-rw-r--r--OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs7
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs2
10 files changed, 45 insertions, 23 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index c11b9a2..1d3bdf3 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -1432,16 +1432,27 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1432 /// <summary> 1432 /// <summary>
1433 /// 1433 ///
1434 /// </summary> 1434 /// </summary>
1435 public void SendTeleportLocationStart() 1435 public void SendTeleportStart(uint flags)
1436 { 1436 {
1437 //TeleportStartPacket tpStart = (TeleportStartPacket)PacketPool.Instance.GetPacket(PacketType.TeleportStart); 1437 TeleportStartPacket tpStart = (TeleportStartPacket)PacketPool.Instance.GetPacket(PacketType.TeleportStart);
1438 TeleportStartPacket tpStart = new TeleportStartPacket(); 1438 //TeleportStartPacket tpStart = new TeleportStartPacket();
1439 tpStart.Info.TeleportFlags = 16; // Teleport via location 1439 tpStart.Info.TeleportFlags = flags; //16; // Teleport via location
1440 1440
1441 // Hack to get this out immediately and skip throttles 1441 // Hack to get this out immediately and skip throttles
1442 OutPacket(tpStart, ThrottleOutPacketType.Unknown); 1442 OutPacket(tpStart, ThrottleOutPacketType.Unknown);
1443 } 1443 }
1444 1444
1445 public void SendTeleportProgress(uint flags, string message)
1446 {
1447 TeleportProgressPacket tpProgress = (TeleportProgressPacket)PacketPool.Instance.GetPacket(PacketType.TeleportProgress);
1448 tpProgress.AgentData.AgentID = this.AgentId;
1449 tpProgress.Info.TeleportFlags = flags;
1450 tpProgress.Info.Message = Util.StringToBytes256(message);
1451
1452 // Hack to get this out immediately and skip throttles
1453 OutPacket(tpProgress, ThrottleOutPacketType.Unknown);
1454 }
1455
1445 public void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance) 1456 public void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance)
1446 { 1457 {
1447 MoneyBalanceReplyPacket money = (MoneyBalanceReplyPacket)PacketPool.Instance.GetPacket(PacketType.MoneyBalanceReply); 1458 MoneyBalanceReplyPacket money = (MoneyBalanceReplyPacket)PacketPool.Instance.GetPacket(PacketType.MoneyBalanceReply);
@@ -3022,7 +3033,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3022 { 3033 {
3023 OSDMap GroupDataMap = new OSDMap(6); 3034 OSDMap GroupDataMap = new OSDMap(6);
3024 OSDMap NewGroupDataMap = new OSDMap(1); 3035 OSDMap NewGroupDataMap = new OSDMap(1);
3025 GroupDataMap.Add("GroupPowers", OSD.FromBinary(m.GroupPowers)); 3036 GroupDataMap.Add("GroupPowers", OSD.FromULong(m.GroupPowers));
3026 GroupDataMap.Add("AcceptNotices", OSD.FromBoolean(m.AcceptNotices)); 3037 GroupDataMap.Add("AcceptNotices", OSD.FromBoolean(m.AcceptNotices));
3027 GroupDataMap.Add("GroupTitle", OSD.FromString(m.GroupTitle)); 3038 GroupDataMap.Add("GroupTitle", OSD.FromString(m.GroupTitle));
3028 GroupDataMap.Add("GroupID", OSD.FromUUID(m.GroupID)); 3039 GroupDataMap.Add("GroupID", OSD.FromUUID(m.GroupID));
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 607219e..bb98dba 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -174,9 +174,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
174 position.Z = newPosZ; 174 position.Z = newPosZ;
175 } 175 }
176 176
177 // Only send this if the event queue is null 177 sp.ControllingClient.SendTeleportStart(teleportFlags);
178 if (eq == null)
179 sp.ControllingClient.SendTeleportLocationStart();
180 178
181 sp.ControllingClient.SendLocalTeleport(position, lookAt, teleportFlags); 179 sp.ControllingClient.SendLocalTeleport(position, lookAt, teleportFlags);
182 sp.Teleport(position); 180 sp.Teleport(position);
@@ -257,9 +255,6 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
257 255
258 ulong destinationHandle = finalDestination.RegionHandle; 256 ulong destinationHandle = finalDestination.RegionHandle;
259 257
260 if (eq == null)
261 sp.ControllingClient.SendTeleportLocationStart();
262
263 // Let's do DNS resolution only once in this process, please! 258 // Let's do DNS resolution only once in this process, please!
264 // This may be a costly operation. The reg.ExternalEndPoint field is not a passive field, 259 // This may be a costly operation. The reg.ExternalEndPoint field is not a passive field,
265 // it's actually doing a lot of work. 260 // it's actually doing a lot of work.
@@ -277,6 +272,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
277 return; 272 return;
278 } 273 }
279 274
275 sp.ControllingClient.SendTeleportStart(teleportFlags);
276
280 // the avatar.Close below will clear the child region list. We need this below for (possibly) 277 // the avatar.Close below will clear the child region list. We need this below for (possibly)
281 // closing the child agents, so save it here (we need a copy as it is Clear()-ed). 278 // closing the child agents, so save it here (we need a copy as it is Clear()-ed).
282 //List<ulong> childRegions = new List<ulong>(avatar.GetKnownRegionList()); 279 //List<ulong> childRegions = new List<ulong>(avatar.GetKnownRegionList());
@@ -320,6 +317,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
320 317
321 if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY)) 318 if (NeedsNewAgent(oldRegionX, newRegionX, oldRegionY, newRegionY))
322 { 319 {
320 //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Creating agent...");
321
323 #region IP Translation for NAT 322 #region IP Translation for NAT
324 IClientIPEndpoint ipepClient; 323 IClientIPEndpoint ipepClient;
325 if (sp.ClientView.TryGet(out ipepClient)) 324 if (sp.ClientView.TryGet(out ipepClient))
@@ -397,6 +396,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
397 agent.Position = position; 396 agent.Position = position;
398 SetCallbackURL(agent, sp.Scene.RegionInfo); 397 SetCallbackURL(agent, sp.Scene.RegionInfo);
399 398
399 //sp.ControllingClient.SendTeleportProgress(teleportFlags, "Updating agent...");
400
400 if (!UpdateAgent(reg, finalDestination, agent)) 401 if (!UpdateAgent(reg, finalDestination, agent))
401 { 402 {
402 // Region doesn't take it 403 // Region doesn't take it
diff --git a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs
index 53a2a7d..e9bcae3 100644
--- a/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs
+++ b/OpenSim/Region/CoreModules/Framework/EventQueue/EventQueueHelper.cs
@@ -158,7 +158,7 @@ namespace OpenSim.Region.CoreModules.Framework.EventQueue
158 info.Add("SimAccess", OSD.FromInteger(simAccess)); 158 info.Add("SimAccess", OSD.FromInteger(simAccess));
159 info.Add("SimIP", OSD.FromBinary(regionExternalEndPoint.Address.GetAddressBytes())); 159 info.Add("SimIP", OSD.FromBinary(regionExternalEndPoint.Address.GetAddressBytes()));
160 info.Add("SimPort", OSD.FromInteger(regionExternalEndPoint.Port)); 160 info.Add("SimPort", OSD.FromInteger(regionExternalEndPoint.Port));
161 info.Add("TeleportFlags", OSD.FromBinary(1L << 4)); // AgentManager.TeleportFlags.ViaLocation 161 info.Add("TeleportFlags", OSD.FromULong(1L << 4)); // AgentManager.TeleportFlags.ViaLocation
162 162
163 OSDArray infoArr = new OSDArray(); 163 OSDArray infoArr = new OSDArray();
164 infoArr.Add(info); 164 infoArr.Add(info);
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
index 940b535..51f2c41 100644
--- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs
@@ -343,7 +343,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
343 { 343 {
344 if (!s.IsChildAgent) 344 if (!s.IsChildAgent)
345 { 345 {
346 s.ControllingClient.SendTeleportLocationStart();
347 m_scene.TeleportClientHome(user, s.ControllingClient); 346 m_scene.TeleportClientHome(user, s.ControllingClient);
348 } 347 }
349 } 348 }
@@ -478,7 +477,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
478 ScenePresence s = m_scene.GetScenePresence(prey); 477 ScenePresence s = m_scene.GetScenePresence(prey);
479 if (s != null) 478 if (s != null)
480 { 479 {
481 s.ControllingClient.SendTeleportLocationStart();
482 m_scene.TeleportClientHome(prey, s.ControllingClient); 480 m_scene.TeleportClientHome(prey, s.ControllingClient);
483 } 481 }
484 } 482 }
@@ -498,7 +496,6 @@ namespace OpenSim.Region.CoreModules.World.Estate
498 // Also make sure they are actually in the region 496 // Also make sure they are actually in the region
499 if (p != null && !p.IsChildAgent) 497 if (p != null && !p.IsChildAgent)
500 { 498 {
501 p.ControllingClient.SendTeleportLocationStart();
502 m_scene.TeleportClientHome(p.UUID, p.ControllingClient); 499 m_scene.TeleportClientHome(p.UUID, p.ControllingClient);
503 } 500 }
504 } 501 }
diff --git a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
index f6e6163..268612e 100644
--- a/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
+++ b/OpenSim/Region/Examples/SimpleModule/MyNpcCharacter.cs
@@ -520,7 +520,11 @@ namespace OpenSim.Region.Examples.SimpleModule
520 { 520 {
521 } 521 }
522 522
523 public virtual void SendTeleportLocationStart() 523 public virtual void SendTeleportStart(uint flags)
524 {
525 }
526
527 public virtual void SendTeleportProgress(uint flags, string message)
524 { 528 {
525 } 529 }
526 530
diff --git a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
index ee7aa2da..6793ef6 100644
--- a/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
+++ b/OpenSim/Region/OptionalModules/Agent/InternetRelayClientView/Server/IRCClientView.cs
@@ -1035,11 +1035,15 @@ namespace OpenSim.Region.OptionalModules.Agent.InternetRelayClientView.Server
1035 1035
1036 } 1036 }
1037 1037
1038 public void SendTeleportLocationStart() 1038 public void SendTeleportStart(uint flags)
1039 { 1039 {
1040 1040
1041 } 1041 }
1042 1042
1043 public void SendTeleportProgress(uint flags, string message)
1044 {
1045 }
1046
1043 public void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance) 1047 public void SendMoneyBalance(UUID transaction, bool success, byte[] description, int balance)
1044 { 1048 {
1045 1049
diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
index 3f15b69..2969503 100644
--- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
+++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs
@@ -1129,7 +1129,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
1129 OSDMap NewGroupDataMap = new OSDMap(1); 1129 OSDMap NewGroupDataMap = new OSDMap(1);
1130 1130
1131 GroupDataMap.Add("GroupID", OSD.FromUUID(membership.GroupID)); 1131 GroupDataMap.Add("GroupID", OSD.FromUUID(membership.GroupID));
1132 GroupDataMap.Add("GroupPowers", OSD.FromBinary(membership.GroupPowers)); 1132 GroupDataMap.Add("GroupPowers", OSD.FromULong(membership.GroupPowers));
1133 GroupDataMap.Add("AcceptNotices", OSD.FromBoolean(membership.AcceptNotices)); 1133 GroupDataMap.Add("AcceptNotices", OSD.FromBoolean(membership.AcceptNotices));
1134 GroupDataMap.Add("GroupInsigniaID", OSD.FromUUID(membership.GroupPicture)); 1134 GroupDataMap.Add("GroupInsigniaID", OSD.FromUUID(membership.GroupPicture));
1135 GroupDataMap.Add("Contribution", OSD.FromInteger(membership.Contribution)); 1135 GroupDataMap.Add("Contribution", OSD.FromInteger(membership.Contribution));
diff --git a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
index 2e0450c..fae12b6 100644
--- a/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
+++ b/OpenSim/Region/OptionalModules/World/NPC/NPCAvatar.cs
@@ -611,7 +611,11 @@ namespace OpenSim.Region.OptionalModules.World.NPC
611 { 611 {
612 } 612 }
613 613
614 public virtual void SendTeleportLocationStart() 614 public virtual void SendTeleportStart(uint flags)
615 {
616 }
617
618 public virtual void SendTeleportProgress(uint flags, string message)
615 { 619 {
616 } 620 }
617 621
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 32e46ec..d38fe9f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -3505,6 +3505,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3505 { 3505 {
3506 m_host.AddScriptLPS(1); 3506 m_host.AddScriptLPS(1);
3507 UUID invItemID = InventorySelf(); 3507 UUID invItemID = InventorySelf();
3508 UUID targetID;
3509
3510 if (!UUID.TryParse(target, out targetID))
3511 return;
3508 3512
3509 TaskInventoryItem item; 3513 TaskInventoryItem item;
3510 lock (m_host.TaskInventory) 3514 lock (m_host.TaskInventory)
@@ -3524,7 +3528,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3524 if (sp != null) 3528 if (sp != null)
3525 client = sp.ControllingClient; 3529 client = sp.ControllingClient;
3526 3530
3527 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)target); 3531 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID);
3528 3532
3529 if (targetPart.ParentGroup.RootPart.AttachmentPoint != 0) 3533 if (targetPart.ParentGroup.RootPart.AttachmentPoint != 0)
3530 return; // Fail silently if attached 3534 return; // Fail silently if attached
@@ -4070,7 +4074,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4070 if (m_host.OwnerID == World.LandChannel.GetLandObject( 4074 if (m_host.OwnerID == World.LandChannel.GetLandObject(
4071 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) 4075 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID)
4072 { 4076 {
4073 presence.ControllingClient.SendTeleportLocationStart();
4074 World.TeleportClientHome(agentId, presence.ControllingClient); 4077 World.TeleportClientHome(agentId, presence.ControllingClient);
4075 } 4078 }
4076 } 4079 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 01b64eb..a529a94 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -664,7 +664,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
664 regionName = regInfo.RegionName; 664 regionName = regInfo.RegionName;
665 } 665 }
666 } 666 }
667 presence.ControllingClient.SendTeleportLocationStart();
668 World.RequestTeleportLocation(presence.ControllingClient, regionName, 667 World.RequestTeleportLocation(presence.ControllingClient, regionName,
669 new Vector3((float)position.x, (float)position.y, (float)position.z), 668 new Vector3((float)position.x, (float)position.y, (float)position.z),
670 new Vector3((float)lookat.x, (float)lookat.y, (float)lookat.z), (uint)TPFlags.ViaLocation); 669 new Vector3((float)lookat.x, (float)lookat.y, (float)lookat.z), (uint)TPFlags.ViaLocation);
@@ -696,7 +695,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
696 == World.LandChannel.GetLandObject( 695 == World.LandChannel.GetLandObject(
697 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) 696 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID)
698 { 697 {
699 presence.ControllingClient.SendTeleportLocationStart();
700 World.RequestTeleportLocation(presence.ControllingClient, regionHandle, 698 World.RequestTeleportLocation(presence.ControllingClient, regionHandle,
701 new Vector3((float)position.x, (float)position.y, (float)position.z), 699 new Vector3((float)position.x, (float)position.y, (float)position.z),
702 new Vector3((float)lookat.x, (float)lookat.y, (float)lookat.z), (uint)TPFlags.ViaLocation); 700 new Vector3((float)lookat.x, (float)lookat.y, (float)lookat.z), (uint)TPFlags.ViaLocation);