From f0011bc759b2c0bf70e1628ce5eb9c26a27b83c8 Mon Sep 17 00:00:00 2001 From: James Turner Date: Tue, 5 Nov 2013 15:46:19 -0800 Subject: [PATCH] Nasal: accept strings-containing-ints as arguments to leg altitude/speed constraints. --- src/Scripting/NasalPositioned.cxx | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Scripting/NasalPositioned.cxx b/src/Scripting/NasalPositioned.cxx index 25d28bb40..11ca31bf7 100644 --- a/src/Scripting/NasalPositioned.cxx +++ b/src/Scripting/NasalPositioned.cxx @@ -2192,7 +2192,15 @@ static naRef f_leg_setSpeed(naContext c, naRef me, int argc, naRef* args) } RouteRestriction rr = routeRestrictionFromString(naStr_data(args[1])); - leg->setSpeed(rr, args[0].num); + if (naIsNum(args[0])) { + leg->setSpeed(rr, args[0].num); + } else if (naIsString(args[0])) { + leg->setSpeed(rr, simgear::strutils::to_int(naStr_data(args[0]))); + } else { + naRuntimeError(c, "bad speed value for leg.setSpeed"); + } + + return naNil(); } @@ -2208,7 +2216,14 @@ static naRef f_leg_setAltitude(naContext c, naRef me, int argc, naRef* args) } RouteRestriction rr = routeRestrictionFromString(naStr_data(args[1])); - leg->setAltitude(rr, args[0].num); + if (naIsNum(args[0])) { + leg->setAltitude(rr, args[0].num); + } else if (naIsString(args[0])) { + leg->setAltitude(rr, simgear::strutils::to_int(naStr_data(args[0]))); + } else { + naRuntimeError(c, "bad value for setAltitude"); + } + return naNil(); } -- 2.39.5