aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared (unfollow)
Commit message (Collapse)AuthorFilesLines
2013-01-16Implement co-operative script termination if termination comes during a ↵Justin Clark-Casey (justincc)14-49/+291
script wait event (llSleep(), etc.) This makes use of EventWaitHandles since various web references indicate that Thread.Interrupt() can also cause runtime instability. If co-op termination is enabled, then termination sets the wait handle instead of waiting for a timeout before possibly aborting the thread. This allows the script to cleanly terminate if it's in a llSleep/LL function delay or the next time it enters such a wait without any timeout period. Co-op termination is not yet testable since checking for termination request within loops that never trigger a wait is not yet implemented. This commit, unlike 1b5c41c, passes the wait handle as an extra parameter through IScript.Initialize() instead of passing IScriptInstance itself.
2013-01-16Revert "Implement co-operative script termination if termination comes ↵Justin Clark-Casey (justincc)4-248/+10
during a script wait event (llSleep(), etc.)" Doing this as a favour to Melanie. This will be back with passing the wait handles directly to the api. This reverts commit 1b5c41c14ad11325be249ea1cce3c65d4d6a89be.
2013-01-16Implement co-operative script termination if termination comes during a ↵Justin Clark-Casey (justincc)4-10/+248
script wait event (llSleep(), etc.) This makes use of EventWaitHandles since various web references indicate that Thread.Interrupt() can also cause runtime instability. If co-op termination is enabled, then termination sets the wait handle instead of waiting for a timeout before possibly aborting the thread. This allows the script to cleanly terminate if it's in a llSleep/LL function delay or the next time it enters such a wait without any timeout period. Co-op termination is not yet testable since checking for termination request within loops that never trigger a wait is not yet implemented.
2013-01-15Instead of passing separate engine, part and item components to script APIs, ↵Justin Clark-Casey (justincc)12-68/+88
pass down IScriptInstance instead. This is to allow the future co-operative script thread terminate feature to detect and act upon termination requests. This splits the assembly and state loading out from the ScriptInstance() constructor to a separate Load() method in order to facilititate continued script logic regression testing.
2013-01-14refactor: Simplify ScriptInstance by retaining reference to SceneObjectPart ↵Justin Clark-Casey (justincc)1-72/+55
instead of sometimes but not always looking it up.
2013-01-11BulletSim: add osGetPhysicsEngineType() LSL function and updateRobert Adams3-11/+54
the physics engines to return the name that is specified in the INI file ("physics = XXX") as the type of engine. This os function is a little different than the others in that it does not throw an exception of one is not privilaged to use it. It merely returns an empty string.
2013-01-10Add "show script timers" command to show script timers. For debug purposes.Justin Clark-Casey (justincc)2-32/+38
Also, "show sensors" changes to "show script sensors".
2013-01-10Add "show sensors" command to show script sensor information for debug purposes.Justin Clark-Casey (justincc)1-32/+62
2013-01-04Set default particle burst count to 1 instead of 0 in any set particle ↵Justin Clark-Casey (justincc)1-3/+3
system script call that does not have an empty list. As per http://opensimulator.org/mantis/view.php?id=6353
2013-01-04Fix build break caused by missing ) from dce2809.Justin Clark-Casey (justincc)1-1/+1
Was hand-typing in a line of code I had tested before but not retested this time
2013-01-04Automatically grant sit-related llRequestPermissions() for subsequent ↵Justin Clark-Casey (justincc)1-15/+1
avatars sitting on the same scene obejct, instead of wrongly popping up request permissions dialog. Resolves http://opensimulator.org/mantis/view.php?id=6478
2013-01-04refactor: simplify llGetNumberOfPrims() to return prim count + sitting ↵Justin Clark-Casey (justincc)1-7/+1
avatar count rather than independently inspecting every scene presence
2013-01-04Fix llGetLinkName() to return the name of the last avatar sat as the last ↵Justin Clark-Casey (justincc)1-41/+35
link number. As per http://wiki.secondlife.com/wiki/LlGetLinkName
2013-01-04Fix llGetLinkKey() to return the last sat avatar as the last link number.Justin Clark-Casey (justincc)1-17/+31
As per http://wiki.secondlife.com/wiki/LlGetLinkKey This is done by keeping a scene-object wide list of sitters. This also fixes bugs in this function where linknums 0 and 1 weren't treated properly if there were sitting avatars on a single prim. This also fixes a minor race condition for multiple concurrent sitters on a prim with no current sitters by locking on the object-wide list rather than individual sop lists Addresses http://opensimulator.org/mantis/view.php?id=6477
2013-01-03Scipt modules get the OpenMetaverse types, so lists passed as arguments to ↵SignpostMarv1-2/+27
script module functions which then later call LSL_Types.list.GetVector3Item() or LSL_Types.list.GetQuaternionItem() methods would then trigger an InvalidCastException, which is now avoided.
2013-01-03Improving documentation of AttachToAvatar and GetLine methods in LSL_Api.cs ↵SignpostMarv1-8/+15
based on doxygen error output
2013-01-02Fixed several problems with the Sun: some settings didn't work, or were ↵Oren Hurvitz1-6/+4
inconsistently used. - The sun position is always calculated by combining the sun settings in the Region and Estate. This fixes the problem that 'UseEstateSun' didn't work. - To remove ambiguity, the EstateToolsSunUpdate event no longer accepts the sun's position as parameters. That's because the position is always calculated from the Region and Estate settings. - Use only the 'FixedSun' flag to determine whether the sun is fixed; not the 'UseGlobalTime' flag. - Don't change the region's 'SunPosition' field according to the sun's position: this field is used only to set the position when using a FixedSun. (The 'SunVector' field does get updated according to the sun's position in the sky)
2013-01-02If an NPC is unowned, then always auto-grant permissions requested via ↵Justin Clark-Casey (justincc)1-1/+1
llRequestPermissions() This is consistent with all other OSSL NPC functions that allow unowned avatars to be manipulated. Aims to address http://opensimulator.org/mantis/view.php?id=6483
2012-12-31Resolve Mantis 6480 (http://opensimulator.org/mantis/view.php?id=6480)Robert Adams1-2/+11
by reversing the sign on the recoil computation and adding a [XEngine]RecoilScaleFactor parameter which defaults to zero. Testing in SL seems to show that there is not a recoil action there. Or, at least, it is very small. If someone knows how small, the default for the scale factor should be changed.
2012-12-18Replace axis rotation numeric constants (STATUS_ROTATE_XYZ) with symbols. ↵Robert Adams1-3/+4
Also made it so llSetStatus() can individually enable disable rotation axi using the bitmask of flags.
2012-12-17Extend default 1 second wait for event completion to other thread script ↵Justin Clark-Casey (justincc)1-2/+2
reset (as called by llResetOtherScript()). As with script stop (via llDie()) aborting other scripts event threads, llResetOtherScript() can also abort any current event thread on another script. On mono 2.6, 2.10 and possibly later this may cause locking problems in certain code areas. This commit reuses the recently introduced [XEngine] WaitForEventCompletionOnScriptStop to make this a 1 sec timeout, rather than 0 secs.
2012-12-12Log situations where workitem event threads are aborted on stop request ↵Justin Clark-Casey (justincc)1-3/+3
because they failed to complete event processing within the given timeout. This is for bug hunting purposes where thread aborts may be causing dangling lock issues and subsequent vm crashes on mono (with ReaderWriterLockSlim, etc.)
2012-12-12Add "debug script log" command to allow setting a numeric debug level on ↵Justin Clark-Casey (justincc)1-8/+29
individual IScriptInstances for debugging purposes. Current, state changes and event fires can be logged for individual scripts. See command help for more details.
2012-12-06Instead of printing script errors out to console, put to debug log so that ↵Justin Clark-Casey (justincc)1-1/+11
we also get timestamps. This commit also adds script name, part name, uuid, etc. for later identification. This information has been sent to console since 2009 but may be turned down if it proves too noisy. However, I still currently need it to investigate some region problems probably triggered by scripting.
2012-12-05Remove some mono warnings in script tests, chiefly where SetUp() wasn't ↵Justin Clark-Casey (justincc)5-7/+13
properly calling to OpenSimTestCase.SetUp()
2012-12-05Add IScriptInstance.EventsQueued to match EventsProcessed instead of asking ↵Justin Clark-Casey (justincc)1-0/+9
callers to lock and directly inspect the EventQueue
2012-12-05Add IScriptInstance.EventsProcessed stat so that we can record this ↵Justin Clark-Casey (justincc)1-0/+4
information and display in "show scripts" for debug purposes
2012-12-03XmlRpcGridRouterBlueWall1-0/+7
Flesh out XmlRpcGridRouter to reap unused channels from gateway when scripts or objects are removed, or when the llCloseRemoteDataChannel is called. See: http://http://forge.opensimulator.org/gf/project/xmlrpcrouter/ or https://github.com/BlueWall/XmlRpcRouter for php gateway and test code.
2012-11-24Consistenly make NUnit test cases inherit from OpenSimTestCase which ↵Justin Clark-Casey (justincc)11-11/+11
automatically turns off any logging enabled between tests
2012-11-14Added AssemblyInfos to every dll in the OpenSim.Region namespace.Diva Canto6-0/+198
2012-11-09llSetLinkCamera implementationPixelTomsen3-0/+36
wiki: http://wiki.secondlife.com/wiki/LlSetLinkCamera mantis: http://opensimulator.org/mantis/view.php?id=6397
2012-11-05Change user message on TeskInventoryAccepted to let the viewer format itMelanie1-5/+5
properly
2012-10-31Also add the additional ScriptException constructor necessary to get ↵Justin Clark-Casey (justincc)1-0/+3
[Serializable] to work.
2012-10-31Mark ScriptException as [Serializable] for when it has to cross AppDomainsJustin Clark-Casey (justincc)1-0/+1
2012-10-29refactoring llCollisionSound to use new KeyOrName methodSignpostMarv1-10/+1
2012-10-29Refactoring llTriggerSoundLimited with a new method on ISoundModule, as the ↵SignpostMarv1-6/+3
LL Wiki spec for llTriggerSoundLimited states an axis-aligned bounding box, not radial constraint
2012-10-29refactoring llTriggerSoundLimited to not use the LSL methods, since that ↵SignpostMarv1-2/+2
will cause unnecessary calls to m_host.AddScriptLPS(1)
2012-10-29refactoring llGetPos() to take advantage of implicit converterSignpostMarv1-2/+1
2012-10-29shifting from two instances of typecasting to one instance of typecasting in ↵SignpostMarv1-4/+4
llTriggerSoundLimited
2012-10-2980-character width terminal formatting of recent commits to llPlaySound, ↵SignpostMarv1-7/+15
llPlaySoundSlave, llTriggerSound and llTriggerSoundLimited
2012-10-29shuffling code around so that the interface for ISoundModule.SendSound() ↵SignpostMarv1-4/+40
specifies a UUID rather than a string
2012-10-29moving SendSound from SceneObjectPart to ISoundModuleSignpostMarv1-5/+17
2012-10-29deduplicating code into a single LoopSound methodSignpostMarv1-21/+7
2012-10-29adjusting parameter order of PreloadSound to be more logicalSignpostMarv1-1/+1
2012-10-29transposing LoopSoundMaster to Sound ModuleSignpostMarv1-25/+3
2012-10-29transposing preload sound onto sound moduleSignpostMarv1-1/+2
2012-10-29transposing stop sound into sound moduleSignpostMarv1-37/+5
2012-10-29moving comment for llStopSound inside the method block prior to ↵SignpostMarv1-1/+1
transposition to sound module
2012-10-29Immediately setting gain to zero as a workaround for code not stopping sound ↵SignpostMarv1-0/+1
started by llPlaySound
2012-10-26Separate LSL's notion of the default anim from the actually playing anims.Melanie1-3/+3