diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
6 files changed, 152 insertions, 38 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs index ee32755..14edde4 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs | |||
@@ -137,7 +137,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
137 | if (cmdHandlerThread == null) | 137 | if (cmdHandlerThread == null) |
138 | { | 138 | { |
139 | // Start the thread that will be doing the work | 139 | // Start the thread that will be doing the work |
140 | cmdHandlerThread = Watchdog.StartThread(CmdHandlerThreadLoop, "AsyncLSLCmdHandlerThread", ThreadPriority.Normal, true); | 140 | cmdHandlerThread |
141 | = Watchdog.StartThread( | ||
142 | CmdHandlerThreadLoop, "AsyncLSLCmdHandlerThread", ThreadPriority.Normal, true, true); | ||
141 | } | 143 | } |
142 | } | 144 | } |
143 | 145 | ||
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 61a6907..c5392b5 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -6376,16 +6376,38 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
6376 | } | 6376 | } |
6377 | } | 6377 | } |
6378 | 6378 | ||
6379 | public void llSitTarget(LSL_Vector offset, LSL_Rotation rot) | 6379 | protected void SitTarget(SceneObjectPart part, LSL_Vector offset, LSL_Rotation rot) |
6380 | { | 6380 | { |
6381 | m_host.AddScriptLPS(1); | ||
6382 | // LSL quaternions can normalize to 0, normal Quaternions can't. | 6381 | // LSL quaternions can normalize to 0, normal Quaternions can't. |
6383 | if (rot.s == 0 && rot.x == 0 && rot.y == 0 && rot.z == 0) | 6382 | if (rot.s == 0 && rot.x == 0 && rot.y == 0 && rot.z == 0) |
6384 | rot.z = 1; // ZERO_ROTATION = 0,0,0,1 | 6383 | rot.z = 1; // ZERO_ROTATION = 0,0,0,1 |
6385 | 6384 | ||
6386 | m_host.SitTargetPosition = new Vector3((float)offset.x, (float)offset.y, (float)offset.z); | 6385 | part.SitTargetPosition = new Vector3((float)offset.x, (float)offset.y, (float)offset.z); |
6387 | m_host.SitTargetOrientation = Rot2Quaternion(rot); | 6386 | part.SitTargetOrientation = Rot2Quaternion(rot); |
6388 | m_host.ParentGroup.HasGroupChanged = true; | 6387 | part.ParentGroup.HasGroupChanged = true; |
6388 | } | ||
6389 | |||
6390 | public void llSitTarget(LSL_Vector offset, LSL_Rotation rot) | ||
6391 | { | ||
6392 | m_host.AddScriptLPS(1); | ||
6393 | SitTarget(m_host, offset, rot); | ||
6394 | } | ||
6395 | |||
6396 | public void llLinkSitTarget(LSL_Integer link, LSL_Vector offset, LSL_Rotation rot) | ||
6397 | { | ||
6398 | m_host.AddScriptLPS(1); | ||
6399 | if (link == ScriptBaseClass.LINK_ROOT) | ||
6400 | SitTarget(m_host.ParentGroup.RootPart, offset, rot); | ||
6401 | else if (link == ScriptBaseClass.LINK_THIS) | ||
6402 | SitTarget(m_host, offset, rot); | ||
6403 | else | ||
6404 | { | ||
6405 | SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(link); | ||
6406 | if (null != part) | ||
6407 | { | ||
6408 | SitTarget(part, offset, rot); | ||
6409 | } | ||
6410 | } | ||
6389 | } | 6411 | } |
6390 | 6412 | ||
6391 | public LSL_String llAvatarOnSitTarget() | 6413 | public LSL_String llAvatarOnSitTarget() |
@@ -7047,10 +7069,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
7047 | shapeBlock.PathScaleX = 100; | 7069 | shapeBlock.PathScaleX = 100; |
7048 | shapeBlock.PathScaleY = 150; | 7070 | shapeBlock.PathScaleY = 150; |
7049 | 7071 | ||
7050 | if (type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_CYLINDER && | 7072 | int flag = type & (ScriptBaseClass.PRIM_SCULPT_FLAG_INVERT | ScriptBaseClass.PRIM_SCULPT_FLAG_MIRROR); |
7051 | type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_PLANE && | 7073 | |
7052 | type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE && | 7074 | if (type != (ScriptBaseClass.PRIM_SCULPT_TYPE_CYLINDER | flag) && |
7053 | type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_TORUS) | 7075 | type != (ScriptBaseClass.PRIM_SCULPT_TYPE_PLANE | flag) && |
7076 | type != (ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE | flag) && | ||
7077 | type != (ScriptBaseClass.PRIM_SCULPT_TYPE_TORUS | flag)) | ||
7054 | { | 7078 | { |
7055 | // default | 7079 | // default |
7056 | type = (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE; | 7080 | type = (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE; |
@@ -8151,23 +8175,40 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8151 | { | 8175 | { |
8152 | m_host.AddScriptLPS(1); | 8176 | m_host.AddScriptLPS(1); |
8153 | ScriptSleep(1000); | 8177 | ScriptSleep(1000); |
8178 | return GetPrimMediaParams(m_host, face, rules); | ||
8179 | } | ||
8154 | 8180 | ||
8181 | public LSL_List llGetLinkMedia(LSL_Integer link, LSL_Integer face, LSL_List rules) | ||
8182 | { | ||
8183 | m_host.AddScriptLPS(1); | ||
8184 | ScriptSleep(1000); | ||
8185 | if (link == ScriptBaseClass.LINK_ROOT) | ||
8186 | return GetPrimMediaParams(m_host.ParentGroup.RootPart, face, rules); | ||
8187 | else if (link == ScriptBaseClass.LINK_THIS) | ||
8188 | return GetPrimMediaParams(m_host, face, rules); | ||
8189 | else | ||
8190 | { | ||
8191 | SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(link); | ||
8192 | if (null != part) | ||
8193 | return GetPrimMediaParams(part, face, rules); | ||
8194 | } | ||
8195 | |||
8196 | return new LSL_List(); | ||
8197 | } | ||
8198 | |||
8199 | private LSL_List GetPrimMediaParams(SceneObjectPart part, int face, LSL_List rules) | ||
8200 | { | ||
8155 | // LSL Spec http://wiki.secondlife.com/wiki/LlGetPrimMediaParams says to fail silently if face is invalid | 8201 | // LSL Spec http://wiki.secondlife.com/wiki/LlGetPrimMediaParams says to fail silently if face is invalid |
8156 | // TODO: Need to correctly handle case where a face has no media (which gives back an empty list). | 8202 | // TODO: Need to correctly handle case where a face has no media (which gives back an empty list). |
8157 | // Assuming silently fail means give back an empty list. Ideally, need to check this. | 8203 | // Assuming silently fail means give back an empty list. Ideally, need to check this. |
8158 | if (face < 0 || face > m_host.GetNumberOfSides() - 1) | 8204 | if (face < 0 || face > part.GetNumberOfSides() - 1) |
8159 | return new LSL_List(); | 8205 | return new LSL_List(); |
8160 | 8206 | ||
8161 | return GetPrimMediaParams(face, rules); | ||
8162 | } | ||
8163 | |||
8164 | private LSL_List GetPrimMediaParams(int face, LSL_List rules) | ||
8165 | { | ||
8166 | IMoapModule module = m_ScriptEngine.World.RequestModuleInterface<IMoapModule>(); | 8207 | IMoapModule module = m_ScriptEngine.World.RequestModuleInterface<IMoapModule>(); |
8167 | if (null == module) | 8208 | if (null == module) |
8168 | throw new Exception("Media on a prim functions not available"); | 8209 | return new LSL_List(); |
8169 | 8210 | ||
8170 | MediaEntry me = module.GetMediaEntry(m_host, face); | 8211 | MediaEntry me = module.GetMediaEntry(part, face); |
8171 | 8212 | ||
8172 | // As per http://wiki.secondlife.com/wiki/LlGetPrimMediaParams | 8213 | // As per http://wiki.secondlife.com/wiki/LlGetPrimMediaParams |
8173 | if (null == me) | 8214 | if (null == me) |
@@ -8249,33 +8290,52 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8249 | case ScriptBaseClass.PRIM_MEDIA_PERMS_CONTROL: | 8290 | case ScriptBaseClass.PRIM_MEDIA_PERMS_CONTROL: |
8250 | res.Add(new LSL_Integer((int)me.ControlPermissions)); | 8291 | res.Add(new LSL_Integer((int)me.ControlPermissions)); |
8251 | break; | 8292 | break; |
8293 | |||
8294 | default: return ScriptBaseClass.LSL_STATUS_MALFORMED_PARAMS; | ||
8252 | } | 8295 | } |
8253 | } | 8296 | } |
8254 | 8297 | ||
8255 | return res; | 8298 | return res; |
8256 | } | 8299 | } |
8257 | 8300 | ||
8258 | public LSL_Integer llSetPrimMediaParams(int face, LSL_List rules) | 8301 | public LSL_Integer llSetPrimMediaParams(LSL_Integer face, LSL_List rules) |
8259 | { | 8302 | { |
8260 | m_host.AddScriptLPS(1); | 8303 | m_host.AddScriptLPS(1); |
8261 | ScriptSleep(1000); | 8304 | ScriptSleep(1000); |
8305 | return SetPrimMediaParams(m_host, face, rules); | ||
8306 | } | ||
8262 | 8307 | ||
8263 | // LSL Spec http://wiki.secondlife.com/wiki/LlSetPrimMediaParams says to fail silently if face is invalid | 8308 | public LSL_Integer llSetLinkMedia(LSL_Integer link, LSL_Integer face, LSL_List rules) |
8264 | // Assuming silently fail means sending back LSL_STATUS_OK. Ideally, need to check this. | 8309 | { |
8265 | // Don't perform the media check directly | 8310 | m_host.AddScriptLPS(1); |
8266 | if (face < 0 || face > m_host.GetNumberOfSides() - 1) | 8311 | ScriptSleep(1000); |
8267 | return ScriptBaseClass.LSL_STATUS_OK; | 8312 | if (link == ScriptBaseClass.LINK_ROOT) |
8313 | return SetPrimMediaParams(m_host.ParentGroup.RootPart, face, rules); | ||
8314 | else if (link == ScriptBaseClass.LINK_THIS) | ||
8315 | return SetPrimMediaParams(m_host, face, rules); | ||
8316 | else | ||
8317 | { | ||
8318 | SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(link); | ||
8319 | if (null != part) | ||
8320 | return SetPrimMediaParams(part, face, rules); | ||
8321 | } | ||
8268 | 8322 | ||
8269 | return SetPrimMediaParams(face, rules); | 8323 | return ScriptBaseClass.LSL_STATUS_NOT_FOUND; |
8270 | } | 8324 | } |
8271 | 8325 | ||
8272 | private LSL_Integer SetPrimMediaParams(int face, LSL_List rules) | 8326 | private LSL_Integer SetPrimMediaParams(SceneObjectPart part, LSL_Integer face, LSL_List rules) |
8273 | { | 8327 | { |
8328 | // LSL Spec http://wiki.secondlife.com/wiki/LlSetPrimMediaParams says to fail silently if face is invalid | ||
8329 | // Assuming silently fail means sending back LSL_STATUS_OK. Ideally, need to check this. | ||
8330 | // Don't perform the media check directly | ||
8331 | if (face < 0 || face > part.GetNumberOfSides() - 1) | ||
8332 | return ScriptBaseClass.LSL_STATUS_NOT_FOUND; | ||
8333 | |||
8274 | IMoapModule module = m_ScriptEngine.World.RequestModuleInterface<IMoapModule>(); | 8334 | IMoapModule module = m_ScriptEngine.World.RequestModuleInterface<IMoapModule>(); |
8275 | if (null == module) | 8335 | if (null == module) |
8276 | throw new Exception("Media on a prim functions not available"); | 8336 | return ScriptBaseClass.LSL_STATUS_NOT_SUPPORTED; |
8277 | 8337 | ||
8278 | MediaEntry me = module.GetMediaEntry(m_host, face); | 8338 | MediaEntry me = module.GetMediaEntry(part, face); |
8279 | if (null == me) | 8339 | if (null == me) |
8280 | me = new MediaEntry(); | 8340 | me = new MediaEntry(); |
8281 | 8341 | ||
@@ -8354,10 +8414,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8354 | case ScriptBaseClass.PRIM_MEDIA_PERMS_CONTROL: | 8414 | case ScriptBaseClass.PRIM_MEDIA_PERMS_CONTROL: |
8355 | me.ControlPermissions = (MediaPermission)(byte)(int)rules.GetLSLIntegerItem(i++); | 8415 | me.ControlPermissions = (MediaPermission)(byte)(int)rules.GetLSLIntegerItem(i++); |
8356 | break; | 8416 | break; |
8417 | |||
8418 | default: return ScriptBaseClass.LSL_STATUS_MALFORMED_PARAMS; | ||
8357 | } | 8419 | } |
8358 | } | 8420 | } |
8359 | 8421 | ||
8360 | module.SetMediaEntry(m_host, face, me); | 8422 | module.SetMediaEntry(part, face, me); |
8361 | 8423 | ||
8362 | return ScriptBaseClass.LSL_STATUS_OK; | 8424 | return ScriptBaseClass.LSL_STATUS_OK; |
8363 | } | 8425 | } |
@@ -8366,18 +8428,40 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
8366 | { | 8428 | { |
8367 | m_host.AddScriptLPS(1); | 8429 | m_host.AddScriptLPS(1); |
8368 | ScriptSleep(1000); | 8430 | ScriptSleep(1000); |
8431 | return ClearPrimMedia(m_host, face); | ||
8432 | } | ||
8369 | 8433 | ||
8434 | public LSL_Integer llClearLinkMedia(LSL_Integer link, LSL_Integer face) | ||
8435 | { | ||
8436 | m_host.AddScriptLPS(1); | ||
8437 | ScriptSleep(1000); | ||
8438 | if (link == ScriptBaseClass.LINK_ROOT) | ||
8439 | return ClearPrimMedia(m_host.ParentGroup.RootPart, face); | ||
8440 | else if (link == ScriptBaseClass.LINK_THIS) | ||
8441 | return ClearPrimMedia(m_host, face); | ||
8442 | else | ||
8443 | { | ||
8444 | SceneObjectPart part = m_host.ParentGroup.GetLinkNumPart(link); | ||
8445 | if (null != part) | ||
8446 | return ClearPrimMedia(part, face); | ||
8447 | } | ||
8448 | |||
8449 | return ScriptBaseClass.LSL_STATUS_NOT_FOUND; | ||
8450 | } | ||
8451 | |||
8452 | private LSL_Integer ClearPrimMedia(SceneObjectPart part, LSL_Integer face) | ||
8453 | { | ||
8370 | // LSL Spec http://wiki.secondlife.com/wiki/LlClearPrimMedia says to fail silently if face is invalid | 8454 | // LSL Spec http://wiki.secondlife.com/wiki/LlClearPrimMedia says to fail silently if face is invalid |
8371 | // Assuming silently fail means sending back LSL_STATUS_OK. Ideally, need to check this. | 8455 | // Assuming silently fail means sending back LSL_STATUS_OK. Ideally, need to check this. |
8372 | // FIXME: Don't perform the media check directly | 8456 | // FIXME: Don't perform the media check directly |
8373 | if (face < 0 || face > m_host.GetNumberOfSides() - 1) | 8457 | if (face < 0 || face > part.GetNumberOfSides() - 1) |
8374 | return ScriptBaseClass.LSL_STATUS_OK; | 8458 | return ScriptBaseClass.LSL_STATUS_NOT_FOUND; |
8375 | 8459 | ||
8376 | IMoapModule module = m_ScriptEngine.World.RequestModuleInterface<IMoapModule>(); | 8460 | IMoapModule module = m_ScriptEngine.World.RequestModuleInterface<IMoapModule>(); |
8377 | if (null == module) | 8461 | if (null == module) |
8378 | throw new Exception("Media on a prim functions not available"); | 8462 | return ScriptBaseClass.LSL_STATUS_NOT_SUPPORTED; |
8379 | 8463 | ||
8380 | module.ClearMediaEntry(m_host, face); | 8464 | module.ClearMediaEntry(part, face); |
8381 | 8465 | ||
8382 | return ScriptBaseClass.LSL_STATUS_OK; | 8466 | return ScriptBaseClass.LSL_STATUS_OK; |
8383 | } | 8467 | } |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index c55e2ae..ff1f5fd 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -2740,7 +2740,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
2740 | CheckThreatLevel(ThreatLevel.Moderate, "osSetSpeed"); | 2740 | CheckThreatLevel(ThreatLevel.Moderate, "osSetSpeed"); |
2741 | m_host.AddScriptLPS(1); | 2741 | m_host.AddScriptLPS(1); |
2742 | ScenePresence avatar = World.GetScenePresence(new UUID(UUID)); | 2742 | ScenePresence avatar = World.GetScenePresence(new UUID(UUID)); |
2743 | avatar.SpeedModifier = (float)SpeedModifier; | 2743 | |
2744 | if (avatar != null) | ||
2745 | avatar.SpeedModifier = (float)SpeedModifier; | ||
2744 | } | 2746 | } |
2745 | 2747 | ||
2746 | public void osKickAvatar(string FirstName,string SurName,string alert) | 2748 | public void osKickAvatar(string FirstName,string SurName,string alert) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs index 6106a65..0f53bc3 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/ILSL_Api.cs | |||
@@ -64,6 +64,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
64 | LSL_List llCastRay(LSL_Vector start, LSL_Vector end, LSL_List options); | 64 | LSL_List llCastRay(LSL_Vector start, LSL_Vector end, LSL_List options); |
65 | LSL_Integer llCeil(double f); | 65 | LSL_Integer llCeil(double f); |
66 | void llClearCameraParams(); | 66 | void llClearCameraParams(); |
67 | LSL_Integer llClearLinkMedia(LSL_Integer link, LSL_Integer face); | ||
67 | LSL_Integer llClearPrimMedia(LSL_Integer face); | 68 | LSL_Integer llClearPrimMedia(LSL_Integer face); |
68 | void llCloseRemoteDataChannel(string channel); | 69 | void llCloseRemoteDataChannel(string channel); |
69 | LSL_Float llCloud(LSL_Vector offset); | 70 | LSL_Float llCloud(LSL_Vector offset); |
@@ -139,7 +140,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
139 | LSL_String llGetLinkName(int linknum); | 140 | LSL_String llGetLinkName(int linknum); |
140 | LSL_Integer llGetLinkNumber(); | 141 | LSL_Integer llGetLinkNumber(); |
141 | LSL_Integer llGetLinkNumberOfSides(int link); | 142 | LSL_Integer llGetLinkNumberOfSides(int link); |
142 | LSL_List llGetLinkPrimitiveParams(int linknum, LSL_List rules); | 143 | LSL_List llGetLinkMedia(LSL_Integer link, LSL_Integer face, LSL_List rules); |
144 | LSL_List llGetLinkPrimitiveParams(int linknum, LSL_List rules); | ||
143 | LSL_Integer llGetListEntryType(LSL_List src, int index); | 145 | LSL_Integer llGetListEntryType(LSL_List src, int index); |
144 | LSL_Integer llGetListLength(LSL_List src); | 146 | LSL_Integer llGetListLength(LSL_List src); |
145 | LSL_Vector llGetLocalPos(); | 147 | LSL_Vector llGetLocalPos(); |
@@ -218,6 +220,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
218 | LSL_String llGetDisplayName(string id); | 220 | LSL_String llGetDisplayName(string id); |
219 | LSL_String llRequestDisplayName(string id); | 221 | LSL_String llRequestDisplayName(string id); |
220 | void llLinkParticleSystem(int linknum, LSL_List rules); | 222 | void llLinkParticleSystem(int linknum, LSL_List rules); |
223 | void llLinkSitTarget(LSL_Integer link, LSL_Vector offset, LSL_Rotation rot); | ||
221 | LSL_String llList2CSV(LSL_List src); | 224 | LSL_String llList2CSV(LSL_List src); |
222 | LSL_Float llList2Float(LSL_List src, int index); | 225 | LSL_Float llList2Float(LSL_List src, int index); |
223 | LSL_Integer llList2Integer(LSL_List src, int index); | 226 | LSL_Integer llList2Integer(LSL_List src, int index); |
@@ -334,6 +337,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
334 | void llSetInventoryPermMask(string item, int mask, int value); | 337 | void llSetInventoryPermMask(string item, int mask, int value); |
335 | void llSetLinkAlpha(int linknumber, double alpha, int face); | 338 | void llSetLinkAlpha(int linknumber, double alpha, int face); |
336 | void llSetLinkColor(int linknumber, LSL_Vector color, int face); | 339 | void llSetLinkColor(int linknumber, LSL_Vector color, int face); |
340 | LSL_Integer llSetLinkMedia(LSL_Integer link, LSL_Integer face, LSL_List rules); | ||
337 | void llSetLinkPrimitiveParams(int linknumber, LSL_List rules); | 341 | void llSetLinkPrimitiveParams(int linknumber, LSL_List rules); |
338 | void llSetLinkTexture(int linknumber, string texture, int face); | 342 | void llSetLinkTexture(int linknumber, string texture, int face); |
339 | void llSetLinkTextureAnim(int linknum, int mode, int face, int sizex, int sizey, double start, double length, double rate); | 343 | void llSetLinkTextureAnim(int linknum, int mode, int face, int sizex, int sizey, double start, double length, double rate); |
@@ -344,7 +348,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces | |||
344 | void llSetParcelMusicURL(string url); | 348 | void llSetParcelMusicURL(string url); |
345 | void llSetPayPrice(int price, LSL_List quick_pay_buttons); | 349 | void llSetPayPrice(int price, LSL_List quick_pay_buttons); |
346 | void llSetPos(LSL_Vector pos); | 350 | void llSetPos(LSL_Vector pos); |
347 | LSL_Integer llSetPrimMediaParams(int face, LSL_List rules); | 351 | LSL_Integer llSetPrimMediaParams(LSL_Integer face, LSL_List rules); |
348 | void llSetPrimitiveParams(LSL_List rules); | 352 | void llSetPrimitiveParams(LSL_List rules); |
349 | void llSetLinkPrimitiveParamsFast(int linknum, LSL_List rules); | 353 | void llSetLinkPrimitiveParamsFast(int linknum, LSL_List rules); |
350 | void llSetPrimURL(string url); | 354 | void llSetPrimURL(string url); |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs index bb498b5..5a53e15 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs | |||
@@ -378,6 +378,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
378 | public const int PRIM_SCULPT_TYPE_TORUS = 2; | 378 | public const int PRIM_SCULPT_TYPE_TORUS = 2; |
379 | public const int PRIM_SCULPT_TYPE_PLANE = 3; | 379 | public const int PRIM_SCULPT_TYPE_PLANE = 3; |
380 | public const int PRIM_SCULPT_TYPE_CYLINDER = 4; | 380 | public const int PRIM_SCULPT_TYPE_CYLINDER = 4; |
381 | public const int PRIM_SCULPT_FLAG_INVERT = 64; | ||
382 | public const int PRIM_SCULPT_FLAG_MIRROR = 128; | ||
381 | 383 | ||
382 | public const int MASK_BASE = 0; | 384 | public const int MASK_BASE = 0; |
383 | public const int MASK_OWNER = 1; | 385 | public const int MASK_OWNER = 1; |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs index 83550a5..f8e3c36 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs | |||
@@ -1688,6 +1688,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
1688 | m_LSL_Functions.llSitTarget(offset, rot); | 1688 | m_LSL_Functions.llSitTarget(offset, rot); |
1689 | } | 1689 | } |
1690 | 1690 | ||
1691 | public void llLinkSitTarget(LSL_Integer link, LSL_Vector offset, LSL_Rotation rot) | ||
1692 | { | ||
1693 | m_LSL_Functions.llLinkSitTarget(link, offset, rot); | ||
1694 | } | ||
1695 | |||
1691 | public void llSleep(double sec) | 1696 | public void llSleep(double sec) |
1692 | { | 1697 | { |
1693 | m_LSL_Functions.llSleep(sec); | 1698 | m_LSL_Functions.llSleep(sec); |
@@ -1882,17 +1887,32 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase | |||
1882 | { | 1887 | { |
1883 | return m_LSL_Functions.llGetPrimMediaParams(face, rules); | 1888 | return m_LSL_Functions.llGetPrimMediaParams(face, rules); |
1884 | } | 1889 | } |
1885 | 1890 | ||
1891 | public LSL_List llGetLinkMedia(LSL_Integer link, LSL_Integer face, LSL_List rules) | ||
1892 | { | ||
1893 | return m_LSL_Functions.llGetLinkMedia(link, face, rules); | ||
1894 | } | ||
1895 | |||
1886 | public LSL_Integer llSetPrimMediaParams(int face, LSL_List rules) | 1896 | public LSL_Integer llSetPrimMediaParams(int face, LSL_List rules) |
1887 | { | 1897 | { |
1888 | return m_LSL_Functions.llSetPrimMediaParams(face, rules); | 1898 | return m_LSL_Functions.llSetPrimMediaParams(face, rules); |
1889 | } | 1899 | } |
1890 | 1900 | ||
1901 | public LSL_Integer llSetLinkMedia(LSL_Integer link, LSL_Integer face, LSL_List rules) | ||
1902 | { | ||
1903 | return m_LSL_Functions.llSetLinkMedia(link, face, rules); | ||
1904 | } | ||
1905 | |||
1891 | public LSL_Integer llClearPrimMedia(LSL_Integer face) | 1906 | public LSL_Integer llClearPrimMedia(LSL_Integer face) |
1892 | { | 1907 | { |
1893 | return m_LSL_Functions.llClearPrimMedia(face); | 1908 | return m_LSL_Functions.llClearPrimMedia(face); |
1894 | } | 1909 | } |
1895 | 1910 | ||
1911 | public LSL_Integer llClearLinkMedia(LSL_Integer link, LSL_Integer face) | ||
1912 | { | ||
1913 | return m_LSL_Functions.llClearLinkMedia(link, face); | ||
1914 | } | ||
1915 | |||
1896 | public void print(string str) | 1916 | public void print(string str) |
1897 | { | 1917 | { |
1898 | m_LSL_Functions.print(str); | 1918 | m_LSL_Functions.print(str); |