aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs45
1 files changed, 35 insertions, 10 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 05e6d27..eed8878 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -1476,6 +1476,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
1476 money.MoneyData.TransactionSuccess = success; 1476 money.MoneyData.TransactionSuccess = success;
1477 money.MoneyData.Description = description; 1477 money.MoneyData.Description = description;
1478 money.MoneyData.MoneyBalance = balance; 1478 money.MoneyData.MoneyBalance = balance;
1479 money.TransactionInfo.ItemDescription = Util.StringToBytes256("NONE");
1479 OutPacket(money, ThrottleOutPacketType.Task); 1480 OutPacket(money, ThrottleOutPacketType.Task);
1480 } 1481 }
1481 1482
@@ -2231,7 +2232,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2231 OutPacket(loadURL, ThrottleOutPacketType.Task); 2232 OutPacket(loadURL, ThrottleOutPacketType.Task);
2232 } 2233 }
2233 2234
2234 public void SendDialog(string objectname, UUID objectID, string ownerFirstName, string ownerLastName, string msg, UUID textureID, int ch, string[] buttonlabels) 2235 public void SendDialog(
2236 string objectname, UUID objectID, UUID ownerID, string ownerFirstName, string ownerLastName, string msg,
2237 UUID textureID, int ch, string[] buttonlabels)
2235 { 2238 {
2236 ScriptDialogPacket dialog = (ScriptDialogPacket)PacketPool.Instance.GetPacket(PacketType.ScriptDialog); 2239 ScriptDialogPacket dialog = (ScriptDialogPacket)PacketPool.Instance.GetPacket(PacketType.ScriptDialog);
2237 dialog.Data.ObjectID = objectID; 2240 dialog.Data.ObjectID = objectID;
@@ -2249,6 +2252,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2249 buttons[i].ButtonLabel = Util.StringToBytes256(buttonlabels[i]); 2252 buttons[i].ButtonLabel = Util.StringToBytes256(buttonlabels[i]);
2250 } 2253 }
2251 dialog.Buttons = buttons; 2254 dialog.Buttons = buttons;
2255
2256 dialog.OwnerData = new ScriptDialogPacket.OwnerDataBlock[1];
2257 dialog.OwnerData[0] = new ScriptDialogPacket.OwnerDataBlock();
2258 dialog.OwnerData[0].OwnerID = ownerID;
2259
2252 OutPacket(dialog, ThrottleOutPacketType.Task); 2260 OutPacket(dialog, ThrottleOutPacketType.Task);
2253 } 2261 }
2254 2262
@@ -2320,8 +2328,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2320 OrbitalPosition = (OrbitalPosition - m_sunPainDaHalfOrbitalCutoff) * 0.6666666667f + m_sunPainDaHalfOrbitalCutoff; 2328 OrbitalPosition = (OrbitalPosition - m_sunPainDaHalfOrbitalCutoff) * 0.6666666667f + m_sunPainDaHalfOrbitalCutoff;
2321 } 2329 }
2322 2330
2323
2324
2325 SimulatorViewerTimeMessagePacket viewertime = (SimulatorViewerTimeMessagePacket)PacketPool.Instance.GetPacket(PacketType.SimulatorViewerTimeMessage); 2331 SimulatorViewerTimeMessagePacket viewertime = (SimulatorViewerTimeMessagePacket)PacketPool.Instance.GetPacket(PacketType.SimulatorViewerTimeMessage);
2326 viewertime.TimeInfo.SunDirection = Position; 2332 viewertime.TimeInfo.SunDirection = Position;
2327 viewertime.TimeInfo.SunAngVelocity = Velocity; 2333 viewertime.TimeInfo.SunAngVelocity = Velocity;
@@ -8358,16 +8364,25 @@ namespace OpenSim.Region.ClientStack.LindenUDP
8358 AssetLandmark lm; 8364 AssetLandmark lm;
8359 if (lmid != UUID.Zero) 8365 if (lmid != UUID.Zero)
8360 { 8366 {
8367
8361 //AssetBase lma = m_assetCache.GetAsset(lmid, false); 8368 //AssetBase lma = m_assetCache.GetAsset(lmid, false);
8362 AssetBase lma = m_assetService.Get(lmid.ToString()); 8369 AssetBase lma = m_assetService.Get(lmid.ToString());
8363 8370
8364 if (lma == null) 8371 if (lma == null)
8365 { 8372 {
8366 // Failed to find landmark 8373 // Failed to find landmark
8367 TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel); 8374
8368 tpCancel.Info.SessionID = tpReq.Info.SessionID; 8375 // Let's try to search in the user's home asset server
8369 tpCancel.Info.AgentID = tpReq.Info.AgentID; 8376 lma = FindAssetInUserAssetServer(lmid.ToString());
8370 OutPacket(tpCancel, ThrottleOutPacketType.Task); 8377
8378 if (lma == null)
8379 {
8380 // Really doesn't exist
8381 TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel);
8382 tpCancel.Info.SessionID = tpReq.Info.SessionID;
8383 tpCancel.Info.AgentID = tpReq.Info.AgentID;
8384 OutPacket(tpCancel, ThrottleOutPacketType.Task);
8385 }
8371 } 8386 }
8372 8387
8373 try 8388 try
@@ -8398,13 +8413,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
8398 TeleportLandmarkRequest handlerTeleportLandmarkRequest = OnTeleportLandmarkRequest; 8413 TeleportLandmarkRequest handlerTeleportLandmarkRequest = OnTeleportLandmarkRequest;
8399 if (handlerTeleportLandmarkRequest != null) 8414 if (handlerTeleportLandmarkRequest != null)
8400 { 8415 {
8401 handlerTeleportLandmarkRequest(this, lm.RegionID, lm.Position); 8416 handlerTeleportLandmarkRequest(this, lm);
8402 } 8417 }
8403 else 8418 else
8404 { 8419 {
8405 //no event handler so cancel request 8420 //no event handler so cancel request
8406
8407
8408 TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel); 8421 TeleportCancelPacket tpCancel = (TeleportCancelPacket)PacketPool.Instance.GetPacket(PacketType.TeleportCancel);
8409 tpCancel.Info.AgentID = tpReq.Info.AgentID; 8422 tpCancel.Info.AgentID = tpReq.Info.AgentID;
8410 tpCancel.Info.SessionID = tpReq.Info.SessionID; 8423 tpCancel.Info.SessionID = tpReq.Info.SessionID;
@@ -8414,6 +8427,18 @@ namespace OpenSim.Region.ClientStack.LindenUDP
8414 return true; 8427 return true;
8415 } 8428 }
8416 8429
8430 private AssetBase FindAssetInUserAssetServer(string id)
8431 {
8432 AgentCircuitData aCircuit = ((Scene)Scene).AuthenticateHandler.GetAgentCircuitData(CircuitCode);
8433 if (aCircuit != null && aCircuit.ServiceURLs != null && aCircuit.ServiceURLs.ContainsKey("AssetServerURI"))
8434 {
8435 string assetServer = aCircuit.ServiceURLs["AssetServerURI"].ToString();
8436 return ((Scene)Scene).AssetService.Get(assetServer + "/" + id);
8437 }
8438
8439 return null;
8440 }
8441
8417 private bool HandleTeleportLocationRequest(IClientAPI sender, Packet Pack) 8442 private bool HandleTeleportLocationRequest(IClientAPI sender, Packet Pack)
8418 { 8443 {
8419 TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack; 8444 TeleportLocationRequestPacket tpLocReq = (TeleportLocationRequestPacket)Pack;