diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 45 |
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; |