aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorUbitUmarov2017-11-12 12:00:03 +0000
committerUbitUmarov2017-11-12 12:00:03 +0000
commit6546ea6da642f9b4c8bb03ee7e43741352820bd9 (patch)
tree869853cd9845d4a9709f068efe00e78bad73c7cb /OpenSim/Region
parentmantis 8200: move changes in PGSQL from last commit to a new transaction (13) (diff)
downloadopensim-SC_OLD-6546ea6da642f9b4c8bb03ee7e43741352820bd9.zip
opensim-SC_OLD-6546ea6da642f9b4c8bb03ee7e43741352820bd9.tar.gz
opensim-SC_OLD-6546ea6da642f9b4c8bb03ee7e43741352820bd9.tar.bz2
opensim-SC_OLD-6546ea6da642f9b4c8bb03ee7e43741352820bd9.tar.xz
mantis 8253: don't let attachments delete remove controls from viewers on crossings.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs4
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs10
2 files changed, 4 insertions, 10 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
index 9b094f7..d51b9da 100644
--- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/EntityTransferModule.cs
@@ -1178,6 +1178,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1178 agent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY; 1178 agent.ControlFlags |= (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY;
1179 1179
1180 agent.SenderWantsToWaitForRoot = true; 1180 agent.SenderWantsToWaitForRoot = true;
1181
1181 //SetCallbackURL(agent, sp.Scene.RegionInfo); 1182 //SetCallbackURL(agent, sp.Scene.RegionInfo);
1182 1183
1183 // Reset the do not close flag. This must be done before the destination opens child connections (here 1184 // Reset the do not close flag. This must be done before the destination opens child connections (here
@@ -1877,7 +1878,8 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer
1877 if(childRegionsToClose != null) 1878 if(childRegionsToClose != null)
1878 agent.CloseChildAgents(childRegionsToClose); 1879 agent.CloseChildAgents(childRegionsToClose);
1879 1880
1880 // this may need the attachments 1881 if((agent.crossingFlags & 8) == 0)
1882 agent.ClearControls(); // don't let attachments delete (called in HasMovedAway) disturb taken controls on viewers
1881 1883
1882 agent.HasMovedAway((agent.crossingFlags & 8) == 0); 1884 agent.HasMovedAway((agent.crossingFlags & 8) == 0);
1883 1885
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 059a846..018c2e2 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -2288,13 +2288,6 @@ namespace OpenSim.Region.Framework.Scenes
2288 } 2288 }
2289 } 2289 }
2290 2290
2291 if(gotCrossUpdate)
2292 {
2293 if(IgnoredControls != ScriptControlled.CONTROL_ZERO)
2294 ControllingClient.SendTakeControls((int)IgnoredControls, false, true);
2295
2296 }
2297
2298 m_log.DebugFormat("[CompleteMovement] attachments: {0}ms", Util.EnvironmentTickCountSubtract(ts)); 2291 m_log.DebugFormat("[CompleteMovement] attachments: {0}ms", Util.EnvironmentTickCountSubtract(ts));
2299 if (openChildAgents) 2292 if (openChildAgents)
2300 { 2293 {
@@ -5685,7 +5678,6 @@ namespace OpenSim.Region.Framework.Scenes
5685 { 5678 {
5686 IgnoredControls = ScriptControlled.CONTROL_ZERO; 5679 IgnoredControls = ScriptControlled.CONTROL_ZERO;
5687 obj.eventControls = (ScriptControlled)controls; 5680 obj.eventControls = (ScriptControlled)controls;
5688 obj.ignoreControls = ScriptControlled.CONTROL_ZERO;
5689 } 5681 }
5690 5682
5691 lock (scriptedcontrols) 5683 lock (scriptedcontrols)
@@ -5801,7 +5793,7 @@ namespace OpenSim.Region.Framework.Scenes
5801 { 5793 {
5802 if (scriptedcontrols.TryGetValue(Script_item_UUID, out takecontrols)) 5794 if (scriptedcontrols.TryGetValue(Script_item_UUID, out takecontrols))
5803 { 5795 {
5804 ScriptControlled sctc = takecontrols.eventControls; 5796 ScriptControlled sctc = takecontrols.eventControls;
5805 5797
5806 ControllingClient.SendTakeControls((int)sctc, false, false); 5798 ControllingClient.SendTakeControls((int)sctc, false, false);
5807 ControllingClient.SendTakeControls((int)sctc, true, false); 5799 ControllingClient.SendTakeControls((int)sctc, true, false);