better hi/lo ref transition, props changed
This commit is contained in:
parent
a3d1bb8b50
commit
2864667ef8
2 changed files with 38 additions and 22 deletions
|
@ -7,13 +7,16 @@ DotSym.makeinstance( name, __self__ );
|
|||
|
||||
var element_type = "group";
|
||||
|
||||
var terrain_minalt = props.globals.initNode("/custom/terrain/min-altitude", 0,"INT");
|
||||
var terrain_maxalt = props.globals.initNode("/custom/terrain/max-altitude", -9999,"INT");
|
||||
var terrain_minalt = props.globals.initNode("/instrumentation/efis[0]/nd/terrain-on-nd/min-altitude", 0,"INT");
|
||||
var terrain_maxalt = props.globals.initNode("/instrumentation/efis[0]/nd/terrain-on-nd/max-altitude", -9999,"INT");
|
||||
|
||||
var terrain_alert = props.globals.initNode("/instrumentation/efis[0]/nd/terrain-on-nd/alert", 0,"INT");
|
||||
|
||||
var tile_list = [
|
||||
nil,"tile_gl.png","tile_gh.png","tile_yl.png","tile_yh.png","tile_rh.png", # 0-5 low alt
|
||||
"tile_gl.png","tile_gh.png","tile_gs.png",nil, # 6-8 hi alt
|
||||
"tile_ml.png","tile_cl.png" # 10 magenta - 11 cyan (water)
|
||||
"tile_ml.png","tile_cl.png", # 10 magenta - 11 cyan (water)
|
||||
"tile_ys.png","tile_rs.png" # 12-13 alert
|
||||
];
|
||||
|
||||
var is_terrain = 0;
|
||||
|
@ -53,6 +56,7 @@ var updateTerrain = func {
|
|||
var altitudeft = me.refaltitudeft;
|
||||
var lowaltft = me.reflowaltft;
|
||||
var basealtft = me.basealtitudeft;
|
||||
var alert_level = me.terrain_alert.getValue();
|
||||
|
||||
var side = (math.mod(me.radar_beacon,2)==0) ? "L" : "R";
|
||||
var a = int(me.radar_beacon/2);
|
||||
|
@ -98,6 +102,10 @@ var updateTerrain = func {
|
|||
if (diff>=0) {
|
||||
grad = int(diff/1000) + 3;
|
||||
if (grad>5) grad = 5;
|
||||
if (alert_level > 0 and a < 6 and grad > 3) {
|
||||
if (alert_level == 1 and (grad == 3 or grad == 4)) grad = 12; # solid yellow
|
||||
else if (alert_level == 2 and grad == 5) grad = 13; # solid red
|
||||
}
|
||||
} else {
|
||||
if (me.hialtmode == 0) {
|
||||
if (diff>=lowaltft) grad = 3; # lite yellow
|
||||
|
@ -135,7 +143,6 @@ var updateTerrain = func {
|
|||
|
||||
me.radar_beacon += 1;
|
||||
if (me.radar_beacon >= (me.tileradiusw*2)) {
|
||||
me.update_altitudes();
|
||||
me.restart_beacon();
|
||||
}
|
||||
|
||||
|
@ -143,25 +150,28 @@ var updateTerrain = func {
|
|||
};
|
||||
|
||||
var update_altitudes = func {
|
||||
|
||||
me.terrain_minalt.setValue(me.min_altitude);
|
||||
me.terrain_maxalt.setValue(me.max_altitude);
|
||||
|
||||
if (me.onground == 0 and (me.max_altitude + 1000) < me.refaltitudeft) { # 1000 ft tollerance
|
||||
if (me.onground == 0 and (me.max_altitude + 250) < me.refaltitudeft) { # 250 ft tollerance
|
||||
me.hialtmode = 1;
|
||||
me.bands_range = (me.max_altitude - me.min_altitude) / 4;
|
||||
me.bands_minalt = int(me.min_altitude + me.bands_range);
|
||||
me.bands_range = math.min(2000,(me.max_altitude - math.max(me.min_altitude,me.basealtitudeft))) / 5;
|
||||
var maxrange = math.min(2000,me.max_altitude - (me.bands_range * 3));
|
||||
me.bands_minalt = int(me.max_altitude - maxrange);
|
||||
me.bands_maxalt = me.max_altitude;
|
||||
} else {
|
||||
me.hialtmode = 0;
|
||||
}
|
||||
|
||||
me.min_altitude = 9999;
|
||||
me.max_altitude = -9999;
|
||||
|
||||
}
|
||||
|
||||
var restart_beacon = func {
|
||||
me.radar_beacon = 0;
|
||||
me.radar_cycle += 1;
|
||||
me.min_altitude = 9999;
|
||||
me.max_altitude = -9999;
|
||||
me.reference = nil;
|
||||
};
|
||||
|
||||
|
@ -275,15 +285,16 @@ var draw = func {
|
|||
me.refaltitudeft = refalt;
|
||||
me.reflowaltft = (pts.Gear.position[1].getValue()) ? -250 : -500;
|
||||
me.onground = getprop("/gear/gear[0]/wow");
|
||||
|
||||
if (me.min_altitude != 9999) me.update_altitudes();
|
||||
|
||||
if (me.basealtitudeft == nil and fmgc.FMGCInternal.phase<2) {
|
||||
#var basealtft = me.get_elevation(ref.lat,ref.lon);
|
||||
me.basealtitudeft = refalt + 400;
|
||||
me.checkarrival = 1;
|
||||
}
|
||||
|
||||
if (fmgc.FMGCInternal.phase == 2 and me.basealtitudeft > 0 and refalt > me.basealtitudeft) {
|
||||
me.basealtitudeft = 0;
|
||||
if (fmgc.FMGCInternal.phase == 2) {
|
||||
me.basealtitudeft = math.min(me.basealtitudeft,400+me.terrain_minalt.getValue());
|
||||
}
|
||||
|
||||
if (fmgc.FMGCInternal.phase == 5 and me.checkarrival == 1) {
|
||||
|
@ -293,20 +304,18 @@ var draw = func {
|
|||
var airport = airportinfo(fmgc.FMGCInternal.arrApt);
|
||||
if (airport != nil) me.basealtitudeft = 400 + (airport.elevation * M2FT);
|
||||
}
|
||||
if (me.basealtft == nil) {
|
||||
var elev = get_elevation(ref.lat,ref.lon);
|
||||
if (elev != nil) me.basealtitudeft = 400 + elev;
|
||||
else me.basealtitudeft = 400; # no hope
|
||||
if (me.basealtitudeft == nil) {
|
||||
me.basealtitudeft = 400 + me.terrain_minalt.getValue(); # that's fun
|
||||
}
|
||||
}
|
||||
|
||||
if (fmgc.FMGCInternal.phase == 6 and me.checkarrival == 0) {
|
||||
me.checkarrival == 1;
|
||||
me.basealtft = 0;
|
||||
#me.basealtitudeft = 0;
|
||||
}
|
||||
|
||||
if (fmgc.FMGCInternal.phase == 7 and me.basealtft == 0) {
|
||||
me.checkarrival == 1;
|
||||
if (fmgc.FMGCInternal.phase == 7 and me.checkarrival == 0) {
|
||||
me.checkarrival == 1;
|
||||
me.basealtitudeft = refalt + 400;
|
||||
}
|
||||
|
||||
|
@ -324,9 +333,16 @@ var draw = func {
|
|||
}
|
||||
|
||||
me.updateTerrain(); # left
|
||||
#if (math.mod(me.radar_beacon,2)==1)
|
||||
me.updateTerrain(); # right
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
setlistener("/instrumentation/mk-viii/outputs/discretes/gpws-warning", func { #warning - TERRAIN red - solid red
|
||||
me.terrain_alert.setValue( (getprop("/instrumentation/mk-viii/outputs/discretes/gpws-warning") ) ? 2 : 0 );
|
||||
});
|
||||
|
||||
setlistener("/instrumentation/mk-viii/outputs/discretes/gpws-alert", func { #caution - TERRAIN amber - solid yellow
|
||||
me.terrain_alert.setValue( (getprop("/instrumentation/mk-viii/outputs/discretes/gpws-alert") ) ? 1 : 0 );
|
||||
});
|
|
@ -12,8 +12,8 @@ var adirs_3 = props.globals.getNode("/instrumentation/efis[0]/nd/ir-3", 1);
|
|||
|
||||
var vhdg_bug = props.globals.getNode("/it-autoflight/input/hdg",0); # ND compass position deg
|
||||
|
||||
var terrain_minalt = props.globals.getNode("/custom/terrain/min-altitude", 0);
|
||||
var terrain_maxalt = props.globals.getNode("/custom/terrain/max-altitude", -9999);
|
||||
var terrain_minalt = props.globals.getNode("/instrumentation/efis[0]/nd/terrain-on-nd/min-altitude", 0);
|
||||
var terrain_maxalt = props.globals.getNode("/instrumentation/efis[0]/nd/terrain-on-nd/max-altitude", -9999);
|
||||
|
||||
canvas.NDStyles["Airbus"] = {
|
||||
font_mapper: func(family, weight) {
|
||||
|
|
Loading…
Add table
Reference in a new issue