aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs1
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs15
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectPart.cs7
3 files changed, 21 insertions, 2 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 4f32774..6b891fd 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -1003,6 +1003,7 @@ namespace OpenSim.Region.Environment.Scenes
1003 { 1003 {
1004 AddEntityFromStorage(group); 1004 AddEntityFromStorage(group);
1005 SceneObjectPart rootPart = group.GetChildPart(group.UUID); 1005 SceneObjectPart rootPart = group.GetChildPart(group.UUID);
1006 rootPart.ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted;
1006 rootPart.TrimPermissions(); 1007 rootPart.TrimPermissions();
1007 1008
1008 group.ApplyPhysics(m_physicalPrim); 1009 group.ApplyPhysics(m_physicalPrim);
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
index e74b8ed..94bf10e 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
@@ -151,12 +151,15 @@ namespace OpenSim.Region.Environment.Scenes
151// "[PRIMINVENTORY]: " + 151// "[PRIMINVENTORY]: " +
152// "Starting script {0}, {1} in prim {2}, {3}", 152// "Starting script {0}, {1} in prim {2}, {3}",
153// item.Name, item.ItemID, Name, UUID)); 153// item.Name, item.ItemID, Name, UUID));
154 AddFlag(LLObject.ObjectFlags.Scripted);
155
154 if (!((m_parentGroup.Scene.RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts)) 156 if (!((m_parentGroup.Scene.RegionInfo.EstateSettings.regionFlags & Simulator.RegionFlags.SkipScripts) == Simulator.RegionFlags.SkipScripts))
155 { 157 {
156 AssetBase rezAsset = m_parentGroup.Scene.AssetCache.GetAsset(item.AssetID, false); 158 AssetBase rezAsset = m_parentGroup.Scene.AssetCache.GetAsset(item.AssetID, false);
157 159
158 if (rezAsset != null) 160 if (rezAsset != null)
159 { 161 {
162
160 string script = Helpers.FieldToUTF8String(rezAsset.Data); 163 string script = Helpers.FieldToUTF8String(rezAsset.Data);
161 m_parentGroup.Scene.EventManager.TriggerRezScript(LocalID, item.ItemID, script); 164 m_parentGroup.Scene.EventManager.TriggerRezScript(LocalID, item.ItemID, script);
162 m_parentGroup.AddActiveScriptCount(1); 165 m_parentGroup.AddActiveScriptCount(1);
@@ -169,6 +172,7 @@ namespace OpenSim.Region.Environment.Scenes
169 item.Name, item.ItemID, item.AssetID)); 172 item.Name, item.ItemID, item.AssetID));
170 } 173 }
171 } 174 }
175 ScheduleFullUpdate();
172 } 176 }
173 177
174 /// <summary> 178 /// <summary>
@@ -202,10 +206,18 @@ namespace OpenSim.Region.Environment.Scenes
202 /// <param name="itemId"></param> 206 /// <param name="itemId"></param>
203 public void StopScript(LLUUID itemId) 207 public void StopScript(LLUUID itemId)
204 { 208 {
209
210
205 if (m_taskInventory.ContainsKey(itemId)) 211 if (m_taskInventory.ContainsKey(itemId))
206 { 212 {
213
207 m_parentGroup.Scene.EventManager.TriggerRemoveScript(LocalID, itemId); 214 m_parentGroup.Scene.EventManager.TriggerRemoveScript(LocalID, itemId);
208 m_parentGroup.AddActiveScriptCount(-1); 215 m_parentGroup.AddActiveScriptCount(-1);
216
217
218
219
220
209 } 221 }
210 else 222 else
211 { 223 {
@@ -213,7 +225,8 @@ namespace OpenSim.Region.Environment.Scenes
213 "[PRIMINVENTORY]: " + 225 "[PRIMINVENTORY]: " +
214 "Couldn't stop script with ID {0} since it couldn't be found for prim {1}, {2}", 226 "Couldn't stop script with ID {0} since it couldn't be found for prim {1}, {2}",
215 itemId, Name, UUID)); 227 itemId, Name, UUID));
216 } 228 }
229
217 } 230 }
218 231
219 /// <summary> 232 /// <summary>
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
index 4456fce..0a9d21a 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs
@@ -670,6 +670,7 @@ namespace OpenSim.Region.Environment.Scenes
670 LLObject.ObjectFlags.AllowInventoryDrop | 670 LLObject.ObjectFlags.AllowInventoryDrop |
671 LLObject.ObjectFlags.CreateSelected; 671 LLObject.ObjectFlags.CreateSelected;
672 672
673
673 TrimPermissions(); 674 TrimPermissions();
674 675
675 ScheduleFullUpdate(); 676 ScheduleFullUpdate();
@@ -707,7 +708,11 @@ namespace OpenSim.Region.Environment.Scenes
707 OffsetPosition = position; 708 OffsetPosition = position;
708 RotationOffset = rotation; 709 RotationOffset = rotation;
709 ObjectFlags = flags; 710 ObjectFlags = flags;
710 711
712 // Since we don't store script state, this is only a 'temporary' objectflag now
713 // If the object is scripted, the script will get loaded and this will be set again
714 ObjectFlags &= ~(uint)LLObject.ObjectFlags.Scripted;
715
711 TrimPermissions(); 716 TrimPermissions();
712 // ApplyPhysics(); 717 // ApplyPhysics();
713 718