From 8495a2794b417656635f9d86725e88aec69d46a6 Mon Sep 17 00:00:00 2001 From: Alexis Bory Date: Mon, 2 Jan 2012 23:27:52 +0100 Subject: [PATCH 01/18] - Avoid "initing" and adding new listeners at each reset. --- .../Instruments-3d/radardist/radardist.nas | 12 ++++++--- Aircraft/Instruments-3d/rwr/rwr.nas | 25 ++++++------------- 2 files changed, 17 insertions(+), 20 deletions(-) diff --git a/Aircraft/Instruments-3d/radardist/radardist.nas b/Aircraft/Instruments-3d/radardist/radardist.nas index 0a972ebbb..6e2e0b5be 100644 --- a/Aircraft/Instruments-3d/radardist/radardist.nas +++ b/Aircraft/Instruments-3d/radardist/radardist.nas @@ -185,13 +185,19 @@ var load_data = func { } } +var launched = 0; var init = func { - print("Initializing Radar Data"); - io.read_properties(data_path, props.globals); - load_data(); + if (! launched) { + print("Initializing Radar Data"); + io.read_properties(data_path, props.globals); + load_data(); + launched = 1; + } } + + diff --git a/Aircraft/Instruments-3d/rwr/rwr.nas b/Aircraft/Instruments-3d/rwr/rwr.nas index adbdfcf9b..85050a395 100644 --- a/Aircraft/Instruments-3d/rwr/rwr.nas +++ b/Aircraft/Instruments-3d/rwr/rwr.nas @@ -1,21 +1,7 @@ -# Radar2 and RWR routines. +# RWR routines. # Alexis Bory (xiii) -# Every 0.05 seconde: -# [1] Scans /AI/models for (aircrafts), (carriers), multiplayers. Creates a list of -# these targets, whenever they are in radar overall range and are valid. -# [2] RWR (Radar Warning Receiver) signals are then computed. RWR signal values -# are writen under /instrumentation/radar2/targets for interoperabilty purposes. -# [3] At each loop the targets list is scanned and each target bearing is checked -# against the radar beam heading. If the target is within the radar beam, its -# display properties are updated. Two different displays are possible: -# B-scan like and PPI like. -# The target distance is then scored so the radar system can autotrack the -# nearest target. -# Every 0.1 seconde: -# [4] Computes HUD marker position for the nearest target. - var OurAlt = props.globals.getNode("position/altitude-ft"); var OurHdg = props.globals.getNode("orientation/heading-deg"); var EcmOn = props.globals.getNode("instrumentation/ecm/on-off", 1); @@ -34,9 +20,14 @@ var u_ecm_signal_norm = 0; var u_radar_standby = 0; var u_ecm_type_num = 0; +var launched = 0; + init = func() { - radardist.init(); - settimer(rwr_loop, 0.5); + if (! launched) { + radardist.init(); + settimer(rwr_loop, 0.5); + launched = 1; + } } # Main loop ############### From 8f4d761749a217411eb84dd90ddac78ddc2fa16e Mon Sep 17 00:00:00 2001 From: Gijs de Rooy Date: Mon, 2 Jan 2012 23:31:00 +0100 Subject: [PATCH 02/18] Fix redout-slider, correct indentation. --- gui/dialogs/cockpit-view.xml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/gui/dialogs/cockpit-view.xml b/gui/dialogs/cockpit-view.xml index a26a06468..e80fccbf6 100644 --- a/gui/dialogs/cockpit-view.xml +++ b/gui/dialogs/cockpit-view.xml @@ -62,7 +62,7 @@ center - + /sim/rendering/redout/enabled @@ -73,7 +73,7 @@ 0 0 - + /sim/rendering/redout/enabled @@ -86,7 +86,7 @@ %2.1f true /sim/rendering/redout/parameters/blackout-onset-g - + /sim/rendering/redout/enabled @@ -100,7 +100,7 @@ dialog-apply - + /sim/rendering/redout/enabled @@ -109,7 +109,7 @@ 1 0 - + /sim/rendering/redout/enabled @@ -122,7 +122,7 @@ %2.1f true /sim/rendering/redout/parameters/blackout-complete-g - + /sim/rendering/redout/enabled @@ -136,7 +136,7 @@ dialog-apply - + /sim/rendering/redout/enabled @@ -147,7 +147,7 @@ center - + /sim/rendering/redout/enabled @@ -158,7 +158,7 @@ 0 0 - + /sim/rendering/redout/enabled @@ -171,7 +171,7 @@ %2.1f true /sim/rendering/redout/parameters/redout-onset-g - + /sim/rendering/redout/enabled @@ -179,13 +179,13 @@ 0 2 - -1.0 - -15.0 + -15.0 + -1.0 /sim/rendering/redout/parameters/redout-onset-g dialog-apply - + /sim/rendering/redout/enabled @@ -194,7 +194,7 @@ 1 0 - + /sim/rendering/redout/enabled @@ -206,7 +206,7 @@ %2.1f true /sim/rendering/redout/parameters/redout-complete-g - + /sim/rendering/redout/enabled @@ -214,13 +214,13 @@ 1 2 - -1.0 - -15.0 + -15.0 + -1.0 /sim/rendering/redout/parameters/redout-complete-g dialog-apply - + /sim/rendering/redout/enabled From 7bb78e9477bea6a6d8a1275b38fe7059135e905f Mon Sep 17 00:00:00 2001 From: Gijs de Rooy Date: Tue, 3 Jan 2012 14:21:37 +0100 Subject: [PATCH 03/18] Correct model shader slider range. --- gui/dialogs/rendering.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gui/dialogs/rendering.xml b/gui/dialogs/rendering.xml index c524c8edc..419ec3b7a 100644 --- a/gui/dialogs/rendering.xml +++ b/gui/dialogs/rendering.xml @@ -622,16 +622,16 @@ setprop("/sim/rendering/shaders/landmass",qualityLevel); setprop("/sim/rendering/shaders/urban",qualityLevel); setprop("/sim/rendering/shaders/water",qualityLevel); + if (qualityLevel >= 3.0){ + qualityLevel = 3.0; + } + setprop("/sim/rendering/shaders/model",qualityLevel); if (qualityLevel >= 1.0){ qualityLevel = 1.0; } - else { - qualityLevel = 0.0; - } setprop("/sim/rendering/shaders/contrails",qualityLevel); setprop("/sim/rendering/shaders/crop",qualityLevel); setprop("/sim/rendering/shaders/generic",qualityLevel); - setprop("/sim/rendering/shaders/model",qualityLevel); setprop("/sim/rendering/shaders/transition",qualityLevel); }); From dde2115a59776ccdad7afacc546861a350be4cb6 Mon Sep 17 00:00:00 2001 From: Gijs de Rooy Date: Tue, 3 Jan 2012 15:29:23 +0100 Subject: [PATCH 04/18] Pre-populate dialog with original airport, add best-runway option. --- gui/dialogs/location-on-ground.xml | 59 +++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/gui/dialogs/location-on-ground.xml b/gui/dialogs/location-on-ground.xml index 45c836314..6ef505ca0 100644 --- a/gui/dialogs/location-on-ground.xml +++ b/gui/dialogs/location-on-ground.xml @@ -32,15 +32,16 @@ var dlg = props.globals.getNode("/sim/gui/dialogs/location-on-ground", 1); var apt = dlg.getNode("airport", 1); - apt.setValue(""); + apt.setValue(getprop("/sim/presets/airport-id")); var rwy = dlg.getNode("runway", 1); rwy.setValue(""); var parkpos = dlg.getNode("parkpos", 1); parkpos.setValue(""); var mode = { - runway: dlg.getNode("use_runway", 1), - parkpos: dlg.getNode("use_parkpos", 1) + runway: dlg.getNode("use_runway", 1), + bestrunway: dlg.getNode("use_best_runway", 1), + parkpos: dlg.getNode("use_parkpos", 1) }; var set_radio = func(m) { @@ -78,6 +79,8 @@ gui.dialog_update("location-on-ground"); } + + updateRunways(); @@ -106,6 +109,33 @@ 10 + /sim/gui/dialogs/location-on-ground/use_best_runway + true + + nasal + + + + + + 11 + right + + + /sim/gui/dialogs/location-on-ground/use_best_runway + + + + 12 + right + + + /sim/gui/dialogs/location-on-ground/use_best_runway + + + + + 20 /sim/gui/dialogs/location-on-ground/use_runway true @@ -115,14 +145,17 @@ - 11 + 21 right + + /sim/gui/dialogs/location-on-ground/use_runway + - + runway - 12 + 22 85 /sim/gui/dialogs/location-on-ground/use_runway @@ -137,7 +170,7 @@ - 20 + 30 /sim/gui/dialogs/location-on-ground/use_parkpos true @@ -147,13 +180,16 @@ - 21 + 31 right + + /sim/gui/dialogs/location-on-ground/use_parkpos + - 22 + 32 /sim/gui/dialogs/location-on-ground/use_parkpos @@ -179,7 +215,10 @@ nasal + reinit mp + + + + true - \ No newline at end of file + From 316cf855576831cc1f847f06e5fa0011a23f6998 Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Tue, 3 Jan 2012 23:38:26 +0000 Subject: [PATCH 08/18] Update MP Server descriptions --- gui/dialogs/multiplayer.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gui/dialogs/multiplayer.xml b/gui/dialogs/multiplayer.xml index 24b8d18a4..6ee1c17cd 100644 --- a/gui/dialogs/multiplayer.xml +++ b/gui/dialogs/multiplayer.xml @@ -74,17 +74,17 @@ host 11 - 300 + 350 /sim/multiplay/selected-server false - mpserver01.flightgear.org (Frankfurt/Germany) - mpserver02.flightgear.org (Kansas/USA) + mpserver01.flightgear.org (Frankfurt, Germany) + mpserver02.flightgear.org (Kansas, USA) mpserver03.flightgear.org (Germany) mpserver04.flightgear.org (United Kingdom) - mpserver05.flightgear.org (Chicago/USA) + mpserver05.flightgear.org (Chicago, USA) mpserver07.flightgear.org (Wisconsin, USA) - mpserver08.flightgear.org (Germany) - mpserver09.flightgear.org (Germany) + mpserver08.flightgear.org (Frankfurt am Main, Germany) + mpserver09.flightgear.org (Koln, Germany) mpserver10.flightgear.org (Montpellier, France) mpserver11.flightgear.org (Vilnius, Lithuania) mpserver12.flightgear.org (Amsterdam, Netherlands) From 151d45778e658f392debac7073a10efc5e209589 Mon Sep 17 00:00:00 2001 From: Frederic Bouvier Date: Wed, 4 Jan 2012 12:56:17 +0100 Subject: [PATCH 09/18] Try to fix the Nasal error in Local Weather 1.4 by initializing ground-haze-factor in local-weather-default.xml --- Environment/local-weather-defaults.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/Environment/local-weather-defaults.xml b/Environment/local-weather-defaults.xml index 88a232232..4e7e2fb9e 100644 --- a/Environment/local-weather-defaults.xml +++ b/Environment/local-weather-defaults.xml @@ -24,6 +24,7 @@ 25.0 1.0 0.0 + 1.0 realistic weather From 34eb640a7699835a9446941e0025005237e3d5eb Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Wed, 4 Jan 2012 21:53:25 +0000 Subject: [PATCH 10/18] Further updates to the Multiplayer Settings dialog - Now enabled even when no MP settings configured on command-line - Add Server Status button to launch the MP Server status URL - Minor layout cleanup. --- Nasal/gui.nas | 1 - gui/dialogs/multiplayer.xml | 28 +++++++++++++++++++++++----- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/Nasal/gui.nas b/Nasal/gui.nas index b661c4cd8..1d52fa82f 100644 --- a/Nasal/gui.nas +++ b/Nasal/gui.nas @@ -134,7 +134,6 @@ _setlistener("/sim/signals/nasal-dir-initialized", func { return 1; } menuEnable("autopilot", isAutopilotMenuEnabled() ); - menuEnable("multiplayer", multiplayer.is_active()); menuEnable("joystick-info", size(props.globals.getNode("/input/joysticks").getChildren("js"))); # frame-per-second display diff --git a/gui/dialogs/multiplayer.xml b/gui/dialogs/multiplayer.xml index 6ee1c17cd..dd30738b2 100644 --- a/gui/dialogs/multiplayer.xml +++ b/gui/dialogs/multiplayer.xml @@ -42,10 +42,8 @@ 16 16 - 1 27 2 - dialog-close @@ -66,6 +64,11 @@ left /sim/multiplay/callsign + + 02 + left + + 10 right @@ -74,6 +77,7 @@ host 11 + 2 350 /sim/multiplay/selected-server false @@ -90,7 +94,6 @@ mpserver12.flightgear.org (Amsterdam, Netherlands) mpserver13.flightgear.org (Grenoble, France) - @@ -99,7 +102,7 @@ 3 1 left - + @@ -124,6 +127,7 @@ + + + warning_text 4 - 23 + 04 - 0.7 - 0.7 - 0.7 + 1.0 + 0.4 + 0.4 1 - left - + center + @@ -431,20 +428,33 @@ dialog-close - true - From 2df253d8fcb4a13feb525656045a9d5bb5bfd983 Mon Sep 17 00:00:00 2001 From: Stuart Buchanan Date: Fri, 6 Jan 2012 00:03:11 +0000 Subject: [PATCH 15/18] Add controls for lat/lon format to HUD config dialog, and clean up old (commented out) controls from the menu bar itself. --- gui/dialogs/hud.xml | 60 ++++++++++++++++++++++++++++++++++++++++++++- gui/menubar.xml | 19 -------------- 2 files changed, 59 insertions(+), 20 deletions(-) diff --git a/gui/dialogs/hud.xml b/gui/dialogs/hud.xml index 60f64b13a..7d894ef2a 100644 --- a/gui/dialogs/hud.xml +++ b/gui/dialogs/hud.xml @@ -56,6 +56,52 @@ + + + + + center + + + + vbox + + left + /sim/gui/dialogs/hud/lon-lat-format-0 + 0 + true + + + nasal + + + + + left + /sim/gui/dialogs/hud/lon-lat-format-1 + 1 + + true + + nasal + + + + + left + /sim/gui/dialogs/hud/lon-lat-format-2 + 2 + true + + + nasal + + + + + + + hbox @@ -192,8 +238,20 @@ - + diff --git a/gui/menubar.xml b/gui/menubar.xml index 976c9336e..a952ecea4 100644 --- a/gui/menubar.xml +++ b/gui/menubar.xml @@ -36,15 +36,6 @@ dialog-show From 21e3c4d4931ce05470e3bd9a81f3f15bb2cf3008 Mon Sep 17 00:00:00 2001 From: BARANGER Emmanuel Date: Sat, 7 Jan 2012 00:09:41 +0100 Subject: [PATCH 16/18] Merge branch 'master' of git://gitorious.org/fg/fgdata From e3fabacfc57be9fe33bdcd7cd6e7366a32ad9ffe Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sat, 7 Jan 2012 09:23:26 +0100 Subject: [PATCH 17/18] #558: weather utility, performance drop on sim reset Do not install another set of listeners on _every_ sim reset. Also improve performance by removing a listener for a property which is written in _every_ loop anyway (don't waste another Nasal context). (Do we really need a _Nasal_ loop running at full speed just to convert a bunch of properties? It increases the load on the Nasal GC and is unconditionally active, even if all shaders are disabled etc). --- Nasal/weather-utility.nas | 89 +++++++++++++++++++++------------------ 1 file changed, 49 insertions(+), 40 deletions(-) diff --git a/Nasal/weather-utility.nas b/Nasal/weather-utility.nas index 90e735e61..6c93051b4 100644 --- a/Nasal/weather-utility.nas +++ b/Nasal/weather-utility.nas @@ -3,6 +3,9 @@ # be used with a tied property # +# TODO: Make this optional (when shaders disabled etc), or move computation +# away from Nasal. + #does what it says on the tin var clamp = func(v, min, max) { v < min ? min : v > max ? max : v } @@ -44,7 +47,44 @@ props.globals.initNode("/orientation/model/pitch-deg", 0, "DOUBLE"); props.globals.initNode("/orientation/model/roll-deg", 0, "DOUBLE"); +var update_waves = func (wind) { + var wind = 0; + var amp = 0; + var angle = 0; + var dangle = 0; + var freq = 0; + var factor = 0; + var sharp = 0; + + amp = Amp + 0.02 * wind; + amp = clamp(amp, 1.0, 2.0); + + setprop("/environment/wave/amp", amp); + + angle = Angle + 0.2 * wind; + setprop("/environment/wave/angle", angle); + + dangle = DAngle - 0.4 * wind; + setprop("/environment/wave/dangle", dangle); + + freq = Freq + 0.0008 * wind; + freq = clamp(freq, 0.01, 0.015); + setprop("/environment/wave/freq", freq); + + factor = Factor - 0.00001 * wind; + factor = clamp(factor, 0.0001, 0.0004); + setprop("/environment/wave/factor", factor); + + sharp = Sharp + 0.02 * wind; + sharp = clamp(sharp, 1.0, 2.0); + setprop("/environment/wave/sharp", sharp); +}; + +var is_initialized = 0; var initialize = func { + if (is_initialized) + return; # only install listeners once + is_initialized = 1; var wind_from_east_Node = props.globals.getNode("/environment/config/boundary/entry[0]/wind-from-east-fps", 1); wind_from_east_Node.setDoubleValue(0); @@ -72,48 +112,14 @@ var initialize = func { # ################## listeners #################### # - setlistener("/environment/sea/surface/wind-speed-kt", func (n) { - var wind = 0; - var amp = 0; - var angle = 0; - var dangle = 0; - var freq = 0; - var factor = 0; - var sharp = 0; - - wind = n.getValue(); - - amp = Amp + 0.02 * wind; - amp = clamp(amp, 1.0, 2.0); - - setprop("/environment/wave/amp", amp); - - angle = Angle + 0.2 * wind; - setprop("/environment/wave/angle", angle); - - dangle = DAngle - 0.4 * wind; - setprop("/environment/wave/dangle", dangle); - - freq = Freq + 0.0008 * wind; - freq = clamp(freq, 0.01, 0.015); - setprop("/environment/wave/freq", freq); - - factor = Factor - 0.00001 * wind; - factor = clamp(factor, 0.0001, 0.0004); - setprop("/environment/wave/factor", factor); - - sharp = Sharp + 0.02 * wind; - sharp = clamp(sharp, 1.0, 2.0); - setprop("/environment/wave/sharp", sharp); - - - }, - 1, - 0);# end listener +# installing a listener to /environment/sea/surface/wind-speed-kt does not make sense, +# since it's currently being written in _every_ update loop anyway). +# setlistener("/environment/sea/surface/wind-speed-kt", func(n) {update_waves(n.getValue())}, +# 1, +# 0);# end listener - print("weather util initialized ..."); + print("weather util initialized ..."); loop(); - }# end init var loop = func { @@ -132,6 +138,9 @@ var loop = func { value = getprop("/environment/config/boundary/entry[0]/wind-speed-kt"); setprop("/environment/sea/surface/wind-speed-kt", value); # print("wind-speed-kt ", getprop("/environment/sea/surface/wind-speed-kt")); + # Direct call to update wave settings (much more effective than using a listener, + # since it's written in every loop anyway. + update_waves(value); value = getprop("/environment/config/enabled"); setprop("/environment/sea/config/enabled", value); From fdcd319c9f1556985b47daea9a5977c47724ca99 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sat, 7 Jan 2012 09:42:36 +0100 Subject: [PATCH 18/18] Fix global weather dialog. Don't try to call "local_weather" when it isn't loaded. --- gui/dialogs/weather.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/dialogs/weather.xml b/gui/dialogs/weather.xml index e9055cfd4..5b56ade46 100644 --- a/gui/dialogs/weather.xml +++ b/gui/dialogs/weather.xml @@ -1759,7 +1759,7 @@ Fix for #567 --> nasal - +