if(naIsNil(code))
return false;
- naCall(_context, code, naNil(), naNil(), naNil());
+ naCall(_context, code, 0, 0, naNil(), naNil());
if(!naGetError(_context)) return true;
logError();
if(!naHash_get(_globals, modname, &locals))
locals = naNewHash(_context);
- naCall(_context, code, naNil(), naNil(), locals);
+ naCall(_context, code, 0, 0, naNil(), locals);
if(naGetError(_context)) {
logError();
return;
bool FGNasalSys::handleCommand(const SGPropertyNode* arg)
{
- // Parse the Nasal source. I'd love to use the property name of
- // the argument, but it's actually a *clone* of the original
- // location in the property tree. arg->getPath() returns an empty
- // string.
const char* nasal = arg->getStringValue("script");
const char* moduleName = arg->getStringValue("module");
- naRef code = parse("<command>", nasal, strlen(nasal));
+ naRef code = parse(arg->getPath(true), nasal, strlen(nasal));
if(naIsNil(code)) return false;
naRef locals = naNil();
_cmdArg = (SGPropertyNode*)arg;
// Call it!
- naRef result = naCall(_context, code, naNil(), naNil(), locals);
+ naRef result = naCall(_context, code, 0, 0, naNil(), locals);
if(!naGetError(_context)) return true;
logError();
return false;
// settimer(func, dt, simtime) extension function. The first argument
// is a Nasal function to call, the second is a delta time (from now),
// in seconds. The third, if present, is a boolean value indicating
-// that "simulator" time (rather than real time) is to be used.
+// that "real world" time (rather than simulator time) is to be used.
//
// Implementation note: the FGTimer objects don't live inside the
// garbage collector, so the Nasal handler functions have to be
naRef delta = argc > 1 ? args[1] : naNil();
if(naIsNil(delta)) return;
- bool simtime = (argc > 2 && naTrue(args[2])) ? true : false;
+ bool simtime = (argc > 2 && naTrue(args[2])) ? false : true;
// Generate and register a C++ timer handler
NasalTimer* t = new NasalTimer;
void FGNasalSys::handleTimer(NasalTimer* t)
{
- naCall(_context, t->handler, naNil(), naNil(), naNil());
+ naCall(_context, t->handler, 0, 0, naNil(), naNil());
if(naGetError(_context))
logError();
gcRelease(t->gcKey);