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(); }