]> git.mxchange.org Git - flightgear.git/blobdiff - src/Scripting/nasal-props.cxx
Round millibars to nearest whole number, and make inches default even in UK until...
[flightgear.git] / src / Scripting / nasal-props.cxx
index 78401e1f9cebaff2b74aecb5f78a0c61642650b4..1a16f8f918b4c64e31b1277594cbebd844e4a2d5 100644 (file)
@@ -111,7 +111,15 @@ static naRef f_setValue(naContext c, naRef args)
 static naRef f_setIntValue(naContext c, naRef args)
 {
     NODEARG();
-    int iv = (int)naNumValue(naVec_get(args, 0)).num;
+    // Original code:
+    //   int iv = (int)naNumValue(naVec_get(args, 0)).num;
+
+    // Junk to pacify the gcc-2.95.3 optimizer:
+    naRef tmp0 = naVec_get(args, 0);
+    naRef tmp1 = naNumValue(tmp0);
+    double tmp2 = tmp1.num;
+    int iv = (int)tmp2;
+
     (*node)->setIntValue(iv);
     return naNil();
 }
@@ -144,7 +152,13 @@ static naRef f_getChild(naContext c, naRef args)
     NODEARG();
     naRef child = naVec_get(args, 0);
     if(!naIsString(child)) return naNil();
-    SGPropertyNode* n = (*node)->getChild(naStr_data(child));
+    naRef idx = naNumValue(naVec_get(args, 1));
+    SGPropertyNode* n;
+    if(naIsNil(idx) || !naIsNum(idx)) {
+        n = (*node)->getChild(naStr_data(child));
+    } else {
+        n = (*node)->getChild(naStr_data(child), (int)idx.num);
+    }
     if(!n) return naNil();
     return propNodeGhostCreate(c, n);
 }