-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

I made a patch that add some missing "var" to the data/Nasal/*.nas files. It
also changes props.wrap to use named arguments and remove a duplicate of
math.asin in lead_target.nas, making it use the math.asin one instead. (As far
as I could find, nothing outside the file itself used it, if I'm wrong about
that: sorry).

I also changed everything in data/Nasal to use math.abs instead of globals.abs,
however a lot remains that uses globals.abs in aircrafts and other places (see
my earlier mail to the list)

As I'm rather new to nasal could someone please have a look at my patch to see
that it is ok?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)

iD8DBQFHVVwpWmK6ng/aMNkRCjG+AJ9hz44kQTNM/jvDAvJHUXOnVbm5JACgoPc2
ne0/AveKS2TyZSWfXXBvBFQ=
=YVgH
-----END PGP SIGNATURE-----
? nasal-var.diff
Index: aircraft.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/aircraft.nas,v
retrieving revision 1.45
diff -u -p -r1.45 aircraft.nas
--- aircraft.nas        6 Nov 2007 21:22:06 -0000       1.45
+++ aircraft.nas        4 Dec 2007 13:50:01 -0000
@@ -135,7 +135,7 @@ var door = {
 
        # door.move(double)    ->  move to arbitrary position
        move    : func {
-               time = abs(me.getpos() - arg[0]) * me.swingtime;
+               time = math.abs(me.getpos() - arg[0]) * me.swingtime;
                interpolate(me.positionN, arg[0], time);
                me.target = !me.target;
        },
Index: atc-chatter.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/atc-chatter.nas,v
retrieving revision 1.8
diff -u -p -r1.8 atc-chatter.nas
--- atc-chatter.nas     15 May 2007 14:40:58 -0000      1.8
+++ atc-chatter.nas     4 Dec 2007 13:50:01 -0000
@@ -11,16 +11,16 @@
 # Global shared variables
 #############################################################################
 
-fg_root = "";
-chatter = "UK";
-chatter_dir = "";
-
-chatter_min_interval = 20.0;
-chatter_max_interval = 40.0;
-
-chatter_index = 0;
-chatter_size = 0;
-chatter_list = 0;
+var fg_root = "";
+var chatter = "UK";
+var chatter_dir = "";
+
+var chatter_min_interval = 20.0;
+var chatter_max_interval = 40.0;
+
+var chatter_index = 0;
+var chatter_size = 0;
+var chatter_list = 0;
 
 
 #############################################################################
@@ -28,7 +28,7 @@ chatter_list = 0;
 # up and running
 #############################################################################
 
-CHATTER_INIT = func {
+var CHATTER_INIT = func {
     # default values
     fg_root = getprop("/sim/fg-root");
     chatter_dir = sprintf("%s/ATC/Chatter/%s", fg_root, chatter);
@@ -46,7 +46,7 @@ settimer(CHATTER_INIT, 0);
 # main update function to be called each frame
 #############################################################################
 
-chatter_update = func {
+var chatter_update = func {
     if ( chatter_index >= chatter_size ) {
         chatter_index = 0;
     }
@@ -76,7 +76,7 @@ chatter_update = func {
 # Use tha nasal timer to update every 10 seconds
 #############################################################################
 
-nextChatter = func {
+var nextChatter = func {
     # schedule next message in next min-max interval seconds so we have a bit
     # of a random pacing
     next_interval = chatter_min_interval
Index: dynamic_view.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/dynamic_view.nas,v
retrieving revision 1.37
diff -u -p -r1.37 dynamic_view.nas
--- dynamic_view.nas    3 Nov 2007 14:08:40 -0000       1.37
+++ dynamic_view.nas    4 Dec 2007 13:50:01 -0000
@@ -43,7 +43,7 @@ var cos = func(a) { math.cos(a * math.pi
 var sigmoid = func(x) { 1 / (1 + math.exp(-x)) }
 var nsigmoid = func(x) { 2 / (1 + math.exp(-x)) - 1 }
 var pow = func(v, w) { v < 0 ? nil : v == 0 ? 0 : math.exp(math.ln(v) * w) }
-var npow = func(v, w) { v == 0 ? 0 : math.exp(math.ln(abs(v)) * w) * (v < 0 ? 
-1 : 1) }
+var npow = func(v, w) { v == 0 ? 0 : math.exp(math.ln(math.abs(v)) * w) * (v < 
0 ? -1 : 1) }
 var clamp = func(v, min, max) { v < min ? min : v > max ? max : v }
 var normatan = func(x) { math.atan2(x, 1) * 2 / math.pi }
 
Index: geo.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/geo.nas,v
retrieving revision 1.14
diff -u -p -r1.14 geo.nas
--- geo.nas     7 Oct 2007 15:12:06 -0000       1.14
+++ geo.nas     4 Dec 2007 13:50:01 -0000
@@ -276,7 +276,7 @@ var tile_index = func(lat, lon) {
 
 
 var format = func(lat, lon) {
-       sprintf("%s%03d%s%02d", lon < 0 ? "w" : "e", abs(lon), lat < 0 ? "s" : 
"n", abs(lat));
+       sprintf("%s%03d%s%02d", lon < 0 ? "w" : "e", math.abs(lon), lat < 0 ? 
"s" : "n", math.abs(lat));
 }
 
 
Index: globals.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/globals.nas,v
retrieving revision 1.26
diff -u -p -r1.26 globals.nas
--- globals.nas 20 Nov 2007 17:02:13 -0000      1.26
+++ globals.nas 4 Dec 2007 13:50:02 -0000
@@ -4,7 +4,7 @@
 #
 var isa = func(obj, class) {
     if(obj == nil or !contains(obj, "parents")) { return 0; }
-    foreach(c; obj.parents) {
+    foreach(var c; obj.parents) {
         if(c == class)     { return 1; }
         elsif(isa(obj, c)) { return 1; }
     }
Index: gui.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/gui.nas,v
retrieving revision 1.81
diff -u -p -r1.81 gui.nas
--- gui.nas     28 Nov 2007 22:22:29 -0000      1.81
+++ gui.nas     4 Dec 2007 13:50:02 -0000
@@ -61,8 +61,8 @@ var menuEnable = func(searchname, state)
 # property and the argument for the "dialog-show" command.  This
 # probably isn't really needed...
 #
-screenHProp = tipArg = nil;
-INIT = func {
+var screenHProp = tipArg = nil;
+var INIT = func {
     screenHProp = props.globals.getNode("/sim/startup/ysize");
     tipArg = props.Node.new({ "dialog-name" : "PopTip" });
 
@@ -96,17 +96,17 @@ var fpsDisplay = func(n) {
 ##
 # How many seconds do we show the tip?
 #
-DELAY = 1.0;
+var DELAY = 1.0;
 
 ##
 # Pop down the tip dialog, if it is visible.
 #
-popdown = func { fgcommand("dialog-close", tipArg); }
+var popdown = func { fgcommand("dialog-close", tipArg); }
 
 # Marker for the "current" timer.  This value gets stored in the
 # closure of the timer function, and is used to check that there
 # hasn't been a more recent timer set that should override.
-currTimer = 0;
+var currTimer = 0;
 
 ########################################################################
 # Widgets & Layout Management
@@ -466,7 +466,7 @@ var weightChangeHandler = func {
 # Dynamically generates a weight & fuel configuration dialog specific to
 # the aircraft.
 #
-showWeightDialog = func {
+var showWeightDialog = func {
     name = "WeightAndFuel";
     title = "Weight and Fuel Settings";
 
@@ -702,7 +702,7 @@ showWeightDialog = func {
 #     </text>
 # </help>
 #
-showHelpDialog = func {
+var showHelpDialog = func {
     node = props.globals.getNode(arg[0]);
     if (arg[0] == "/sim/help" and size(node.getChildren()) < 4) {
         node = node.getChild("common");
Index: lead_target.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/lead_target.nas,v
retrieving revision 1.7
diff -u -p -r1.7 lead_target.nas
--- lead_target.nas     15 May 2007 16:07:15 -0000      1.7
+++ lead_target.nas     4 Dec 2007 13:50:02 -0000
@@ -5,36 +5,36 @@
 # print("Target Lead script loading ...");
 
 # script defaults (configurable if you like)
-default_update_period = 0.05;
-default_goal_range_nm = 0.2;
-default_target_root = "/ai/models/aircraft[0]";
-default_target_task = "straight";
+var default_update_period = 0.05;
+var default_goal_range_nm = 0.2;
+var default_target_root = "/ai/models/aircraft[0]";
+var default_target_task = "straight";
 
 # master enable switch
-lead_target_enable = 0;
+var lead_target_enable = 0;
 
 # update period
-update_period = default_update_period;
+var update_period = default_update_period;
 
 # goal range to acheive when following target
-goal_range_nm = 0;
+var goal_range_nm = 0;
 
 # Target property tree root
-target_root = "";
+var target_root = "";
 
 # Target task (straight, turns, pitch, both)
-target_task = default_target_task;
-base_alt = 3000;
-tgt_alt = base_alt;
-tgt_hdg = 20;
-tgt_pitch = 0;
-tgt_roll = 0;
-tgt_speed = 280;
-tgt_lat_mode = "roll";
-tgt_lon_mode = "alt";
-next_turn = 0;
-next_pitch = 0;
-last_time = 0;
+var target_task = default_target_task;
+var base_alt = 3000;
+var tgt_alt = base_alt;
+var tgt_hdg = 20;
+var tgt_pitch = 0;
+var tgt_roll = 0;
+var tgt_speed = 280;
+var tgt_lat_mode = "roll";
+var tgt_lon_mode = "alt";
+var next_turn = 0;
+var next_pitch = 0;
+var last_time = 0;
 
 
 # Calculate new lon/lat given starting lon/lat, and offset radial, and
@@ -48,16 +48,15 @@ last_time = 0;
 # @return destination point in polar coordinates
 
 # define some global constants
-SG_METER_TO_NM = 0.0005399568034557235;
-SG_NM_TO_RAD   = 0.00029088820866572159;
-SG_EPSILON     = 0.0000001;
-SGD_PI         = 3.14159265358979323846;
-SGD_2PI        = 6.28318530717958647692;
-SGDTR          = SGD_PI / 180.0;
-fmod = func(x, y) { x - y * int(x/y) }
-asin = func(y) { math.atan2(y, math.sqrt(1-y*y)) }
+var SG_METER_TO_NM = 0.0005399568034557235;
+var SG_NM_TO_RAD   = 0.00029088820866572159;
+var SG_EPSILON     = 0.0000001;
+var SGD_PI         = 3.14159265358979323846;
+var SGD_2PI        = 6.28318530717958647692;
+var SGDTR          = SGD_PI / 180.0;
+var fmod = func(x, y) { x - y * int(x/y) }
 
-CalcGClonlat = func( lon_rad, lat_rad, hdg_rad, dist_m ) {
+var CalcGClonlat = func( lon_rad, lat_rad, hdg_rad, dist_m ) {
     result = [0, 0];
 
     # sanity check
@@ -76,7 +75,7 @@ CalcGClonlat = func( lon_rad, lat_rad, h
 
     dist_rad = dist_m * SG_METER_TO_NM * SG_NM_TO_RAD;
 
-    result[1] = asin( math.sin(lat_rad) * math.cos(dist_rad) +
+    result[1] = math.asin( math.sin(lat_rad) * math.cos(dist_rad) +
                       math.cos(lat_rad) * math.sin(dist_rad) *
                       math.cos(hdg_rad) );
 
@@ -84,7 +83,7 @@ CalcGClonlat = func( lon_rad, lat_rad, h
         result[0] = lon_rad;      # endpoint a pole
     } else {
         result[0] = 
-            fmod(lon_rad - asin( (math.sin(hdg_rad) *
+            fmod(lon_rad - math.asin( (math.sin(hdg_rad) *
                                  math.sin(dist_rad)) /
                                  math.cos(result[1]) )
                       + SGD_PI, SGD_2PI) - SGD_PI;
@@ -97,7 +96,7 @@ CalcGClonlat = func( lon_rad, lat_rad, h
 
 
 # Initialize target tracking
-LeadTargetInit = func {
+var LeadTargetInit = func {
     # seed the random number generator with time
     srand();
 
@@ -135,7 +134,7 @@ settimer(LeadTargetInit, 0);
 
 
 # update target task
-do_target_task = func {
+var do_target_task = func {
     time = getprop("/sim/time/elapsed-sec");
     dt = time - last_time;
     last_time = time;
@@ -295,7 +294,7 @@ do_target_task = func {
 
 
 # reset target aircraft position and heading relative to the "ownship".
-reset_target_aircraft = func {
+var reset_target_aircraft = func {
     print("Reseting target aircraft position");
 
     my_lon = getprop("/position/longitude-deg");
@@ -330,7 +329,7 @@ reset_target_aircraft = func {
 
 # If enabled, update our AP target values based on the target range,
 # bearing, and speed
-LeadTargetUpdate = func {
+var LeadTargetUpdate = func {
     lead_target_enable = 
props.globals.getNode("/autopilot/lead-target/enable");
     update_period = getprop("/autopilot/lead-target/update-period");
 
@@ -401,7 +400,7 @@ LeadTargetUpdate = func {
 }
 
 
-select_task_dialog = func {
+var select_task_dialog = func {
     dialog.load();  # load every time?
     dialog.open();
 }
@@ -414,7 +413,7 @@ settimer(func {
 
 
 # timer handling to cause our update function to be called periodially
-registerTimer = func {
+var registerTimer = func {
     settimer(LeadTargetUpdate, update_period );
 }
 registerTimer();
Index: material.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/material.nas,v
retrieving revision 1.8
diff -u -p -r1.8 material.nas
--- material.nas        11 May 2007 19:02:20 -0000      1.8
+++ material.nas        4 Dec 2007 13:50:02 -0000
@@ -48,9 +48,9 @@
 #  </animation>
 #
 
-dialog = nil;
+var dialog = nil;
 
-colorgroup = func {
+var colorgroup = func {
        parent = arg[0];  # pui parent
        name = arg[1];    # "diffuse"
        base = arg[2];
@@ -76,7 +76,7 @@ colorgroup = func {
 }
 
 
-mat = func {
+var mat = func() {
        parent = arg[0];
        name = arg[1];
        path = arg[2];
@@ -107,7 +107,7 @@ mat = func {
 }
 
 
-showDialog = func {
+var showDialog = func {
        base = arg[0];
        while (size(base) and substr(base, size(base) - 1, 1) == "/") {
                base = substr(base, 0, size(base) - 1);
Index: multiplayer.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/multiplayer.nas,v
retrieving revision 1.3
diff -u -p -r1.3 multiplayer.nas
--- multiplayer.nas     15 Oct 2007 18:27:42 -0000      1.3
+++ multiplayer.nas     4 Dec 2007 13:50:02 -0000
@@ -10,7 +10,7 @@
 
 var messages = {};
 
-check_messages = func
+var check_messages = func
 {
 
   var mp = props.globals.getNode("/ai/models").getChildren("multiplayer");
@@ -39,7 +39,7 @@ check_messages = func
   settimer(check_messages, 3);
 }
 
-echo_message = func(msg, callsign)
+var echo_message = func(msg, callsign)
 {
    if (callsign != nil)
    {
Index: props.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/props.nas,v
retrieving revision 1.25
diff -u -p -r1.25 props.nas
--- props.nas   7 Aug 2007 11:30:30 -0000       1.25
+++ props.nas   4 Dec 2007 13:50:02 -0000
@@ -56,7 +56,7 @@ Node = {
 # expression to initialize the object a-la setValues().
 #
 Node.new = func {
-    result = wrapNode(_new());
+    var result = wrapNode(_new());
     if(size(arg) > 0 and typeof(arg[0]) == "hash") {
         result.setValues(arg[0]);
     }
@@ -131,10 +131,10 @@ var dump = func {
     if(size(arg) == 1) { prefix = "";     node = arg[0]; }
     else               { prefix = arg[0]; node = arg[1]; }
 
-    index = node.getIndex();
-    type = node.getType();
-    name = node.getName();
-    val = node.getValue();
+    var index = node.getIndex();
+    var type = node.getType();
+    var name = node.getName();
+    var val = node.getValue();
 
     if(val == nil) { val = "nil"; }
     name = prefix ~ name;
@@ -172,17 +172,17 @@ var copy = func(src, dest, attr = 0) {
 # Utility.  Turns any ghosts it finds (either solo, or in an
 # array) into Node objects.
 #
-var wrap = func {
-    argtype = typeof(arg[0]);
+var wrap = func(a) {
+    var argtype = typeof(a);
     if(argtype == "ghost") {
-        return wrapNode(arg[0]);
+        return wrapNode(a);
     } elsif(argtype == "vector") {
-        v = arg[0];
-        n = size(v);
-        for(i=0; i<n; i+=1) { v[i] = wrapNode(v[i]); }
+        var v = a;
+        var n = size(v);
+        for(var i=0; i<n; i+=1) { v[i] = wrapNode(v[i]); }
         return v;
     }
-    return arg[0];
+    return a;
 }
 
 ##
Index: track_target.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/track_target.nas,v
retrieving revision 1.5
diff -u -p -r1.5 track_target.nas
--- track_target.nas    15 May 2007 16:07:15 -0000      1.5
+++ track_target.nas    4 Dec 2007 13:50:02 -0000
@@ -55,28 +55,28 @@
 # print("Target Tracking script loading ...");
 
 # script defaults (configurable if you like)
-default_update_period = 0.05;
-default_goal_range_nm = 0.05;
-default_target_root = "/ai/models/aircraft[0]";
-default_min_speed_kt = 120;
+var default_update_period = 0.05;
+var default_goal_range_nm = 0.05;
+var default_target_root = "/ai/models/aircraft[0]";
+var default_min_speed_kt = 120;
 
 # master enable switch
-target_tracking_enable = 0;
+var target_tracking_enable = 0;
 
 # update period
-update_period = default_update_period;
+var update_period = default_update_period;
 
 # goal range to acheive when following target
-goal_range_nm = 0;
+var goal_range_nm = 0;
 
 # minimum speed so we don't drop out of the sky
-min_speed_kt = 0;
+var min_speed_kt = 0;
 
 # Target property tree root
-target_root = "";
+var target_root = "";
 
 # Initialize target tracking
-TrackInit = func {
+var TrackInit = func {
     target_tracking_enable = getprop("/autopilot/target-tracking/enable");
     if ( target_tracking_enable == nil ) {
         target_tracking_enable = 0;
@@ -112,7 +112,7 @@ settimer(TrackInit, 0);
 
 # If enabled, update our AP target values based on the target range,
 # bearing, and speed
-TrackUpdate = func {
+var TrackUpdate = func {
     target_tracking_enable = getprop("/autopilot/target-tracking/enable");
     update_period = getprop("/autopilot/target-tracking/update-period");
 
@@ -184,7 +184,7 @@ TrackUpdate = func {
 
 
 # timer handling to cause our update function to be called periodially
-registerTimer = func {
+var registerTimer = func {
     settimer(TrackUpdate, update_period );
 }
 registerTimer();
Index: view.nas
===================================================================
RCS file: /var/cvs/FlightGear-0.9/data/Nasal/view.nas,v
retrieving revision 1.31
diff -u -p -r1.31 view.nas
--- view.nas    20 Nov 2007 11:34:54 -0000      1.31
+++ view.nas    4 Dec 2007 13:50:02 -0000
@@ -14,10 +14,10 @@
 #   mul^steps = max/min
 #   steps * ln(mul) = ln(max/min)
 #   mul = exp(ln(max/min) / steps)
-STEPS = 40;
-ACUITY = 1/60; # Maximum angle subtended by one pixel (== 1 arc minute)
-max = min = mul = 0;
-calcMul = func {
+var STEPS = 40;
+var ACUITY = 1/60; # Maximum angle subtended by one pixel (== 1 arc minute)
+var max = min = mul = 0;
+var calcMul = func {
     max = 120; # Fixed at 120 degrees
     min = getprop("/sim/startup/xsize") * ACUITY;
     mul = math.exp(math.ln(max/min) / STEPS);
@@ -26,7 +26,7 @@ calcMul = func {
 ##
 # Handler.  Increase FOV by one step
 #
-increase = func {
+var increase = func {
     calcMul();
     val = fovProp.getValue() * mul;
     if(val == max) { return; }
@@ -38,7 +38,7 @@ increase = func {
 ##
 # Handler.  Decrease FOV by one step
 #
-decrease = func {
+var decrease = func {
     calcMul();
     val = fovProp.getValue() / mul;
     fovProp.setDoubleValue(val);
@@ -103,13 +103,13 @@ var indexof = func(name) {
 ##
 # Standard view "slew" rate, in degrees/sec.
 #
-VIEW_PAN_RATE = 60;
+var VIEW_PAN_RATE = 60;
 
 ##
 # Pans the view horizontally.  The argument specifies a relative rate
 # (or number of "steps" -- same thing) to the standard rate.
 #
-panViewDir = func(step) {
+var panViewDir = func(step) {
     if (getprop("/sim/freeze/master"))
         prop = "/sim/current-view/heading-offset-deg";
     else
@@ -122,7 +122,7 @@ panViewDir = func(step) {
 # Pans the view vertically.  The argument specifies a relative rate
 # (or number of "steps" -- same thing) to the standard rate.
 #
-panViewPitch = func(step) {
+var panViewPitch = func(step) {
     if (getprop("/sim/freeze/master"))
         prop = "/sim/current-view/pitch-offset-deg";
     else
-------------------------------------------------------------------------
SF.Net email is sponsored by: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to