diff options
author | Teravus Ovares | 2008-12-08 07:18:30 +0000 |
---|---|---|
committer | Teravus Ovares | 2008-12-08 07:18:30 +0000 |
commit | 354ffcf94ecc909af082d5d5a5189f8190b5aa77 (patch) | |
tree | c788cd85e0667c8e851356936766d9174225908a /OpenSim/Region/Environment | |
parent | Allow empty statements in LSL (; followed by ;). Fixes Mantis#2320 (diff) | |
download | opensim-SC-354ffcf94ecc909af082d5d5a5189f8190b5aa77.zip opensim-SC-354ffcf94ecc909af082d5d5a5189f8190b5aa77.tar.gz opensim-SC-354ffcf94ecc909af082d5d5a5189f8190b5aa77.tar.bz2 opensim-SC-354ffcf94ecc909af082d5d5a5189f8190b5aa77.tar.xz |
* Fixes control issue at the root of the boat turning problem.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index d363c6e..30063eb 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -1342,6 +1342,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
1342 | SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); | 1342 | SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); |
1343 | if (part != null) | 1343 | if (part != null) |
1344 | { | 1344 | { |
1345 | TaskInventoryDictionary taskIDict = part.TaskInventory; | ||
1346 | if (taskIDict != null) | ||
1347 | { | ||
1348 | lock (taskIDict) | ||
1349 | { | ||
1350 | foreach (UUID taskID in taskIDict.Keys) | ||
1351 | { | ||
1352 | UnRegisterControlEventsToScript(LocalId, taskID); | ||
1353 | } | ||
1354 | } | ||
1355 | |||
1356 | } | ||
1345 | // Reset sit target. | 1357 | // Reset sit target. |
1346 | if (part.GetAvatarOnSitTarget() == UUID) | 1358 | if (part.GetAvatarOnSitTarget() == UUID) |
1347 | part.SetAvatarOnSitTarget(UUID.Zero); | 1359 | part.SetAvatarOnSitTarget(UUID.Zero); |
@@ -3212,6 +3224,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
3212 | { | 3224 | { |
3213 | if (scriptedcontrols.ContainsKey(Script_item_UUID)) | 3225 | if (scriptedcontrols.ContainsKey(Script_item_UUID)) |
3214 | { | 3226 | { |
3227 | ScriptControllers takecontrolls = scriptedcontrols[Script_item_UUID]; | ||
3228 | ScriptControlled sctc = takecontrolls.eventControls; | ||
3229 | ControllingClient.SendTakeControls((int)sctc, false, false); | ||
3230 | ControllingClient.SendTakeControls((int)sctc, true, false); | ||
3231 | |||
3215 | scriptedcontrols.Remove(Script_item_UUID); | 3232 | scriptedcontrols.Remove(Script_item_UUID); |
3216 | IgnoredControls = ScriptControlled.CONTROL_ZERO; | 3233 | IgnoredControls = ScriptControlled.CONTROL_ZERO; |
3217 | foreach (ScriptControllers scData in scriptedcontrols.Values) | 3234 | foreach (ScriptControllers scData in scriptedcontrols.Values) |
@@ -3219,6 +3236,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
3219 | IgnoredControls |= scData.ignoreControls; | 3236 | IgnoredControls |= scData.ignoreControls; |
3220 | } | 3237 | } |
3221 | } | 3238 | } |
3239 | |||
3222 | } | 3240 | } |
3223 | } | 3241 | } |
3224 | 3242 | ||