aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMelanie2011-05-22 21:01:31 +0200
committerMelanie2011-05-22 21:01:31 +0200
commit9c1f7995820d9d480450774575ac469ff5113b0d (patch)
treecc088f90cc3f2c29d6500d71edee86e69489976f
parentMerge branch 'careminster-presence-refactor' of ssh://3dhosting.de/var/git/ca... (diff)
downloadopensim-SC_OLD-9c1f7995820d9d480450774575ac469ff5113b0d.zip
opensim-SC_OLD-9c1f7995820d9d480450774575ac469ff5113b0d.tar.gz
opensim-SC_OLD-9c1f7995820d9d480450774575ac469ff5113b0d.tar.bz2
opensim-SC_OLD-9c1f7995820d9d480450774575ac469ff5113b0d.tar.xz
Implement llGodLikeRezObject and llGetUsedMemory
-rw-r--r--OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs3
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs56
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs1
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs5
4 files changed, 61 insertions, 4 deletions
diff --git a/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs
index 88f9658..a622745 100644
--- a/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs
+++ b/OpenSim/Region/Physics/ChOdePlugin/OdePlugin.cs
@@ -1553,7 +1553,8 @@ namespace OpenSim.Region.Physics.OdePlugin
1553 removeprims = new List<OdePrim>(); 1553 removeprims = new List<OdePrim>();
1554 } 1554 }
1555 removeprims.Add(chr); 1555 removeprims.Add(chr);
1556 m_log.Debug("[PHYSICS]: unable to collide test active prim against space. The space was zero, the geom was zero or it was in the process of being removed. Removed it from the active prim list. This needs to be fixed!"); 1556 /// Commented this because it triggers on every bullet
1557 //m_log.Debug("[PHYSICS]: unable to collide test active prim against space. The space was zero, the geom was zero or it was in the process of being removed. Removed it from the active prim list. This needs to be fixed!");
1557 } 1558 }
1558 } 1559 }
1559 } 1560 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 64eb6d0..c87f8ba 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -46,6 +46,7 @@ using OpenSim.Region.CoreModules.World.Land;
46using OpenSim.Region.CoreModules.World.Terrain; 46using OpenSim.Region.CoreModules.World.Terrain;
47using OpenSim.Region.Framework.Interfaces; 47using OpenSim.Region.Framework.Interfaces;
48using OpenSim.Region.Framework.Scenes; 48using OpenSim.Region.Framework.Scenes;
49using OpenSim.Region.Framework.Scenes.Serialization;
49using OpenSim.Region.Framework.Scenes.Animation; 50using OpenSim.Region.Framework.Scenes.Animation;
50using OpenSim.Region.Physics.Manager; 51using OpenSim.Region.Physics.Manager;
51using OpenSim.Region.ScriptEngine.Shared; 52using OpenSim.Region.ScriptEngine.Shared;
@@ -11010,11 +11011,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
11010 11011
11011 } 11012 }
11012 11013
11013 public virtual void llGetUsedMemory() 11014 public virtual LSL_Integer llGetUsedMemory()
11014 { 11015 {
11015 m_host.AddScriptLPS(1); 11016 m_host.AddScriptLPS(1);
11016 NotImplemented("llGetUsedMemory"); 11017 NotImplemented("llGetUsedMemory");
11017 11018 return 0;
11018 } 11019 }
11019 11020
11020 public void llRegionSayTo( LSL_Key target, LSL_Integer channel, LSL_String msg ) 11021 public void llRegionSayTo( LSL_Key target, LSL_Integer channel, LSL_String msg )
@@ -11045,7 +11046,56 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
11045 public void llGodLikeRezObject(string inventory, LSL_Vector pos) 11046 public void llGodLikeRezObject(string inventory, LSL_Vector pos)
11046 { 11047 {
11047 m_host.AddScriptLPS(1); 11048 m_host.AddScriptLPS(1);
11048 NotImplemented("llGodLikeRezObject"); 11049
11050 if (!World.Permissions.IsGod(m_host.OwnerID))
11051 NotImplemented("llGodLikeRezObject");
11052
11053 AssetBase rezAsset = World.AssetService.Get(inventory);
11054 if (rezAsset == null)
11055 {
11056 llSay(0, "Asset not found");
11057 return;
11058 }
11059
11060 SceneObjectGroup group = null;
11061
11062 try
11063 {
11064 string xmlData = Utils.BytesToString(rezAsset.Data);
11065 group = SceneObjectSerializer.FromOriginalXmlFormat(xmlData);
11066 }
11067 catch
11068 {
11069 llSay(0, "Asset not found");
11070 return;
11071 }
11072
11073 if (group == null)
11074 {
11075 llSay(0, "Asset not found");
11076 return;
11077 }
11078
11079 group.RootPart.AttachPoint = group.RootPart.Shape.State;
11080 group.RootPart.AttachOffset = group.AbsolutePosition;
11081
11082 group.ResetIDs();
11083
11084 Vector3 llpos = new Vector3((float)pos.x, (float)pos.y, (float)pos.z);
11085 World.AddNewSceneObject(group, true, llpos, Quaternion.Identity, Vector3.Zero);
11086 group.CreateScriptInstances(0, true, World.DefaultScriptEngine, 3);
11087 group.ScheduleGroupForFullUpdate();
11088
11089 // objects rezzed with this method are die_at_edge by default.
11090 group.RootPart.SetDieAtEdge(true);
11091
11092 group.ResumeScripts();
11093
11094 m_ScriptEngine.PostObjectEvent(m_host.LocalId, new EventParams(
11095 "object_rez", new Object[] {
11096 new LSL_String(
11097 group.RootPart.UUID.ToString()) },
11098 new DetectParams[0]));
11049 } 11099 }
11050 11100
11051 #endregion 11101 #endregion
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
index 0ae2388..ce13d6b 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs
@@ -121,6 +121,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
121 LSL_Float llGetEnergy(); 121 LSL_Float llGetEnergy();
122 LSL_Vector llGetForce(); 122 LSL_Vector llGetForce();
123 LSL_Integer llGetFreeMemory(); 123 LSL_Integer llGetFreeMemory();
124 LSL_Integer llGetUsedMemory();
124 LSL_Integer llGetFreeURLs(); 125 LSL_Integer llGetFreeURLs();
125 LSL_Vector llGetGeometricCenter(); 126 LSL_Vector llGetGeometricCenter();
126 LSL_Float llGetGMTclock(); 127 LSL_Float llGetGMTclock();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
index 63cac9a..7d7e54e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
@@ -461,6 +461,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
461 return m_LSL_Functions.llGetFreeMemory(); 461 return m_LSL_Functions.llGetFreeMemory();
462 } 462 }
463 463
464 public LSL_Integer llGetUsedMemory()
465 {
466 return m_LSL_Functions.llGetUsedMemory();
467 }
468
464 public LSL_Integer llGetFreeURLs() 469 public LSL_Integer llGetFreeURLs()
465 { 470 {
466 return m_LSL_Functions.llGetFreeURLs(); 471 return m_LSL_Functions.llGetFreeURLs();