From f0011bc759b2c0bf70e1628ce5eb9c26a27b83c8 Mon Sep 17 00:00:00 2001
From: James Turner <zakalawe@mac.com>
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();
 }