aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorMelanie Thielker2008-09-17 22:00:56 +0000
committerMelanie Thielker2008-09-17 22:00:56 +0000
commit7e8320bada32b642058487b84af2c8355fc18292 (patch)
treee52c44d7189d9689b0d621af3f73d2b70f268703 /OpenSim/Region/Environment
parentAdding currentLookAt to useragents table in SQLite. This complements the (diff)
downloadopensim-SC_OLD-7e8320bada32b642058487b84af2c8355fc18292.zip
opensim-SC_OLD-7e8320bada32b642058487b84af2c8355fc18292.tar.gz
opensim-SC_OLD-7e8320bada32b642058487b84af2c8355fc18292.tar.bz2
opensim-SC_OLD-7e8320bada32b642058487b84af2c8355fc18292.tar.xz
Kan-Ed fix series. Fix llTakeControls to behave as documented.
XEngine fixes: prevent queue overruns, prevent spamming when no key is down. Release controls when conflicting permissions are requested or permissions are refused later. Release when prim or script are deleted. Fixes Scene script instance deletion semantics.
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.Inventory.cs7
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs2
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs2
3 files changed, 7 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
index cdd6943..7836937 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs
@@ -879,12 +879,13 @@ namespace OpenSim.Region.Environment.Scenes
879 SceneObjectGroup group = part.ParentGroup; 879 SceneObjectGroup group = part.ParentGroup;
880 if (group != null) 880 if (group != null)
881 { 881 {
882 int type = group.RemoveInventoryItem(localID, itemID); 882 TaskInventoryItem item = group.GetInventoryItem(localID, itemID);
883 part.GetProperties(remoteClient); 883 if (item.Type == 10)
884 if (type == 10)
885 { 884 {
886 EventManager.TriggerRemoveScript(localID, itemID); 885 EventManager.TriggerRemoveScript(localID, itemID);
887 } 886 }
887 group.RemoveInventoryItem(localID, itemID);
888 part.GetProperties(remoteClient);
888 } 889 }
889 else 890 else
890 { 891 {
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 78c8c62..8ee2179 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1742,6 +1742,8 @@ namespace OpenSim.Region.Environment.Scenes
1742 { 1742 {
1743 //SceneObjectPart rootPart = group.GetChildPart(group.UUID); 1743 //SceneObjectPart rootPart = group.GetChildPart(group.UUID);
1744 1744
1745 group.RemoveScriptInstances();
1746
1745 foreach (SceneObjectPart part in group.Children.Values) 1747 foreach (SceneObjectPart part in group.Children.Values)
1746 { 1748 {
1747 if (part.PhysActor != null) 1749 if (part.PhysActor != null)
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 514f6d8..5670492 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -958,7 +958,7 @@ namespace OpenSim.Region.Environment.Scenes
958 { 958 {
959 foreach (SceneObjectPart part in m_parts.Values) 959 foreach (SceneObjectPart part in m_parts.Values)
960 { 960 {
961 part.RemoveScriptInstances(); 961// part.RemoveScriptInstances();
962 962
963 List<ScenePresence> avatars = Scene.GetScenePresences(); 963 List<ScenePresence> avatars = Scene.GetScenePresences();
964 for (int i = 0; i < avatars.Count; i++) 964 for (int i = 0; i < avatars.Count; i++)