1
0
Fork 0
fgdata/Nasal/startup.nas
mfranz 693bebcd43 this module is meant for pure startup code. It shall not contain any library
code that is called from outside. It will be removed from the global namespace
once it has done its job. For now it only selects a proper runway for wind
directions reported by METAR, but only, of course, if an airport was chosen,
but no runway and no heading, and if the aircraft is actually on ground.
2007-10-07 19:44:58 +00:00

33 lines
1.3 KiB
Text

var metar_runway = func {
# select runway according to wind direction reported by METAR
if (!getprop("/environment/metar/real-metar"))
return printlog("info", "metar-rwy: no live weather");
if (getprop("/environment/metar/base-wind-speed-kt") < 1)
return; # windspeed pointless for runway choice
if (!getprop("/sim/startup/options/airport"))
return printlog("info", "metar-rwy: no airport requested");
if (getprop("/sim/startup/options/runway"))
return printlog("info", "metar-rwy: won't override explicit runway");
if (getprop("/sim/startup/options/heading-deg") < 9990.0)
return printlog("info", "metar-rwy: won't override explicit heading");
if (!getprop("/sim/presets/onground"))
return printlog("info", "metar-rwy: we aren't on ground");
var from = getprop("/environment/metar/base-wind-range-from");
var to = getprop("/environment/metar/base-wind-range-to");
var wind_from = (from + to) * 0.5;
printlog("info", "metar-rwy: setting new target heading ", wind_from);
setprop("/sim/presets/heading-deg", wind_from);
setprop("/sim/presets/longitude-deg", -9999);
setprop("/sim/presets/latitude-deg", -9999);
fgcommand("presets-commit");
printlog("info", "metar-rwy: selected runway: ", getprop("/sim/atc/runway"));
}
_setlistener("/sim/signals/nasal-dir-initialized", func {
metar_runway();
delete(globals, "startup");
});