diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 33 |
2 files changed, 37 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 0698411..13e4b56 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -4140,6 +4140,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
4140 | case 16: | 4140 | case 16: |
4141 | _nextOwnerMask = ApplyMask(_nextOwnerMask, set, mask) & | 4141 | _nextOwnerMask = ApplyMask(_nextOwnerMask, set, mask) & |
4142 | baseMask; | 4142 | baseMask; |
4143 | // Prevent the client from creating no mod, no copy | ||
4144 | // objects | ||
4145 | if ((_nextOwnerMask & (uint)PermissionMask.Copy) == 0) | ||
4146 | _nextOwnerMask |= (uint)PermissionMask.Transfer; | ||
4143 | break; | 4147 | break; |
4144 | } | 4148 | } |
4145 | SendFullUpdateToAllClients(); | 4149 | SendFullUpdateToAllClients(); |
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 | { |