diff --git a/Environment/interpolator.xml b/Environment/interpolator.xml index 638733ab3..400c08b86 100644 --- a/Environment/interpolator.xml +++ b/Environment/interpolator.xml @@ -73,6 +73,12 @@ /environment/config/enabled + + + /environment/config/presets/visibility-m-override + + /environment/config/presets/visibility-m + /environment/config/interpolated/visibility-m /environment/visibility-m exponential @@ -89,6 +95,12 @@ /environment/config/enabled + + + /environment/config/presets/wind-override + + /environment/config/presets/wind-from-north-fps + /environment/config/interpolated/wind-from-north-fps /environment/wind-from-north-fps exponential @@ -102,6 +114,12 @@ /environment/config/enabled + + + /environment/config/presets/wind-override + + /environment/config/presets/wind-from-east-fps + /environment/config/interpolated/wind-from-east-fps /environment/wind-from-east-fps exponential diff --git a/Nasal/environment.nas b/Nasal/environment.nas new file mode 100755 index 000000000..c94c55453 --- /dev/null +++ b/Nasal/environment.nas @@ -0,0 +1,45 @@ +## +## environment.nas +## +## Nasal code for implementing environment-specific functionality. + +## +# Handler. Increase visibility by one step +# +var increaseVisibility = func { + adjustVisibility(1.1); +} + +## +# Handler. Decrease visibility by one step +# +var decreaseVisibility = func { + adjustVisibility(0.9); +} + +var adjustVisibility = func( factor ) { + var val = visibilityProp.getValue() * factor; + if( val < 1.0 ) val = getprop("/environment/visibility-m"); + if( val > 30 ) { + visibilityProp.setDoubleValue(val); + visibilityOverrideProp.setBoolValue(1); + gui.popupTip(sprintf("Visibility: %.0f m", val)); + } +} + +## +# Handler. Reset visibility to default. +# +var resetVisibility = func { + visibilityProp.setDoubleValue(0); + visibilityOverrideProp.setBoolValue(0); +} + + +var visibilityProp = nil; +var visibilityOverrideProp = nil; + +_setlistener("/sim/signals/nasal-dir-initialized", func { + visibilityProp = props.globals.initNode("/environment/config/presets/visibility-m", 0, "DOUBLE" ); + visibilityOverrideProp = props.globals.initNode("/environment/config/presets/visibility-m-override", 0, "BOOL" ); +}); diff --git a/keyboard.xml b/keyboard.xml index 0905f1b9b..2539f77f5 100644 --- a/keyboard.xml +++ b/keyboard.xml @@ -255,7 +255,16 @@ top down before the key bindings are parsed. - + + Ctrl-Z + Reset visibility to default + + nasal + + + + + ESC Prompt and quit FlightGear @@ -765,7 +774,8 @@ top down before the key bindings are parsed. Decrease Visibility true - decrease-visibility + nasal + @@ -1040,8 +1050,9 @@ top down before the key bindings are parsed. z Increase Visibility true - - increase-visibility + + nasal +