Add osCheckODE() function so scripts can configure for running with legacy physics engine.

Function returns 'true' of the physics engine is configured to be 'OpenDynamicsEngine'.
  The presumption is that all other physics engines work the same (like SL) or it is a bug.
  Does not require ossl functions to be enabled.
inv-download
Robert Adams 2015-04-12 19:30:55 -07:00
parent 2a302d9a32
commit 9b337b089c
3 changed files with 21 additions and 0 deletions

View File

@ -1627,6 +1627,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
public LSL_Integer osCheckODE()
{
m_host.AddScriptLPS(1);
LSL_Integer ret = 0; // false
if (m_ScriptEngine.World.PhysicsScene != null)
{
string physEngine = m_ScriptEngine.World.PhysicsScene.EngineType;
if (physEngine == "OpenDynamicsEngine")
{
ret = 1; // true
}
}
return ret;
}
public string osGetPhysicsEngineType()
{
// High because it can be used to target attacks to known weaknesses

View File

@ -259,6 +259,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
string osGetScriptEngineName();
string osGetSimulatorVersion();
LSL_Integer osCheckODE();
string osGetPhysicsEngineType();
Object osParseJSONNew(string JSON);
Hashtable osParseJSON(string JSON);

View File

@ -420,6 +420,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
return m_OSSL_Functions.osGetScriptEngineName();
}
public LSL_Integer osCheckODE()
{
return m_OSSL_Functions.osCheckODE();
}
public string osGetPhysicsEngineType()
{
return m_OSSL_Functions.osGetPhysicsEngineType();