* Fixes control issue at the root of the boat turning problem.

0.6.1-post-fixes
Teravus Ovares 2008-12-08 07:18:30 +00:00
parent 7083be07b0
commit 354ffcf94e
1 changed files with 18 additions and 0 deletions

View File

@ -1342,6 +1342,18 @@ namespace OpenSim.Region.Environment.Scenes
SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID);
if (part != null) if (part != null)
{ {
TaskInventoryDictionary taskIDict = part.TaskInventory;
if (taskIDict != null)
{
lock (taskIDict)
{
foreach (UUID taskID in taskIDict.Keys)
{
UnRegisterControlEventsToScript(LocalId, taskID);
}
}
}
// Reset sit target. // Reset sit target.
if (part.GetAvatarOnSitTarget() == UUID) if (part.GetAvatarOnSitTarget() == UUID)
part.SetAvatarOnSitTarget(UUID.Zero); part.SetAvatarOnSitTarget(UUID.Zero);
@ -3212,6 +3224,11 @@ namespace OpenSim.Region.Environment.Scenes
{ {
if (scriptedcontrols.ContainsKey(Script_item_UUID)) if (scriptedcontrols.ContainsKey(Script_item_UUID))
{ {
ScriptControllers takecontrolls = scriptedcontrols[Script_item_UUID];
ScriptControlled sctc = takecontrolls.eventControls;
ControllingClient.SendTakeControls((int)sctc, false, false);
ControllingClient.SendTakeControls((int)sctc, true, false);
scriptedcontrols.Remove(Script_item_UUID); scriptedcontrols.Remove(Script_item_UUID);
IgnoredControls = ScriptControlled.CONTROL_ZERO; IgnoredControls = ScriptControlled.CONTROL_ZERO;
foreach (ScriptControllers scData in scriptedcontrols.Values) foreach (ScriptControllers scData in scriptedcontrols.Values)
@ -3219,6 +3236,7 @@ namespace OpenSim.Region.Environment.Scenes
IgnoredControls |= scData.ignoreControls; IgnoredControls |= scData.ignoreControls;
} }
} }
} }
} }