aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 7f98877..1e8ce22 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -3056,6 +3056,18 @@ namespace OpenSim.Region.Framework.Scenes
3056 cAgent.Attachments = attachs; 3056 cAgent.Attachments = attachs;
3057 } 3057 }
3058 3058
3059 lock (scriptedcontrols)
3060 {
3061 ControllerData[] controls = new ControllerData[scriptedcontrols.Count];
3062 int i = 0;
3063
3064 foreach (ScriptControllers c in scriptedcontrols.Values)
3065 {
3066 controls[i++] = new ControllerData(c.itemID, (uint)c.ignoreControls, (uint)c.eventControls);
3067 }
3068 cAgent.Controllers = controls;
3069 }
3070
3059 // Animations 3071 // Animations
3060 try 3072 try
3061 { 3073 {
@@ -3136,6 +3148,27 @@ namespace OpenSim.Region.Framework.Scenes
3136 } 3148 }
3137 catch { } 3149 catch { }
3138 3150
3151 try
3152 {
3153 lock (scriptedcontrols)
3154 {
3155 if (cAgent.Controllers != null)
3156 {
3157 scriptedcontrols.Clear();
3158
3159 foreach (ControllerData c in cAgent.Controllers)
3160 {
3161 ScriptControllers sc = new ScriptControllers();
3162 sc.itemID = c.ItemID;
3163 sc.ignoreControls = (ScriptControlled)c.IgnoreControls;
3164 sc.eventControls = (ScriptControlled)c.EventControls;
3165
3166 scriptedcontrols[sc.itemID] = sc;
3167 }
3168 }
3169 }
3170 }
3171 catch { }
3139 // Animations 3172 // Animations
3140 try 3173 try
3141 { 3174 {