aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs36
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs11
2 files changed, 24 insertions, 23 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index eeaec42..5269bf9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -233,7 +233,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
233 protected int m_maxHitsPerPrimInCastRay = 16; 233 protected int m_maxHitsPerPrimInCastRay = 16;
234 protected int m_maxHitsPerObjectInCastRay = 16; 234 protected int m_maxHitsPerObjectInCastRay = 16;
235 protected bool m_detectExitsInCastRay = false; 235 protected bool m_detectExitsInCastRay = false;
236 protected bool m_filterPartsInCastRay = false;
237 protected bool m_doAttachmentsInCastRay = false; 236 protected bool m_doAttachmentsInCastRay = false;
238 protected int m_msThrottleInCastRay = 200; 237 protected int m_msThrottleInCastRay = 200;
239 protected int m_msPerRegionInCastRay = 40; 238 protected int m_msPerRegionInCastRay = 40;
@@ -391,7 +390,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
391 m_maxHitsPerPrimInCastRay = lslConfig.GetInt("MaxHitsPerPrimInLlCastRay", m_maxHitsPerPrimInCastRay); 390 m_maxHitsPerPrimInCastRay = lslConfig.GetInt("MaxHitsPerPrimInLlCastRay", m_maxHitsPerPrimInCastRay);
392 m_maxHitsPerObjectInCastRay = lslConfig.GetInt("MaxHitsPerObjectInLlCastRay", m_maxHitsPerObjectInCastRay); 391 m_maxHitsPerObjectInCastRay = lslConfig.GetInt("MaxHitsPerObjectInLlCastRay", m_maxHitsPerObjectInCastRay);
393 m_detectExitsInCastRay = lslConfig.GetBoolean("DetectExitHitsInLlCastRay", m_detectExitsInCastRay); 392 m_detectExitsInCastRay = lslConfig.GetBoolean("DetectExitHitsInLlCastRay", m_detectExitsInCastRay);
394 m_filterPartsInCastRay = lslConfig.GetBoolean("FilterPartsInLlCastRay", m_filterPartsInCastRay);
395 m_doAttachmentsInCastRay = lslConfig.GetBoolean("DoAttachmentsInLlCastRay", m_doAttachmentsInCastRay); 393 m_doAttachmentsInCastRay = lslConfig.GetBoolean("DoAttachmentsInLlCastRay", m_doAttachmentsInCastRay);
396 m_msThrottleInCastRay = lslConfig.GetInt("ThrottleTimeInMsInLlCastRay", m_msThrottleInCastRay); 394 m_msThrottleInCastRay = lslConfig.GetInt("ThrottleTimeInMsInLlCastRay", m_msThrottleInCastRay);
397 m_msPerRegionInCastRay = lslConfig.GetInt("AvailableTimeInMsPerRegionInLlCastRay", m_msPerRegionInCastRay); 395 m_msPerRegionInCastRay = lslConfig.GetInt("AvailableTimeInMsPerRegionInLlCastRay", m_msPerRegionInCastRay);
@@ -15063,8 +15061,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
15063 return; 15061 return;
15064 if (isPhantom && notdetectPhantom) 15062 if (isPhantom && notdetectPhantom)
15065 return; 15063 return;
15066 if (m_filterPartsInCastRay)
15067 return;
15068 if (isAttachment && !m_doAttachmentsInCastRay) 15064 if (isAttachment && !m_doAttachmentsInCastRay)
15069 return; 15065 return;
15070 15066
@@ -15072,25 +15068,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
15072 // Iterate over all prims/parts in object/group 15068 // Iterate over all prims/parts in object/group
15073 foreach(SceneObjectPart part in group.Parts) 15069 foreach(SceneObjectPart part in group.Parts)
15074 { 15070 {
15075 // Check part filters if configured 15071 // ignore PhysicsShapeType.None as physics engines do
15076 if (m_filterPartsInCastRay) 15072 // or we will get into trouble in future
15077 { 15073 if(part.PhysicsShapeType == (byte)PhysicsShapeType.None)
15078 // ignore PhysicsShapeType.None as physics engines do 15074 continue;
15079 // or we will get into trouble in future 15075 isPhysical = (part.PhysActor != null && part.PhysActor.IsPhysical);
15080 if(part.PhysicsShapeType == (byte)PhysicsShapeType.None) 15076 isNonphysical = !isPhysical;
15081 continue; 15077 isPhantom = ((part.Flags & PrimFlags.Phantom) != 0) ||
15082 isPhysical = (part.PhysActor != null && part.PhysActor.IsPhysical); 15078 (part.VolumeDetectActive);
15083 isNonphysical = !isPhysical;
15084 isPhantom = ((part.Flags & PrimFlags.Phantom) != 0) ||
15085 (part.VolumeDetectActive);
15086 15079
15087 if (isPhysical && rejectPhysical) 15080 if (isPhysical && rejectPhysical)
15088 continue; 15081 continue;
15089 if (isNonphysical && rejectNonphysical) 15082 if (isNonphysical && rejectNonphysical)
15090 continue; 15083 continue;
15091 if (isPhantom && notdetectPhantom) 15084 if (isPhantom && notdetectPhantom)
15092 continue; 15085 continue;
15093 }
15094 15086
15095 // Parse prim/part and project ray if passed filters 15087 // Parse prim/part and project ray if passed filters
15096 Vector3 scalePart = part.Scale; 15088 Vector3 scalePart = part.Scale;
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index c83682e..5638f01 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -310,7 +310,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
310 foreach (string id in ids) 310 foreach (string id in ids)
311 { 311 {
312 string current = id.Trim(); 312 string current = id.Trim();
313 if (current.ToUpper() == "PARCEL_GROUP_MEMBER" || current.ToUpper() == "PARCEL_OWNER" || current.ToUpper() == "ESTATE_MANAGER" || current.ToUpper() == "ESTATE_OWNER") 313 if (current.ToUpper() == "PARCEL_GROUP_MEMBER" || current.ToUpper() == "PARCEL_OWNER" || current.ToUpper() == "ESTATE_MANAGER" || current.ToUpper() == "ESTATE_OWNER" || current.ToUpper() == "GRID_GOD")
314 { 314 {
315 if (!perms.AllowedOwnerClasses.Contains(current)) 315 if (!perms.AllowedOwnerClasses.Contains(current))
316 perms.AllowedOwnerClasses.Add(current.ToUpper()); 316 perms.AllowedOwnerClasses.Add(current.ToUpper());
@@ -415,6 +415,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
415 } 415 }
416 } 416 }
417 417
418 //Only gods may use the function
419 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GRID_GOD"))
420 {
421 if (World.Permissions.IsGridGod(ownerID))
422 {
423 return String.Empty;
424 }
425 }
426
418 if (!m_FunctionPerms[function].AllowedCreators.Contains(m_item.CreatorID)) 427 if (!m_FunctionPerms[function].AllowedCreators.Contains(m_item.CreatorID))
419 return( 428 return(
420 String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.", 429 String.Format("{0} permission denied. Script creator is not in the list of users allowed to execute this function and prim owner also has no permission.",