diff --git a/gui/dialogs/AIcarrier.xml b/gui/dialogs/AIcarrier.xml new file mode 100644 index 000000000..fda87ccb0 --- /dev/null +++ b/gui/dialogs/AIcarrier.xml @@ -0,0 +1,221 @@ +<?xml version="1.0"?> + +<PropertyList> + <name>AIcarrier</name> + <modal>false</modal> + <layout>vbox</layout> + + + <!-- AI Carrier options --> + + <text> + <halign>left</halign> + <label>AI Carrier</label> + <color> + <red>0.9</red> + <green>0.9</green> + <blue>0.9</blue> + <alpha>1</alpha> + </color> + </text> + + <group> + <layout>hbox</layout> + <empty> + <pref-width>10</pref-width> + </empty> + + <group> + <layout>vbox</layout> + + <radio> + <halign>left</halign> + <label>Turn to launch course</label> + <property>/ai/models/carrier/controls/turn-to-launch-hdg</property> + <live>true</live> + <binding> + <command>dialog-apply</command> + </binding> + <binding> + <command>nasal</command> + <script> + var v = getprop("/ai/models/carrier/controls/turn-to-launch-hdg"); + foreach (var c; props.globals.getNode("/ai/models").getChildren("carrier")){ + c.getNode("controls/turn-to-launch-hdg").setBoolValue(v); + c.getNode("controls/turn-to-recovery-hdg").setBoolValue(0); + c.getNode("controls/turn-to-base-course").setBoolValue(0); + } + </script> + </binding> + </radio> + + <radio> + <halign>left</halign> + <label>Turn to recovery course</label> + <property>/ai/models/carrier/controls/turn-to-recovery-hdg</property> + <live>true</live> + <binding> + <command>dialog-apply</command> + </binding> + <binding> + <command>nasal</command> + <script> + var v = getprop("/ai/models/carrier/controls/turn-to-recovery-hdg"); + foreach (var c; props.globals.getNode("/ai/models").getChildren("carrier")){ + c.getNode("controls/turn-to-recovery-hdg").setBoolValue(v); + c.getNode("controls/turn-to-launch-hdg").setBoolValue(0); + c.getNode("controls/turn-to-base-course").setBoolValue(0); + } + </script> + </binding> + </radio> + + <radio> + <halign>left</halign> + <label>Turn to base course</label> + <property>/ai/models/carrier/controls/turn-to-base-course</property> + <live>true</live> + <binding> + <command>dialog-apply</command> + </binding> + <binding> + <command>nasal</command> + <script> + var v = getprop("/ai/models/carrier/controls/turn-to-base-course"); + foreach (var c; props.globals.getNode("/ai/models").getChildren("carrier")){ + c.getNode("controls/turn-to-base-course").setBoolValue(v); + c.getNode("controls/turn-to-recovery-hdg").setBoolValue(0); + c.getNode("controls/turn-to-launch-hdg").setBoolValue(0); + } + </script> + </binding> + </radio> + + <checkbox> + <halign>left</halign> + <label>Operate Deck Elevators</label> + <property>/ai/models/carrier/controls/elevators</property> + <binding> + <command>dialog-apply</command> + </binding> + <binding> + <command>nasal</command> + <script> + var v = getprop("/ai/models/carrier/controls/elevators"); + foreach (var c; props.globals.getNode("/ai/models").getChildren("carrier")) + c.getNode("controls/elevators").setBoolValue(v); + </script> + </binding> + </checkbox> + + <checkbox> + <halign>left</halign> + <label>Enable LSO Communications</label> + <property>/sim/current-view/lso-commentary</property> + <binding> + <command>dialog-apply</command> + </binding> + </checkbox> + + <checkbox> + <halign>left</halign> + <label>Enable Deck Park</label> + <property>/sim/current-view/deck-park</property> + <binding> + <command>dialog-apply</command> + </binding> + </checkbox> + + <checkbox> + <halign>left</halign> + <label>Deck Lights</label> + <property>/ai/models/carrier/controls/lighting/deck-lights</property> + <binding> + <command>dialog-apply</command> + </binding> + <binding> + <command>nasal</command> + <script> + var v = getprop("/ai/models/carrier/controls/lighting/deck-lights"); + foreach (var c; props.globals.getNode("/ai/models").getChildren("carrier")) + c.getNode("controls/lighting/deck-lights",1).setBoolValue(v); + </script> + </binding> + </checkbox> + + <text> + <halign>left</halign> + <label>Discrete Flightdeck Floodlights (Red)</label> + </text> + + <slider> + <halign>left</halign> + <width>75</width> + <height>25</height> + <property>/ai/models/carrier/controls/lighting/flood-lights-red-norm</property> + <binding> + <command>nasal</command> + <script> + var v = getprop("/ai/models/carrier/controls/lighting/flood-lights-red-norm"); + foreach (var c; props.globals.getNode("/ai/models").getChildren("carrier")) + c.getNode("controls/lighting/flood-lights-red-norm",1).setDoubleValue(v); + </script> + </binding> + </slider> + + </group> + + <empty> + <stretch>true</stretch> + </empty> + </group> + + <group> + <layout>hbox</layout> + <default-padding>6</default-padding> + <empty> + <stretch>true</stretch> + </empty> + + <button> + <legend>OK</legend> + <default>true</default> + <equal>true</equal> + <binding> + <command>dialog-apply</command> + </binding> + <binding> + <command>dialog-close</command> + </binding> + </button> + + <button> + <legend>Apply</legend> + <equal>true</equal> + <binding> + <command>dialog-apply</command> + </binding> + </button> + + <button> + <legend>Reset</legend> + <equal>true</equal> + <binding> + <command>dialog-update</command> + </binding> + </button> + + <button> + <legend>Cancel</legend> + <equal>true</equal> + <key>Esc</key> + <binding> + <command>dialog-close</command> + </binding> + </button> + + <empty> + <stretch>true</stretch> + </empty> + </group> +</PropertyList> \ No newline at end of file diff --git a/gui/dialogs/ai.xml b/gui/dialogs/ai.xml new file mode 100644 index 000000000..bba1c22eb --- /dev/null +++ b/gui/dialogs/ai.xml @@ -0,0 +1,74 @@ +<?xml version="1.0"?> + +<!-- General ATC/AI options --> + +<PropertyList> + <name>ai</name> + <modal>false</modal> + <layout>vbox</layout> + + + + <button> + <legend>-</legend> + <pref-width>16</pref-width> + <pref-height>16</pref-height> + <halign>right</halign> + <border>2</border> + <binding> + <command>dialog-close</command> + </binding> + </button> + + <text> + <!-- <label>ATC/AI Options</label> --> + <label>AI Options</label> + </text> + + <hrule/> + + <group> + <layout>hbox</layout> + <empty> + <pref-width>10</pref-width> + </empty> + + <group> + <layout>vbox</layout> + + <!-- <checkbox> + <halign>left</halign> + <label>Enable ATC</label> + <property>/sim/atc/enabled</property> + </checkbox> --> + + <checkbox> + <halign>left</halign> + <label>Enable AI traffic</label> + <property>/sim/ai-traffic/enabled</property> + </checkbox> + + <group> + <layout>hbox</layout> + + <text> + <halign>left</halign> + <label>AI traffic density:</label> + </text> + + <combo> + <halign>left</halign> + <property>/sim/ai-traffic/level</property> + <value>1</value> + <value>2</value> + <value>3</value> + </combo> + </group> + + </group> + + <empty> + <stretch>true</stretch> + </empty> + </group> +</PropertyList> \ No newline at end of file diff --git a/gui/dialogs/view.xml b/gui/dialogs/view.xml index d1c1a2ad7..b105ee1db 100644 --- a/gui/dialogs/view.xml +++ b/gui/dialogs/view.xml @@ -6,7 +6,7 @@ <layout>vbox</layout> <text> - <label>Configure Active Views</label> + <label>Choose Active Views</label> </text> <hrule/> diff --git a/gui/menubar.xml b/gui/menubar.xml index 8126aa4ea..8dbbc8918 100644 --- a/gui/menubar.xml +++ b/gui/menubar.xml @@ -1,10 +1,11 @@ +<?xml version="1.0"?> <PropertyList> <menu> - <label>File</label> + <label>General</label> <item> - <label>Load</label> + <label>Load Flight (Shift-F1)</label> <binding> <command>nasal</command> <script>gui.load_flight()</script> @@ -12,33 +13,51 @@ </item> <item> - <label>Save</label> + <label>Save Flight (Shift-F2)</label> <binding> <command>nasal</command> <script>gui.save_flight()</script> </binding> </item> - + <!-- <item> - <label>Reset</label> + <label>Scenario</label> + <binding> + <command>dialog-show</command> + <dialog-name>scenario</dialog-name> + </binding> + </item> +--> + <item> + <label>Reset (Shift-Esc)</label> <binding> <command>reset</command> </binding> </item> - <item> + <!-- <item> + <label>Set Lat/Lon Format</label> + <binding> + <command>nasal</command> + <script> + var f = getprop(var d = "/sim/lon-lat-format") + 1; + setprop(d, f < 0 ? 0 : f > 2 ? 0 : f); + </script> + </binding> + </item> <label>High-Res Snapshot</label> <enabled>false</enabled> <binding> <command>hires-screen-capture</command> </binding> </item> - +--> <item> - <label>Snapshot</label> + <label>Screenshot (F3)</label> <binding> <command>nasal</command> <script> + gui.popdown(); var success = fgcommand("screen-capture"); var path = getprop("/sim/paths/screenshot-last"); if (success) @@ -48,14 +67,27 @@ </script> </binding> </item> + <!-- + <item> + <label>Last snapshot</label> + <binding> + <command>nasal</command> + <script> + var path = getprop("/sim/paths/screenshot-last"); + if (path != nil) gui.popupTip(...) else gui.popupTip("no screenshots yet in this session") + + gui.popupTip("Screenshot written to '" ~ path ~ "'"); + </script> + </binding> + </item> <item> - <label>Print Screen</label> + <label>Print Screen (F3)</label> <binding> <command>old-print-dialog</command> </binding> </item> - +--> <item> <label>Sound Configuration</label> <binding> @@ -65,23 +97,7 @@ </item> <item> - <label>Browse Internal Properties</label> - <binding> - <command>nasal</command> - <script>gui.property_browser()</script> - </binding> - </item> - - <item> - <label>Logging</label> - <binding> - <command>dialog-show</command> - <dialog-name>logging</dialog-name> - </binding> - </item> - - <item> - <label>Quit</label> + <label>Quit (Esc)</label> <binding> <command>dialog-show</command> <dialog-name>exit</dialog-name> @@ -109,6 +125,16 @@ </item> <item> + <!-- <item> + <label>Set Lat/Lon Format</label> + <binding> + <command>nasal</command> + <script> + var f = getprop(var d = "/sim/lon-lat-format") + 1; + setprop(d, f < 0 ? 0 : f > 2 ? 0 : f); + </script> + </binding> + </item> --> <label>View Options</label> <binding> <command>dialog-show</command> @@ -124,6 +150,14 @@ </binding> </item> + <item> + <label>Adjust LOD Ranges</label> + <binding> + <command>dialog-show</command> + <dialog-name>static-lod</dialog-name> + </binding> + </item> + <item> <label>Adjust View Position</label> <binding> @@ -141,28 +175,24 @@ </item> <item> - <label>Instant Replay</label> + <label>Toggle Glide Slope Tunnel</label> + <binding> + <command>nasal</command> + <script> + var p = "/sim/rendering/glide-slope-tunnel"; + setprop(p, var i = !getprop(p)); + gui.popupTip("Glide slope tunnel " ~ (i ? "enabled" : "disabled")); + </script> + </binding> + </item> + + <item> + <label>Instant Replay (Ctrl-R)</label> <binding> <command>dialog-show</command> <dialog-name>replay</dialog-name> </binding> </item> - - <item> - <label>Adjust LOD Ranges</label> - <binding> - <command>dialog-show</command> - <dialog-name>static-lod</dialog-name> - </binding> - </item> - - <item> - <label>OSG Display Settings</label> - <binding> - <command>dialog-show</command> - <dialog-name>osg-display-settings</dialog-name> - </binding> - </item> </menu> <menu> @@ -193,7 +223,7 @@ </item> <item> - <label>Random Attitude</label> + <label>Random Attitude</label>H <binding> <command>property-assign</command> <property>/sim/presets/trim</property> @@ -234,7 +264,7 @@ <name>autopilot</name> <item> - <label>Autopilot Settings</label> + <label>Autopilot Settings (F11)</label> <binding> <command>dialog-show</command> <dialog-name>autopilot</dialog-name> @@ -249,45 +279,42 @@ </binding> </item> - <item> + <item> <label>Previous Waypoint</label> <binding> <command>nasal</command> <script>setprop("/autopilot/route-manager/input", "@previous")</script> </binding> </item> - - <item> + + <item> <label>Next Waypoint</label> <binding> <command>nasal</command> <script>setprop("/autopilot/route-manager/input", "@next")</script> </binding> </item> - - <item> - <label>Set Lat/Lon Format</label> - <binding> - <command>nasal</command> - <script> - var f = getprop(var d = "/sim/lon-lat-format") + 1; - setprop(d, f < 0 ? 0 : f > 2 ? 0 : f); - </script> - </binding> - </item> - - <item> - <label>Map</label> - <binding> - <command>dialog-show</command> - <dialog-name>map</dialog-name> - </binding> - </item> </menu> <menu> <label>Environment</label> + <!--<item> + <label>Weather Scenario</label> + <binding> + <command>dialog-show</command> + <dialog-name>weather_scenario</dialog-name> + </binding> + </item> + + <item> + <label>Weather Conditions</label> + <binding> + <command>dialog-show</command> + <dialog-name>weather</dialog-name> + </binding> + </item>--> + <item> <label>Global Weather</label> <binding> @@ -296,30 +323,23 @@ </binding> </item> - <item> - <label>Local Weather</label> - <binding> - <command>dialog-show</command> - <dialog-name>local_weather</dialog-name> - </binding> - </item> - - <item> - <label>Local Weather Tiles</label> - <binding> - <command>dialog-show</command> - <dialog-name>local_weather_tiles</dialog-name> - </binding> - </item> - - <item> - <label>Time Settings</label> + <item> + <label>Local Weather</label> <binding> <command>dialog-show</command> - <dialog-name>timeofday</dialog-name> + <dialog-name>local_weather</dialog-name> </binding> </item> + <item> + <label>Local Weather Tiles</label> + <binding> + <command>dialog-show</command> + <dialog-name>local_weather_tiles</dialog-name> + </binding> + </item> + + <item> <label>Wildfire Settings</label> <binding> @@ -333,6 +353,22 @@ <menu> <label>Equipment</label> + <item> + <label>Map</label> + <binding> + <command>dialog-show</command> + <dialog-name>map</dialog-name> + </binding> + </item> + + <item> + <label>Stopwatch</label> + <binding> + <command>dialog-show</command> + <dialog-name>stopwatch-dialog</dialog-name> + </binding> + </item> + <item> <label>Fuel and Payload</label> <name>fuel-and-payload</name> @@ -343,7 +379,7 @@ </item> <item> - <label>Radio Settings</label> + <label>Radio Settings (F12)</label> <binding> <command>dialog-show</command> <dialog-name>radios</dialog-name> @@ -366,12 +402,10 @@ </binding> </item> + + <item> - <label>Stopwatch</label> - <binding> - <command>dialog-show</command> - <dialog-name>stopwatch-dialog</dialog-name> - </binding> + <label> --- Failures ---</label> </item> <item> @@ -401,24 +435,25 @@ <menu> <label>ATC/AI</label> - <item> - <label>Frequencies</label> + <label>ATC Options</label> + <binding> + <command>dialog-show</command> + <dialog-name>ai</dialog-name> + </binding> + </item> + <!-- Not working at present + <item> + <label>ATC Services in range</label> <binding> <command>ATC-freq-search</command> </binding> </item> - <item> - <label>Options</label> - <binding> - <command>dialog-show</command> - <dialog-name>atc-ai</dialog-name> - </binding> - </item> + --> <item> - <label>Tanker</label> + <label>AI Tanker</label> <name>tanker</name> <enabled>false</enabled> <binding> @@ -428,20 +463,31 @@ </item> <item> - <label>Scenario</label> + <label>AI Carrier Options</label> + <binding> + <command>dialog-show</command> + <dialog-name>AIcarrier</dialog-name> + </binding> + </item> + + <item> + <label>AI Scenario Select - takes effect on next run </label> <binding> <command>dialog-show</command> <dialog-name>scenario</dialog-name> </binding> </item> + + + </menu> <menu> - <label>Network</label> + <label>Multiplayer</label> <name>multiplayer</name> <item> - <label>Chat</label> + <label>Chat Dialog</label> <binding> <command>dialog-show</command> <dialog-name>chat-full</dialog-name> @@ -470,13 +516,15 @@ <command>nasal</command> <script> if (contains(globals, "MPCarriers")) { - MPCarriers.carrier_dialog.show(); + MPCarriers.carrier_dialog.show(); } else { - gui.popupTip("No MPCarriers around at the moment."); + gui.popupTip("No MPCarriers around at the moment."); } </script> </binding> </item> + + </menu> <menu> @@ -513,13 +561,13 @@ </binding> </item> - <item> - <label>Reload Network</label> - <binding> - <command>reinit</command> - <subsystem>io</subsystem> - </binding> - </item> + <item> + <label>Reload Network</label> + <binding> + <command>reinit</command> + <subsystem>io</subsystem> + </binding> + </item> <item> <label>Nasal Console</label> @@ -577,20 +625,42 @@ <step type="int">1</step> </binding> </item> + + <item> + <label>Browse Internal Properties</label> + <binding> + <command>nasal</command> + <script>gui.property_browser()</script> + </binding> + </item> + + <item> + <label>Logging</label> + <binding> + <command>dialog-show</command> + <dialog-name>logging</dialog-name> + </binding> + </item> + + + + + <item> + <label>OSG Display Settings</label> + <binding> + <command>dialog-show</command> + <dialog-name>osg-display-settings</dialog-name> + </binding> + </item> </menu> + <menu> <label>Help</label> + <item> - <label>About</label> - <binding> - <command>dialog-show</command> - <dialog-name>about</dialog-name> - </binding> - </item> - <item> - <label>Help</label> + <label>Help (opens in browser)</label> <binding> <command>old-help-dialog</command> </binding> @@ -606,7 +676,11 @@ </item> <item> - <label>Basic Keys</label> + <label> --- Key Reference ---</label> + </item> + + <item> + <label>Basic Simulator Keys</label> <binding> <command>nasal</command> <script>gui.showHelpDialog("/sim/help/basic")</script> @@ -622,7 +696,7 @@ </item> <item> - <label>Aircraft Help</label> + <label> Current Aircraft Keys (?)</label> <binding> <command>nasal</command> <script>gui.showHelpDialog("/sim/help")</script> @@ -630,15 +704,7 @@ </item> <item> - <label>Toggle Glide Slope Tunnel</label> - <binding> - <command>nasal</command> - <script> - var p = "/sim/rendering/glide-slope-tunnel"; - setprop(p, var i = !getprop(p)); - gui.popupTip("Glide slope tunnel " ~ (i ? "enabled" : "disabled")); - </script> - </binding> + <label> ---------------------</label> </item> <item> @@ -659,6 +725,14 @@ <script>tutorial.stopTutorial()</script> </binding> </item> + + <item> + <label>About</label> + <binding> + <command>dialog-show</command> + <dialog-name>about</dialog-name> + </binding> + </item> </menu> </PropertyList> diff --git a/keyboard.xml b/keyboard.xml index e4010ac4d..d61f3d731 100644 --- a/keyboard.xml +++ b/keyboard.xml @@ -272,7 +272,7 @@ top down before the key bindings are parsed. <key n="32"> <name>SPACE</name> - <desc>PTT - Push To Talk (via VoIP)</desc> + <desc>PTT - Push To Talk (via FGCom)</desc> <binding> <command>nasal</command> <script>space(1, modifiers.getValue())</script>