1
0
Fork 0

Merge branch 'next' of ssh://git.code.sf.net/u/deltaecho/flightgear_fgdata into next

This commit is contained in:
Delta Echo 2019-07-30 07:43:30 +02:00
commit 41b1561b9d
33 changed files with 46952 additions and 33892 deletions

View file

@ -1,7 +1,5 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!-- CRJ-100LR replaced by Aircraft/CRJ-200/CRJ-200-Lufthansa.xml --> <!-- CRJ-100LR replaced by Aircraft/CRJ-200/CRJ-200-Lufthansa.xml -->
<trafficlist> <trafficlist>
<aircraft> <aircraft>
<model>Aircraft/CRJ-200/CRJ-200-Lufthansa.xml</model> <model>Aircraft/CRJ-200/CRJ-200-Lufthansa.xml</model>

View file

@ -1,9 +1,7 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<!-- Author Marcin Kuzniar - Timetable JUN 2019 -->
<!-- Author Marcin Kuzniar - Timetable APR 2019 -->
<trafficlist> <trafficlist>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -16,8 +14,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJK</registration> <registration>I-ADJK</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -30,8 +28,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJL</registration> <registration>I-ADJL</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -44,8 +42,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJM</registration> <registration>I-ADJM</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -58,8 +56,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJN</registration> <registration>I-ADJN</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -72,8 +70,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJO</registration> <registration>I-ADJO</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -86,8 +84,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJP</registration> <registration>I-ADJP</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -100,8 +98,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJQ</registration> <registration>I-ADJQ</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -114,8 +112,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJR</registration> <registration>I-ADJR</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -128,8 +126,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJS</registration> <registration>I-ADJS</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -142,8 +140,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJT</registration> <registration>I-ADJT</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -156,8 +154,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJU</registration> <registration>I-ADJU</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -170,8 +168,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJV</registration> <registration>I-ADJV</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -184,8 +182,8 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJW</registration> <registration>I-ADJW</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<aircraft> <aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model> <model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery> <livery>DLA</livery>
<airline>DLA</airline> <airline>DLA</airline>
@ -198,7 +196,7 @@
<performance-class>jet_transport</performance-class> <performance-class>jet_transport</performance-class>
<registration>I-ADJX</registration> <registration>I-ADJX</registration>
<heavy>false</heavy> <heavy>false</heavy>
</aircraft> </aircraft>
<flight> <flight>
<callsign>EN8010</callsign> <callsign>EN8010</callsign>
<required-aircraft>E95-DLA</required-aircraft> <required-aircraft>E95-DLA</required-aircraft>
@ -2299,6 +2297,36 @@
</arrival> </arrival>
<repeat>24Hr</repeat> <repeat>24Hr</repeat>
</flight> </flight>
<flight>
<callsign>LH1668</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>08:45:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>LRCL</port>
<time>10:25:00</time>
</arrival>
<repeat>24Hr</repeat>
</flight>
<flight>
<callsign>LH1669</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>LRCL</port>
<time>11:10:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>EDDM</port>
<time>12:55:00</time>
</arrival>
<repeat>24Hr</repeat>
</flight>
<flight> <flight>
<callsign>LH1670</callsign> <callsign>LH1670</callsign>
<required-aircraft>E95-DLA</required-aircraft> <required-aircraft>E95-DLA</required-aircraft>
@ -2779,6 +2807,36 @@
</arrival> </arrival>
<repeat>24Hr</repeat> <repeat>24Hr</repeat>
</flight> </flight>
<flight>
<callsign>LH1948</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>09:55:00</time>
</departure>
<cruise-alt>360</cruise-alt>
<arrival>
<port>LIMJ</port>
<time>11:05:00</time>
</arrival>
<repeat>24Hr</repeat>
</flight>
<flight>
<callsign>LH1949</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>LIMJ</port>
<time>11:40:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDM</port>
<time>12:50:00</time>
</arrival>
<repeat>24Hr</repeat>
</flight>
<flight> <flight>
<callsign>LH1964</callsign> <callsign>LH1964</callsign>
<required-aircraft>E95-DLA</required-aircraft> <required-aircraft>E95-DLA</required-aircraft>
@ -3139,6 +3197,66 @@
</arrival> </arrival>
<repeat>WEEK</repeat> <repeat>WEEK</repeat>
</flight> </flight>
<flight>
<callsign>LH2286</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>09:25:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>EBBR</port>
<time>10:45:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2287</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EBBR</port>
<time>11:25:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDM</port>
<time>12:40:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2290</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>16:05:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>EBBR</port>
<time>17:25:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2291</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EBBR</port>
<time>18:05:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDM</port>
<time>19:15:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight> <flight>
<callsign>LH2292</callsign> <callsign>LH2292</callsign>
<required-aircraft>E95-DLA</required-aircraft> <required-aircraft>E95-DLA</required-aircraft>
@ -3169,6 +3287,96 @@
</arrival> </arrival>
<repeat>WEEK</repeat> <repeat>WEEK</repeat>
</flight> </flight>
<flight>
<callsign>LH2322</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>16:45:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>ELLX</port>
<time>17:50:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2323</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>ELLX</port>
<time>18:30:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDM</port>
<time>19:35:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2428</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>07:30:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>ESGG</port>
<time>09:20:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2429</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>ESGG</port>
<time>10:00:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>EDDM</port>
<time>11:45:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2430</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>14:20:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>ESGG</port>
<time>16:10:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2431</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>ESGG</port>
<time>16:50:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>EDDM</port>
<time>18:35:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight> <flight>
<callsign>LH2488</callsign> <callsign>LH2488</callsign>
<required-aircraft>E95-DLA</required-aircraft> <required-aircraft>E95-DLA</required-aircraft>
@ -3177,7 +3385,7 @@
<port>EDDM</port> <port>EDDM</port>
<time>6/12:25:00</time> <time>6/12:25:00</time>
</departure> </departure>
<cruise-alt>370</cruise-alt> <cruise-alt>380</cruise-alt>
<arrival> <arrival>
<port>EGJJ</port> <port>EGJJ</port>
<time>6/14:30:00</time> <time>6/14:30:00</time>
@ -3192,15 +3400,41 @@
<port>EGJJ</port> <port>EGJJ</port>
<time>6/15:15:00</time> <time>6/15:15:00</time>
</departure> </departure>
<cruise-alt>380</cruise-alt> <cruise-alt>370</cruise-alt>
<arrival> <arrival>
<port>EDDM</port> <port>EDDM</port>
<time>6/17:05:00</time> <time>6/17:05:00</time>
</arrival> </arrival>
<repeat>WEEK</repeat> <repeat>WEEK</repeat>
</flight> </flight>
<flight>
<callsign>LH2488</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDM</port>
<time>0/12:25:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>EGJJ</port>
<time>0/14:30:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>LH2489</callsign>
<required-aircraft>E95-DLA</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EGJJ</port>
<time>0/15:15:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDM</port>
<time>0/17:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
</trafficlist> </trafficlist>

File diff suppressed because it is too large Load diff

View file

@ -8,7 +8,7 @@
<grain-texture-enabled type="int">1</grain-texture-enabled> <grain-texture-enabled type="int">1</grain-texture-enabled>
<grain-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification> <grain-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification>
<texture n="7"> <texture n="7">
<image>Models/Effects/exterior/dirt.png</image> <image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type> <type>2d</type>
<filter>linear-mipmap-linear</filter> <filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s> <wrap-s>repeat</wrap-s>

View file

@ -7,7 +7,7 @@
<grain-texture-enabled type="int">1</grain-texture-enabled> <grain-texture-enabled type="int">1</grain-texture-enabled>
<grain-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification> <grain-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification>
<texture n="7"> <texture n="7">
<image>Models/Effects/exterior/dirt.png</image> <image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type> <type>2d</type>
<filter>linear-mipmap-linear</filter> <filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s> <wrap-s>repeat</wrap-s>

View file

@ -7,7 +7,7 @@
<grain-texture-enabled type="int">1</grain-texture-enabled> <grain-texture-enabled type="int">1</grain-texture-enabled>
<grain-magnification type="float"><use>/environment/aircraft-effects/dirt-edge</use></grain-magnification> <grain-magnification type="float"><use>/environment/aircraft-effects/dirt-edge</use></grain-magnification>
<texture n="7"> <texture n="7">
<image>Models/Effects/exterior/dirt.png</image> <image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type> <type>2d</type>
<filter>linear-mipmap-linear</filter> <filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s> <wrap-s>repeat</wrap-s>

View file

@ -7,7 +7,7 @@
<grain-texture-enabled type="int">1</grain-texture-enabled> <grain-texture-enabled type="int">1</grain-texture-enabled>
<grain-magnification type="float"><use>/environment/aircraft-effects/dirt-tail</use></grain-magnification> <grain-magnification type="float"><use>/environment/aircraft-effects/dirt-tail</use></grain-magnification>
<texture n="7"> <texture n="7">
<image>Models/Effects/exterior/dirt.png</image> <image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type> <type>2d</type>
<filter>linear-mipmap-linear</filter> <filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s> <wrap-s>repeat</wrap-s>

View file

@ -7,7 +7,7 @@
<grain-texture-enabled type="int">1</grain-texture-enabled> <grain-texture-enabled type="int">1</grain-texture-enabled>
<grain-magnification type="float"><use>/environment/aircraft-effects/dirt-wing</use></grain-magnification> <grain-magnification type="float"><use>/environment/aircraft-effects/dirt-wing</use></grain-magnification>
<texture n="7"> <texture n="7">
<image>Models/Effects/exterior/dirt.png</image> <image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type> <type>2d</type>
<filter>linear-mipmap-linear</filter> <filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s> <wrap-s>repeat</wrap-s>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

@ -35,7 +35,7 @@
<grain-texture-enabled type="int">1</grain-texture-enabled> <grain-texture-enabled type="int">1</grain-texture-enabled>
<grain-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification> <grain-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification>
<texture n="7"> <texture n="7">
<image>Models/Effects/exterior/dirt.png</image> <image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type> <type>2d</type>
<filter>linear-mipmap-linear</filter> <filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s> <wrap-s>repeat</wrap-s>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

@ -2,8 +2,8 @@
<PropertyList> <PropertyList>
<!-- <!--
Bendix/King KX155/165 COMM/NAV radio Bendix/King KX155/165 COM/NAV radio
Use this instrument as COMM1/NAV1 radio Use this instrument as COM1/NAV1 radio
Created by Torsten Dreyer, October 2008 Created by Torsten Dreyer, October 2008
@ -39,6 +39,7 @@
<comm-dial-mhz>instrumentation/comm[0]/frequencies/dial-mhz</comm-dial-mhz> <comm-dial-mhz>instrumentation/comm[0]/frequencies/dial-mhz</comm-dial-mhz>
<comm-volume>instrumentation/comm[0]/volume-selected</comm-volume> <comm-volume>instrumentation/comm[0]/volume-selected</comm-volume>
<comm-test>instrumentation/comm[0]/test-btn</comm-test> <comm-test>instrumentation/comm[0]/test-btn</comm-test>
<channel-mode-selector>instrumentation/comm[0]/channel-mode-selector</channel-mode-selector>
<nav-frq-swp>instrumentation/nav[0]/frq-swap-btn</nav-frq-swp> <nav-frq-swp>instrumentation/nav[0]/frq-swap-btn</nav-frq-swp>
<nav-frq-selected>instrumentation/nav[0]/frequencies/selected-mhz</nav-frq-selected> <nav-frq-selected>instrumentation/nav[0]/frequencies/selected-mhz</nav-frq-selected>
<nav-frq-standby>instrumentation/nav[0]/frequencies/standby-mhz</nav-frq-standby> <nav-frq-standby>instrumentation/nav[0]/frequencies/standby-mhz</nav-frq-standby>
@ -52,41 +53,40 @@
<effect> <effect>
<inherits-from>../../../../Effects/interior/lm-kx165-1r</inherits-from> <inherits-from>../../../../Effects/interior/lm-kx165-1r</inherits-from>
<object-name>CommKnobs</object-name> <object-name>COMknobKHZ</object-name>
<object-name>CommVolume</object-name> <object-name>COMknobMHZ</object-name>
<object-name>NavKnobs</object-name> <object-name>COMxfer</object-name>
<object-name>NavVolume</object-name> <object-name>COMvol</object-name>
<object-name>CommKHz</object-name> <object-name>COMchan</object-name>
<object-name>CommMHz</object-name> <object-name>NAVknobKHZ</object-name>
<object-name>CommToggle</object-name> <object-name>NAVknobMHZ</object-name>
<object-name>CommVolume</object-name> <object-name>NAVxfer</object-name>
<object-name>NavKHz</object-name> <object-name>NAVmode</object-name>
<object-name>NavMHz</object-name> <object-name>NAVvol</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
</effect> </effect>
<effect> <effect>
<inherits-from>../../../../Effects/interior/lm-kx165-1</inherits-from> <inherits-from>../../../../Effects/interior/lm-kx165-1</inherits-from>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<object-name>NavToggle</object-name> <object-name>COMchan</object-name>
<object-name>Chassis</object-name> <object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>KX165</object-name>
</effect> </effect>
<effect> <effect>
<inherits-from>../../../../Effects/interior/c172p-interior-radiance</inherits-from> <inherits-from>../../../../Effects/interior/c172p-interior-radiance</inherits-from>
<object-name>CommUse</object-name>
<object-name>CommStby</object-name>
<object-name>NavUse</object-name>
<object-name>NavStby</object-name>
<object-name>CommStby100K</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name> <object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name> <object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name> <object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name> <object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name> <object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name> <object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name> <object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name> <object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name> <object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name> <object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name> <object-name>NavStby100K</object-name>
@ -101,25 +101,23 @@
<object-name>NavUse10M</object-name> <object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name> <object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name> <object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<object-name>Screen</object-name>
</effect> </effect>
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommToggle</object-name> <object-name>KX165</object-name>
<object-name>NavToggle</object-name> <object-name>COMknobKHZ</object-name>
<object-name>Chassis</object-name> <object-name>COMknobMHZ</object-name>
<object-name>CommKnobs</object-name> <object-name>COMxfer</object-name>
<object-name>CommVolume</object-name> <object-name>COMchan</object-name>
<object-name>NavKnobs</object-name> <object-name>COMvol</object-name>
<object-name>NavVolume</object-name> <object-name>NAVknobKHZ</object-name>
<object-name>CommKHz</object-name> <object-name>NAVknobMHZ</object-name>
<object-name>CommMHz</object-name> <object-name>NAVxfer</object-name>
<object-name>CommToggle</object-name> <object-name>NAVmode</object-name>
<object-name>CommVolume</object-name> <object-name>NAVvol</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<condition> <condition>
<not> <not>
<property>/sim/rendering/shaders/skydome</property> <property>/sim/rendering/shaders/skydome</property>
@ -132,99 +130,80 @@
</emission> </emission>
</animation> </animation>
<animation>
<object-name>CommKnobs</object-name>
<object-name>CommKHz</object-name>
<object-name>CommMHz</object-name>
<object-name>CommToggle</object-name>
<object-name>CommVolume</object-name>
<object-name>CommStby</object-name>
<object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavKnobs</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<object-name>NavStby</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>Chassis</object-name>
</animation>
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommKnobs</object-name> <object-name>COMknobKHZ</object-name>
<object-name>CommKHz</object-name> <object-name>COMknobMHZ</object-name>
<object-name>CommMHz</object-name> <object-name>COMxfer</object-name>
<object-name>CommToggle</object-name> <object-name>COMchan</object-name>
<object-name>CommVolume</object-name> <object-name>COMvol</object-name>
<object-name>CommStby</object-name>
<object-name>CommStby100K</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name> <object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name> <object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name> <object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name> <object-name>CommStbyDot</object-name>
<object-name>CommUse</object-name>
<object-name>CommUse100K</object-name> <object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name> <object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name> <object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name> <object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name> <object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name> <object-name>CommUseDot</object-name>
<object-name>NavKnobs</object-name> <object-name>NAVknobKHZ</object-name>
<object-name>NavKHz</object-name> <object-name>NAVknobMHZ</object-name>
<object-name>NavMHz</object-name> <object-name>NAVxfer</object-name>
<object-name>NavToggle</object-name> <object-name>NAVmode</object-name>
<object-name>NavVolume</object-name> <object-name>NAVvol</object-name>
<object-name>NavStby</object-name>
<object-name>NavStby100K</object-name> <object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name> <object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name> <object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name> <object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name> <object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name> <object-name>NavStbyDot</object-name>
<object-name>NavUse</object-name>
<object-name>NavUse100K</object-name> <object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name> <object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name> <object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name> <object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name> <object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name> <object-name>NavUseDot</object-name>
<object-name>Chassis</object-name> <object-name>KX165Line</object-name>
<object-name>KX165</object-name>
<object-name>Screen</object-name>
<property-base>/sim/instrumentation/comm[0]</property-base> <property-base>/sim/instrumentation/comm[0]</property-base>
<texture-prop>texture-file</texture-prop> <texture-prop>texture-file</texture-prop>
</animation> </animation>
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>CommUse</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby</object-name> <object-name>CommStby100M</object-name>
<object-name>NavUse</object-name> <object-name>CommStby10K</object-name>
<object-name>NavStby</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<condition> <condition>
<property>/sim/model/c172p/lighting/comm0-power</property> <property>/sim/model/c172p/lighting/comm0-power</property>
</condition> </condition>
@ -232,8 +211,10 @@
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<object-name>NavToggle</object-name> <object-name>COMchan</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<condition> <condition>
<not> <not>
<property>sim/rendering/rembrandt/enabled</property> <property>sim/rendering/rembrandt/enabled</property>
@ -249,10 +230,33 @@
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommUse</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby</object-name> <object-name>CommStby100M</object-name>
<object-name>NavUse</object-name> <object-name>CommStby10K</object-name>
<object-name>NavStby</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<condition> <condition>
<and> <and>
<not> <not>
@ -271,20 +275,45 @@
<factor-prop>/sim/model/c172p/lighting/comm0</factor-prop> <factor-prop>/sim/model/c172p/lighting/comm0</factor-prop>
</emission> </emission>
</animation> </animation>
<effect> <effect>
<inherits-from>Effects/model-transparent</inherits-from> <inherits-from>Effects/model-transparent</inherits-from>
<object-name>CommUse</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby</object-name> <object-name>CommStby100M</object-name>
<object-name>NavUse</object-name> <object-name>CommStby10K</object-name>
<object-name>NavStby</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<object-name>Screen</object-name>
</effect> </effect>
<!-- Comm part --> <!-- Comm part -->
<animation> <animation>
<type>translate</type> <type>translate</type>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<property alias="../../params/comm-frq-swp"/> <property alias="../../params/comm-frq-swp"/>
<factor>-0.004</factor> <factor>-0.003</factor>
<axis> <axis>
<x>1</x> <x>1</x>
<y>0</y> <y>0</y>
@ -362,6 +391,20 @@
</axis> </axis>
</animation> </animation>
<animation>
<type>textranslate</type>
<object-name>CommUse1K</object-name>
<property alias="../../params/comm-frq-selected"/>
<step>0.001</step>
<factor>100</factor>
<bias>0.0001</bias>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation> <animation>
<type>textranslate</type> <type>textranslate</type>
<object-name>CommStby100M</object-name> <object-name>CommStby100M</object-name>
@ -432,12 +475,26 @@
</axis> </axis>
</animation> </animation>
<animation>
<type>textranslate</type>
<object-name>CommStby1K</object-name>
<property alias="../../params/comm-frq-standby"/>
<step>0.001</step>
<factor>100</factor>
<bias>0.0001</bias>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- NAV part --> <!-- NAV part -->
<animation> <animation>
<type>translate</type> <type>translate</type>
<object-name>NavToggle</object-name> <object-name>NAVxfer</object-name>
<property alias="../../params/nav-frq-swp"/> <property alias="../../params/nav-frq-swp"/>
<factor>-0.004</factor> <factor>-0.003</factor>
<axis> <axis>
<x>1</x> <x>1</x>
<y>0</y> <y>0</y>
@ -588,7 +645,7 @@
<!-- Knobs and buttons --> <!-- Knobs and buttons -->
<animation> <animation>
<type>translate</type> <type>translate</type>
<object-name>NavVolume</object-name> <object-name>NAVvol</object-name>
<property alias="../../params/nav-audio"/> <property alias="../../params/nav-audio"/>
<factor>0.002</factor> <factor>0.002</factor>
<axis> <axis>
@ -602,7 +659,7 @@
<!-- Comm part --> <!-- Comm part -->
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>CommVolume</object-name> <object-name>COMvol</object-name>
<property alias="../../params/comm-volume"/> <property alias="../../params/comm-volume"/>
<factor>-65</factor> <factor>-65</factor>
<axis> <axis>
@ -611,9 +668,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.35003</x-m> <x-m>-0.34939</x-m>
<y-m> 0.05092</y-m> <y-m> 0.05082</y-m>
<z-m> 0.06991</z-m> <z-m> 0.07122</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -684,9 +741,33 @@
</hovered> </hovered>
</animation> </animation>
<animation>
<type>translate</type>
<object-name>COMknobKHZ</object-name>
<factor>0.005</factor>
<property>instrumentation/comm[0]/channel-mode-selector</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>COMchan</object-name>
<factor>-0.001</factor>
<property>instrumentation/comm[0]/channel-button</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>CommKHz</object-name> <object-name>COMknobKHZ</object-name>
<property alias="/params/comm-dial-khz"/> <property alias="/params/comm-dial-khz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -695,24 +776,11 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34721</x-m> <x-m>-0.34726</x-m>
<y-m> 0.09092</y-m> <y-m> 0.09337</y-m>
<z-m> 0.07191</z-m> <z-m> 0.07401</z-m>
</center> </center>
<action> <action>
<binding>
<condition>
<property alias="../../../../../params/power-comm"/>
</condition>
<command>property-adjust</command>
<property alias="/params/comm-frq-standby"/>
<factor>0.025</factor>
<min>0.0</min>
<max>1.0</max>
<resolution>0.025</resolution>
<wrap>true</wrap>
<mask>decimal</mask>
</binding>
<binding> <binding>
<command>property-adjust</command> <command>property-adjust</command>
<property alias="/params/comm-dial-khz"/> <property alias="/params/comm-dial-khz"/>
@ -721,23 +789,52 @@
<max>1440</max> <max>1440</max>
<wrap>true</wrap> <wrap>true</wrap>
</binding> </binding>
</action>
<increase>
<binding>
<command>nasal</command>
<script>
c172p.increment(0, 1);
</script>
</binding>
<binding> <binding>
<command>nasal</command> <command>nasal</command>
<script>c172p.click("kx165-1-dial")</script> <script>c172p.click("kx165-1-dial")</script>
</binding> </binding>
</action> </increase>
<decrease>
<binding>
<command>nasal</command>
<script>
c172p.increment(0, -1);
</script>
</binding>
<binding>
<command>nasal</command>
<script>c172p.click("kx165-1-dial")</script>
</binding>
</decrease>
<shift-action>
<repeatable>0</repeatable>
<binding>
<command>property-cycle</command>
<property>instrumentation/comm[0]/channel-mode-selector</property>
<value>0</value>
<value>1</value>
</binding>
</shift-action>
<hovered> <hovered>
<binding> <binding>
<command>set-tooltip</command> <command>set-tooltip</command>
<tooltip-id>comm1-kHz</tooltip-id> <tooltip-id>comm1-kHz</tooltip-id>
<label>Adjust COM1 kHz</label> <label>Adjust COM1 kHz; Shift click to toggle 8.33</label>
</binding> </binding>
</hovered> </hovered>
</animation> </animation>
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>CommMHz</object-name> <object-name>COMknobMHZ</object-name>
<property alias="/params/comm-dial-mhz"/> <property alias="/params/comm-dial-mhz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -746,9 +843,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34721</x-m> <x-m>-0.34954</x-m>
<y-m> 0.09092</y-m> <y-m> 0.09337</y-m>
<z-m> 0.07191</z-m> <z-m> 0.07401</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -759,7 +856,7 @@
<property alias="/params/comm-frq-standby"/> <property alias="/params/comm-frq-standby"/>
<factor>1</factor> <factor>1</factor>
<min>118.0</min> <min>118.0</min>
<max>137.0</max> <max>136.99167</max>
<wrap>true</wrap> <wrap>true</wrap>
<mask>integer</mask> <mask>integer</mask>
</binding> </binding>
@ -787,7 +884,7 @@
<animation> <animation>
<type>pick</type> <type>pick</type>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<visible>true</visible> <visible>true</visible>
<action> <action>
<button>0</button> <button>0</button>
@ -830,7 +927,7 @@
<!-- Nav part --> <!-- Nav part -->
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>NavVolume</object-name> <object-name>NAVvol</object-name>
<property alias="../../params/nav-volume"/> <property alias="../../params/nav-volume"/>
<factor>-65</factor> <factor>-65</factor>
<axis> <axis>
@ -839,9 +936,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.35003</x-m> <x-m>-0.34939</x-m>
<y-m> 0.13092</y-m> <y-m> 0.13118</y-m>
<z-m>0.06991</z-m> <z-m> 0.07122</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -890,7 +987,7 @@
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>NavKHz</object-name> <object-name>NAVknobKHZ</object-name>
<property alias="/params/nav-dial-khz"/> <property alias="/params/nav-dial-khz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -899,9 +996,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34568</x-m> <x-m>-0.34726</x-m>
<y-m> 0.17092</y-m> <y-m> 0.17527</y-m>
<z-m> 0.07191</z-m> <z-m> 0.07401</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -941,7 +1038,7 @@
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>NavMHz</object-name> <object-name>NAVknobMHZ</object-name>
<property alias="/params/nav-dial-mhz"/> <property alias="/params/nav-dial-mhz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -950,9 +1047,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34568</x-m> <x-m>-0.34954</x-m>
<y-m> 0.17092</y-m> <y-m> 0.17527</y-m>
<z-m> 0.07191</z-m> <z-m> 0.07401</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -991,7 +1088,7 @@
<animation> <animation>
<type>pick</type> <type>pick</type>
<object-name>NavToggle</object-name> <object-name>NAVxfer</object-name>
<visible>true</visible> <visible>true</visible>
<action> <action>
<button>0</button> <button>0</button>

View file

@ -2,8 +2,8 @@
<PropertyList> <PropertyList>
<!-- <!--
Bendix/King KX155/165 COMM/NAV radio Bendix/King KX155/165 COM/NAV radio
Use this instrument as COMM1/NAV1 radio Use this instrument as COM1/NAV1 radio
Created by Torsten Dreyer, October 2008 Created by Torsten Dreyer, October 2008
@ -39,6 +39,7 @@
<comm-dial-mhz>instrumentation/comm[1]/frequencies/dial-mhz</comm-dial-mhz> <comm-dial-mhz>instrumentation/comm[1]/frequencies/dial-mhz</comm-dial-mhz>
<comm-volume>instrumentation/comm[1]/volume-selected</comm-volume> <comm-volume>instrumentation/comm[1]/volume-selected</comm-volume>
<comm-test>instrumentation/comm[1]/test-btn</comm-test> <comm-test>instrumentation/comm[1]/test-btn</comm-test>
<channel-mode-selector>instrumentation/comm[1]/channel-mode-selector</channel-mode-selector>
<nav-frq-swp>instrumentation/nav[1]/frq-swap-btn</nav-frq-swp> <nav-frq-swp>instrumentation/nav[1]/frq-swap-btn</nav-frq-swp>
<nav-frq-selected>instrumentation/nav[1]/frequencies/selected-mhz</nav-frq-selected> <nav-frq-selected>instrumentation/nav[1]/frequencies/selected-mhz</nav-frq-selected>
<nav-frq-standby>instrumentation/nav[1]/frequencies/standby-mhz</nav-frq-standby> <nav-frq-standby>instrumentation/nav[1]/frequencies/standby-mhz</nav-frq-standby>
@ -52,41 +53,40 @@
<effect> <effect>
<inherits-from>../../../../Effects/interior/lm-kx165-2r</inherits-from> <inherits-from>../../../../Effects/interior/lm-kx165-2r</inherits-from>
<object-name>CommKnobs</object-name> <object-name>COMknobKHZ</object-name>
<object-name>CommVolume</object-name> <object-name>COMknobMHZ</object-name>
<object-name>NavKnobs</object-name> <object-name>COMxfer</object-name>
<object-name>NavVolume</object-name> <object-name>COMvol</object-name>
<object-name>CommKHz</object-name> <object-name>COMchan</object-name>
<object-name>CommMHz</object-name> <object-name>NAVknobKHZ</object-name>
<object-name>CommToggle</object-name> <object-name>NAVknobMHZ</object-name>
<object-name>CommVolume</object-name> <object-name>NAVxfer</object-name>
<object-name>NavKHz</object-name> <object-name>NAVmode</object-name>
<object-name>NavMHz</object-name> <object-name>NAVvol</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
</effect> </effect>
<effect> <effect>
<inherits-from>../../../../Effects/interior/lm-kx165-2</inherits-from> <inherits-from>../../../../Effects/interior/lm-kx165-2</inherits-from>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<object-name>NavToggle</object-name> <object-name>COMchan</object-name>
<object-name>Chassis</object-name> <object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>KX165</object-name>
</effect> </effect>
<effect> <effect>
<inherits-from>../../../../Effects/interior/c172p-interior-radiance</inherits-from> <inherits-from>../../../../Effects/interior/c172p-interior-radiance</inherits-from>
<object-name>CommUse</object-name>
<object-name>CommStby</object-name>
<object-name>NavUse</object-name>
<object-name>NavStby</object-name>
<object-name>CommStby100K</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name> <object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name> <object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name> <object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name> <object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name> <object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name> <object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name> <object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name> <object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name> <object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name> <object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name> <object-name>NavStby100K</object-name>
@ -101,25 +101,23 @@
<object-name>NavUse10M</object-name> <object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name> <object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name> <object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<object-name>Screen</object-name>
</effect> </effect>
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommToggle</object-name> <object-name>KX165</object-name>
<object-name>NavToggle</object-name> <object-name>COMknobKHZ</object-name>
<object-name>Chassis</object-name> <object-name>COMknobMHZ</object-name>
<object-name>CommKnobs</object-name> <object-name>COMxfer</object-name>
<object-name>CommVolume</object-name> <object-name>COMchan</object-name>
<object-name>NavKnobs</object-name> <object-name>COMvol</object-name>
<object-name>NavVolume</object-name> <object-name>NAVknobKHZ</object-name>
<object-name>CommKHz</object-name> <object-name>NAVknobMHZ</object-name>
<object-name>CommMHz</object-name> <object-name>NAVxfer</object-name>
<object-name>CommToggle</object-name> <object-name>NAVmode</object-name>
<object-name>CommVolume</object-name> <object-name>NAVvol</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<condition> <condition>
<not> <not>
<property>/sim/rendering/shaders/skydome</property> <property>/sim/rendering/shaders/skydome</property>
@ -132,99 +130,80 @@
</emission> </emission>
</animation> </animation>
<animation>
<object-name>CommKnobs</object-name>
<object-name>CommKHz</object-name>
<object-name>CommMHz</object-name>
<object-name>CommToggle</object-name>
<object-name>CommVolume</object-name>
<object-name>CommStby</object-name>
<object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavKnobs</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<object-name>NavStby</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>Chassis</object-name>
</animation>
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommKnobs</object-name> <object-name>COMknobKHZ</object-name>
<object-name>CommKHz</object-name> <object-name>COMknobMHZ</object-name>
<object-name>CommMHz</object-name> <object-name>COMxfer</object-name>
<object-name>CommToggle</object-name> <object-name>COMchan</object-name>
<object-name>CommVolume</object-name> <object-name>COMvol</object-name>
<object-name>CommStby</object-name>
<object-name>CommStby100K</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name> <object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name> <object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name> <object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name> <object-name>CommStbyDot</object-name>
<object-name>CommUse</object-name>
<object-name>CommUse100K</object-name> <object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name> <object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name> <object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name> <object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name> <object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name> <object-name>CommUseDot</object-name>
<object-name>NavKnobs</object-name> <object-name>NAVknobKHZ</object-name>
<object-name>NavKHz</object-name> <object-name>NAVknobMHZ</object-name>
<object-name>NavMHz</object-name> <object-name>NAVxfer</object-name>
<object-name>NavToggle</object-name> <object-name>NAVmode</object-name>
<object-name>NavVolume</object-name> <object-name>NAVvol</object-name>
<object-name>NavStby</object-name>
<object-name>NavStby100K</object-name> <object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name> <object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name> <object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name> <object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name> <object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name> <object-name>NavStbyDot</object-name>
<object-name>NavUse</object-name>
<object-name>NavUse100K</object-name> <object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name> <object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name> <object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name> <object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name> <object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name> <object-name>NavUseDot</object-name>
<object-name>Chassis</object-name> <object-name>KX165Line</object-name>
<object-name>KX165</object-name>
<object-name>Screen</object-name>
<property-base>/sim/instrumentation/comm[1]</property-base> <property-base>/sim/instrumentation/comm[1]</property-base>
<texture-prop>texture-file</texture-prop> <texture-prop>texture-file</texture-prop>
</animation> </animation>
<animation> <animation>
<type>select</type> <type>select</type>
<object-name>CommUse</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby</object-name> <object-name>CommStby100M</object-name>
<object-name>NavUse</object-name> <object-name>CommStby10K</object-name>
<object-name>NavStby</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<condition> <condition>
<property>/sim/model/c172p/lighting/comm1-power</property> <property>/sim/model/c172p/lighting/comm1-power</property>
</condition> </condition>
@ -232,8 +211,10 @@
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<object-name>NavToggle</object-name> <object-name>COMchan</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<condition> <condition>
<not> <not>
<property>sim/rendering/rembrandt/enabled</property> <property>sim/rendering/rembrandt/enabled</property>
@ -249,10 +230,33 @@
<animation> <animation>
<type>material</type> <type>material</type>
<object-name>CommUse</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby</object-name> <object-name>CommStby100M</object-name>
<object-name>NavUse</object-name> <object-name>CommStby10K</object-name>
<object-name>NavStby</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<condition> <condition>
<and> <and>
<not> <not>
@ -271,20 +275,45 @@
<factor-prop>/sim/model/c172p/lighting/comm1</factor-prop> <factor-prop>/sim/model/c172p/lighting/comm1</factor-prop>
</emission> </emission>
</animation> </animation>
<effect> <effect>
<inherits-from>Effects/model-transparent</inherits-from> <inherits-from>Effects/model-transparent</inherits-from>
<object-name>CommUse</object-name> <object-name>CommStby100K</object-name>
<object-name>CommStby</object-name> <object-name>CommStby100M</object-name>
<object-name>NavUse</object-name> <object-name>CommStby10K</object-name>
<object-name>NavStby</object-name> <object-name>CommStby10M</object-name>
<object-name>CommStby1K</object-name>
<object-name>CommStby1M</object-name>
<object-name>CommStbyDot</object-name>
<object-name>CommUse100K</object-name>
<object-name>CommUse100M</object-name>
<object-name>CommUse10K</object-name>
<object-name>CommUse10M</object-name>
<object-name>CommUse1K</object-name>
<object-name>CommUse1M</object-name>
<object-name>CommUseDot</object-name>
<object-name>NavStby100K</object-name>
<object-name>NavStby100M</object-name>
<object-name>NavStby10K</object-name>
<object-name>NavStby10M</object-name>
<object-name>NavStby1M</object-name>
<object-name>NavStbyDot</object-name>
<object-name>NavUse100K</object-name>
<object-name>NavUse100M</object-name>
<object-name>NavUse10K</object-name>
<object-name>NavUse10M</object-name>
<object-name>NavUse1M</object-name>
<object-name>NavUseDot</object-name>
<object-name>KX165Line</object-name>
<object-name>Screen</object-name>
</effect> </effect>
<!-- Comm part --> <!-- comm part -->
<animation> <animation>
<type>translate</type> <type>translate</type>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<property alias="../../params/comm-frq-swp"/> <property alias="../../params/comm-frq-swp"/>
<factor>-0.004</factor> <factor>-0.003</factor>
<axis> <axis>
<x>1</x> <x>1</x>
<y>0</y> <y>0</y>
@ -362,6 +391,20 @@
</axis> </axis>
</animation> </animation>
<animation>
<type>textranslate</type>
<object-name>CommUse1K</object-name>
<property alias="../../params/comm-frq-selected"/>
<step>0.001</step>
<factor>100</factor>
<bias>0.0001</bias>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation> <animation>
<type>textranslate</type> <type>textranslate</type>
<object-name>CommStby100M</object-name> <object-name>CommStby100M</object-name>
@ -432,12 +475,26 @@
</axis> </axis>
</animation> </animation>
<animation>
<type>textranslate</type>
<object-name>CommStby1K</object-name>
<property alias="../../params/comm-frq-standby"/>
<step>0.001</step>
<factor>100</factor>
<bias>0.0001</bias>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- NAV part --> <!-- NAV part -->
<animation> <animation>
<type>translate</type> <type>translate</type>
<object-name>NavToggle</object-name> <object-name>NAVxfer</object-name>
<property alias="../../params/nav-frq-swp"/> <property alias="../../params/nav-frq-swp"/>
<factor>-0.004</factor> <factor>-0.003</factor>
<axis> <axis>
<x>1</x> <x>1</x>
<y>0</y> <y>0</y>
@ -585,10 +642,9 @@
</axis> </axis>
</animation> </animation>
<!-- Knobs and buttons -->
<animation> <animation>
<type>translate</type> <type>translate</type>
<object-name>NavVolume</object-name> <object-name>NAVvol</object-name>
<property alias="../../params/nav-audio"/> <property alias="../../params/nav-audio"/>
<factor>0.002</factor> <factor>0.002</factor>
<axis> <axis>
@ -602,7 +658,7 @@
<!-- Comm part --> <!-- Comm part -->
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>CommVolume</object-name> <object-name>COMvol</object-name>
<property alias="../../params/comm-volume"/> <property alias="../../params/comm-volume"/>
<factor>-65</factor> <factor>-65</factor>
<axis> <axis>
@ -611,9 +667,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34509</x-m> <x-m>-0.34939</x-m>
<y-m> 0.05097</y-m> <y-m> 0.05132</y-m>
<z-m> 0.01597</z-m> <z-m> 0.01737</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -684,9 +740,33 @@
</hovered> </hovered>
</animation> </animation>
<animation>
<type>translate</type>
<object-name>COMknobKHZ</object-name>
<factor>0.005</factor>
<property>instrumentation/comm[1]/channel-mode-selector</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<type>translate</type>
<object-name>COMchan</object-name>
<factor>-0.001</factor>
<property>instrumentation/comm[1]/channel-button</property>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>CommKHz</object-name> <object-name>COMknobKHZ</object-name>
<property alias="/params/comm-dial-khz"/> <property alias="/params/comm-dial-khz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -695,24 +775,11 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34727</x-m> <x-m>-0.34726</x-m>
<y-m> 0.09097</y-m> <y-m> 0.09336</y-m>
<z-m> 0.01797</z-m> <z-m> 0.02016</z-m>
</center> </center>
<action> <action>
<binding>
<condition>
<property alias="../../../../../params/power-comm"/>
</condition>
<command>property-adjust</command>
<property alias="/params/comm-frq-standby"/>
<factor>0.025</factor>
<min>0.0</min>
<max>1.0</max>
<resolution>0.025</resolution>
<wrap>true</wrap>
<mask>decimal</mask>
</binding>
<binding> <binding>
<command>property-adjust</command> <command>property-adjust</command>
<property alias="/params/comm-dial-khz"/> <property alias="/params/comm-dial-khz"/>
@ -721,23 +788,52 @@
<max>1440</max> <max>1440</max>
<wrap>true</wrap> <wrap>true</wrap>
</binding> </binding>
</action>
<increase>
<binding>
<command>nasal</command>
<script>
c172p.increment(1, 1);
</script>
</binding>
<binding> <binding>
<command>nasal</command> <command>nasal</command>
<script>c172p.click("kx165-2-dial")</script> <script>c172p.click("kx165-2-dial")</script>
</binding> </binding>
</action> </increase>
<decrease>
<binding>
<command>nasal</command>
<script>
c172p.increment(1, -1);
</script>
</binding>
<binding>
<command>nasal</command>
<script>c172p.click("kx165-2-dial")</script>
</binding>
</decrease>
<shift-action>
<repeatable>0</repeatable>
<binding>
<command>property-cycle</command>
<property>instrumentation/comm[1]/channel-mode-selector</property>
<value>0</value>
<value>1</value>
</binding>
</shift-action>
<hovered> <hovered>
<binding> <binding>
<command>set-tooltip</command> <command>set-tooltip</command>
<tooltip-id>comm2-kHz</tooltip-id> <tooltip-id>comm2-kHz</tooltip-id>
<label>Adjust COM2 kHz</label> <label>Adjust COM2 kHz; Shift click to toggle 8.33</label>
</binding> </binding>
</hovered> </hovered>
</animation> </animation>
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>CommMHz</object-name> <object-name>COMknobMHZ</object-name>
<property alias="/params/comm-dial-mhz"/> <property alias="/params/comm-dial-mhz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -746,9 +842,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34727</x-m> <x-m>-0.34954</x-m>
<y-m> 0.09097</y-m> <y-m> 0.09337</y-m>
<z-m> 0.01797</z-m> <z-m> 0.02016</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -759,7 +855,7 @@
<property alias="/params/comm-frq-standby"/> <property alias="/params/comm-frq-standby"/>
<factor>1</factor> <factor>1</factor>
<min>118.0</min> <min>118.0</min>
<max>137.0</max> <max>136.99167</max>
<wrap>true</wrap> <wrap>true</wrap>
<mask>integer</mask> <mask>integer</mask>
</binding> </binding>
@ -787,7 +883,7 @@
<animation> <animation>
<type>pick</type> <type>pick</type>
<object-name>CommToggle</object-name> <object-name>COMxfer</object-name>
<visible>true</visible> <visible>true</visible>
<action> <action>
<button>0</button> <button>0</button>
@ -821,7 +917,7 @@
<hovered> <hovered>
<binding> <binding>
<command>set-tooltip</command> <command>set-tooltip</command>
<tooltip-id>comm2-toggle</tooltip-id> <tooltip-id>comm1-toggle</tooltip-id>
<label>Swap COM2 frequencies</label> <label>Swap COM2 frequencies</label>
</binding> </binding>
</hovered> </hovered>
@ -830,7 +926,7 @@
<!-- Nav part --> <!-- Nav part -->
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>NavVolume</object-name> <object-name>NAVvol</object-name>
<property alias="../../params/nav-volume"/> <property alias="../../params/nav-volume"/>
<factor>-65</factor> <factor>-65</factor>
<axis> <axis>
@ -839,9 +935,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.35009</x-m> <x-m>-0.34939</x-m>
<y-m> 0.13097</y-m> <y-m> 0.13118</y-m>
<z-m> 0.01597</z-m> <z-m> 0.01737</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -866,7 +962,7 @@
<hovered> <hovered>
<binding> <binding>
<command>set-tooltip</command> <command>set-tooltip</command>
<tooltip-id>nav2-volume</tooltip-id> <tooltip-id>nav1-volume</tooltip-id>
<label>%s</label> <label>%s</label>
<measure-text>NAV2 Volume: 100% ; Ident disabled (Shift + click to pull)</measure-text> <measure-text>NAV2 Volume: 100% ; Ident disabled (Shift + click to pull)</measure-text>
<property alias="../../../../params/nav-volume"/> <property alias="../../../../params/nav-volume"/>
@ -890,7 +986,7 @@
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>NavKHz</object-name> <object-name>NAVknobKHZ</object-name>
<property alias="/params/nav-dial-khz"/> <property alias="/params/nav-dial-khz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -899,9 +995,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34574</x-m> <x-m>-0.34726</x-m>
<y-m> 0.17097</y-m> <y-m> 0.17527</y-m>
<z-m> 0.01797</z-m> <z-m> 0.02016</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -933,7 +1029,7 @@
<hovered> <hovered>
<binding> <binding>
<command>set-tooltip</command> <command>set-tooltip</command>
<tooltip-id>nav2-kHz</tooltip-id> <tooltip-id>nav1-kHz</tooltip-id>
<label>Adjust NAV2 kHz</label> <label>Adjust NAV2 kHz</label>
</binding> </binding>
</hovered> </hovered>
@ -941,7 +1037,7 @@
<animation> <animation>
<type>knob</type> <type>knob</type>
<object-name>NavMHz</object-name> <object-name>NAVknobMHZ</object-name>
<property alias="/params/nav-dial-mhz"/> <property alias="/params/nav-dial-mhz"/>
<factor>-0.25</factor> <factor>-0.25</factor>
<axis> <axis>
@ -950,9 +1046,9 @@
<z>0</z> <z>0</z>
</axis> </axis>
<center> <center>
<x-m>-0.34574</x-m> <x-m>-0.34954</x-m>
<y-m> 0.17097</y-m> <y-m> 0.17527</y-m>
<z-m> 0.01797</z-m> <z-m> 0.02016</z-m>
</center> </center>
<action> <action>
<binding> <binding>
@ -991,7 +1087,7 @@
<animation> <animation>
<type>pick</type> <type>pick</type>
<object-name>NavToggle</object-name> <object-name>NAVxfer</object-name>
<visible>true</visible> <visible>true</visible>
<action> <action>
<button>0</button> <button>0</button>
@ -1008,7 +1104,7 @@
</binding> </binding>
<binding> <binding>
<command>nasal</command> <command>nasal</command>
<script>c172p.click("kx165-2")</script> <script>c172p.click("kx165-1")</script>
</binding> </binding>
<mod-up> <mod-up>
<binding> <binding>
@ -1025,7 +1121,7 @@
<hovered> <hovered>
<binding> <binding>
<command>set-tooltip</command> <command>set-tooltip</command>
<tooltip-id>nav2-toggle</tooltip-id> <tooltip-id>nav1-toggle</tooltip-id>
<label>Swap NAV2 frequencies</label> <label>Swap NAV2 frequencies</label>
</binding> </binding>
</hovered> </hovered>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View file

@ -15,7 +15,7 @@ MATERIAL "exterior-parts.003" rgb 0.640 0.640 0.640 amb 1.000 1.000 1.000 emis
MATERIAL "mat_antenna" rgb 0.712 0.712 0.712 amb 0.890 0.890 0.890 emis 0.000 0.000 0.000 spec 0.500 0.500 0.500 shi 12 trans 0.000 MATERIAL "mat_antenna" rgb 0.712 0.712 0.712 amb 0.890 0.890 0.890 emis 0.000 0.000 0.000 spec 0.500 0.500 0.500 shi 12 trans 0.000
MATERIAL "glass-exterior" rgb 0.648 1.000 0.709 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.599 1.000 1.000 shi 12 trans 0.800 MATERIAL "glass-exterior" rgb 0.648 1.000 0.709 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.599 1.000 1.000 shi 12 trans 0.800
MATERIAL "Material.Glass" rgb 1.000 1.000 1.000 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 1.000 1.000 1.000 shi 12 trans 0.655 MATERIAL "Material.Glass" rgb 1.000 1.000 1.000 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 1.000 1.000 1.000 shi 12 trans 0.655
MATERIAL "Panel.Glass" rgb 0.014 0.014 0.014 amb 0.500 0.500 0.500 emis 0.000 0.000 0.000 spec 0.844 0.844 0.844 shi 5 trans 0.850 MATERIAL "Panel.Glass.001" rgb 0.014 0.014 0.014 amb 0.500 0.500 0.500 emis 0.000 0.000 0.000 spec 0.844 0.844 0.844 shi 5 trans 0.850
MATERIAL "mat_panels_rack_base" rgb 0.800 0.684 0.600 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.216 0.216 0.216 shi 2 trans 0.000 MATERIAL "mat_panels_rack_base" rgb 0.800 0.684 0.600 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.216 0.216 0.216 shi 2 trans 0.000
MATERIAL "visors" rgb 0.640 0.640 0.640 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.500 0.500 0.500 shi 12 trans 0.000 MATERIAL "visors" rgb 0.640 0.640 0.640 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.500 0.500 0.500 shi 12 trans 0.000
MATERIAL "glareshield" rgb 0.012 0.012 0.012 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.776 0.776 0.776 shi 64 trans 0.000 MATERIAL "glareshield" rgb 0.012 0.012 0.012 amb 1.000 1.000 1.000 emis 0.000 0.000 0.000 spec 0.776 0.776 0.776 shi 64 trans 0.000
@ -71208,7 +71208,7 @@ kids 0
OBJECT poly OBJECT poly
name "glass_panel" name "glass_panel"
data 10 data 10
Circle.014 Circle.015
crease 180.0 crease 180.0
numvert 513 numvert 513
-0.36977 0.02208 0.06724 -0.36977 0.02208 0.06724
@ -71690,14 +71690,6 @@ numvert 513
-0.34967 0.03191 -0.11597 -0.34967 0.03191 -0.11597
-0.34967 0.05254 -0.18965 -0.34967 0.05254 -0.18965
-0.34967 0.03198 -0.18957 -0.34967 0.03198 -0.18957
-0.34967 0.10657 -0.03593
-0.34967 0.08589 -0.03593
-0.34967 0.10652 -0.1096
-0.34967 0.08597 -0.10952
-0.34967 0.10657 -0.11597
-0.34967 0.08589 -0.11597
-0.34967 0.10652 -0.18965
-0.34967 0.08597 -0.18957
-0.35218 -0.08221 -0.05833 -0.35218 -0.08221 -0.05833
-0.35218 -0.10049 -0.05833 -0.35218 -0.10049 -0.05833
-0.35218 -0.08225 -0.14815 -0.35218 -0.08225 -0.14815
@ -71724,6 +71716,14 @@ numvert 513
-0.35648 0.03007 -0.40629 -0.35648 0.03007 -0.40629
-0.35648 0.03569 -0.43268 -0.35648 0.03569 -0.43268
-0.35648 0.03009 -0.43265 -0.35648 0.03009 -0.43265
-0.34911 0.10568 -0.03567
-0.34911 0.08624 -0.03567
-0.34911 0.10563 -0.18902
-0.34911 0.08632 -0.18894
-0.34911 0.05151 -0.03567
-0.34911 0.03207 -0.03567
-0.34911 0.05146 -0.18902
-0.34911 0.03215 -0.18894
numsurf 25 numsurf 25
SURF 0X10 SURF 0X10
mat 16 mat 16
@ -72261,58 +72261,58 @@ refs 4
SURF 0X0 SURF 0X0
mat 16 mat 16
refs 4 refs 4
480 0.238006 0.987558 480 0.815238 0.320389
482 0.238277 0.73561 482 0.815598 0.01324
481 0.307519 0.735342 481 0.876815 0.012935
479 0.307657 0.987558 479 0.876815 0.32041
SURF 0X0
mat 16
refs 4
484 0.876815 0.265151
486 0.877086 0.013203
485 0.946328 0.012935
483 0.946466 0.265151
SURF 0X0
mat 16
refs 4
488 0.815238 0.320389
490 0.815598 0.01324
489 0.876815 0.012935
487 0.876815 0.32041
SURF 0X0 SURF 0X0
mat 16 mat 16
refs 10 refs 10
496 0.723538 0.260261 488 0.723538 0.260261
497 0.723538 0.035975 489 0.723538 0.035975
498 0.742945 0.012935 490 0.742945 0.012935
491 0.796492 0.013389 483 0.796492 0.013389
492 0.815238 0.035939 484 0.815238 0.035939
499 0.815238 0.070373 491 0.815238 0.070373
500 0.815238 0.128039 492 0.815238 0.128039
493 0.815238 0.26154 485 0.815238 0.26154
494 0.798547 0.281905 486 0.798547 0.281905
495 0.741095 0.281905 487 0.741095 0.281905
SURF 0X0 SURF 0X0
mat 16 mat 16
refs 4 refs 4
502 0.948794 1 494 0.948794 1
504 0.949094 0.49508 496 0.949094 0.49508
503 1 0.494542 495 1 0.494542
501 1 0.999999 493 1 0.999999
SURF 0X0 SURF 0X0
mat 16 mat 16
refs 4 refs 4
506 0.946466 0.327345 498 0.946466 0.327345
508 0.946624 0.013271 500 0.946624 0.013271
507 0.973496 0.012935 499 0.973496 0.012935
505 0.973496 0.327342 497 0.973496 0.327342
SURF 0X0 SURF 0X0
mat 16 mat 16
refs 4 refs 4
510 0.307657 0.825695 502 0.307657 0.825695
512 0.307771 0.735433 504 0.307771 0.735433
511 0.326626 0.735342 503 0.326626 0.735342
509 0.326626 0.825702 501 0.326626 0.825702
SURF 0X0
mat 16
refs 4
506 0.001415 0.764058
508 0.199701 0.764334
507 0.198987 0.841427
505 0.002351 0.841606
SURF 0X0
mat 16
refs 4
510 0.001415 0.764058
512 0.199701 0.764334
511 0.198987 0.841427
509 0.002351 0.841606
kids 0 kids 0
OBJECT group OBJECT group
name "GROUP_FrontPanels" name "GROUP_FrontPanels"

View file

@ -164,31 +164,48 @@
<z-m> 0.08948</z-m> <z-m> 0.08948</z-m>
<heading-deg>-19.0</heading-deg> <heading-deg>-19.0</heading-deg>
</offsets> </offsets>
<condition> </model>
<not> <animation>
<equals> <type>translate</type>
<property alias="/params/bushkit"/> <object-name>Garmin196-GPS-non-Canvas</object-name>
<value>4</value> <property>/Interior/Panel/Instruments/garmin196/move</property>
</equals> <factor>0.1</factor>
</not> <axis>
</condition> <x>0.0</x>
<y>1.0</y>
<z>0.0</z>
</axis>
</animation>
<!-- Canvas local Garmin 196 GPS -->
<!--<model>
<name>Garmin196-GPS</name>
<path>Interior/Panel/garmin196/garmin196.xml</path>
<offsets>
<x-m>-0.4</x-m>
<y-m>0.36</y-m>
<z-m>0.205</z-m>
<heading-deg>-12.0</heading-deg>
</offsets>
</model> </model>
<model> <model>
<name>Garmin196-GPS-non-Canvas</name> <name>Garmin196-GPS-support</name>
<path>Interior/Panel/Instruments/garmin196/garmin196.xml</path> <path>Interior/Panel/garmin196/garmin196_support.xml</path>
<offsets> <offsets>
<x-m>-0.305</x-m> <x-m>-0.4</x-m>
<y-m> 0.36584</y-m> <y-m>0.36</y-m>
<z-m> 0.08948</z-m> <z-m>0.205</z-m>
<heading-deg>-19.0</heading-deg> <heading-deg>-12.0</heading-deg>
</offsets> </offsets>
<condition>
<equals>
<property alias="/params/bushkit"/>
<value>4</value>
</equals>
</condition>
</model> </model>
<animation>
<type>select</type>
<object-name>Garmin196-GPS</object-name>
<object-name>Garmin196-GPS-support</object-name>
<condition>
<property>/sim/model/c172p/garmin196-visible</property>
</condition>
</animation>-->
<model> <model>
<name>GPS-Model</name> <name>GPS-Model</name>
@ -316,36 +333,6 @@
</condition> </condition>
</animation> </animation>
<!-- Canvas local Garmin 196 GPS -->
<!--<model>
<name>Garmin196-GPS</name>
<path>Interior/Panel/garmin196/garmin196.xml</path>
<offsets>
<x-m>-0.4</x-m>
<y-m>0.36</y-m>
<z-m>0.205</z-m>
<heading-deg>-12.0</heading-deg>
</offsets>
</model>
<model>
<name>Garmin196-GPS-support</name>
<path>Interior/Panel/garmin196/garmin196_support.xml</path>
<offsets>
<x-m>-0.4</x-m>
<y-m>0.36</y-m>
<z-m>0.205</z-m>
<heading-deg>-12.0</heading-deg>
</offsets>
</model>
<animation>
<type>select</type>
<object-name>Garmin196-GPS</object-name>
<object-name>Garmin196-GPS-support</object-name>
<condition>
<property>/sim/model/c172p/garmin196-visible</property>
</condition>
</animation>-->
<nasal> <nasal>
<load> <load>
var livery_update = aircraft.livery_update.new( var livery_update = aircraft.livery_update.new(
@ -3033,7 +3020,7 @@
<font>Helvetica.txf</font> <font>Helvetica.txf</font>
<character-size type="double">0.005</character-size> <character-size type="double">0.005</character-size>
<character-aspect-ratio type="double">-1.0</character-aspect-ratio> <character-aspect-ratio type="double">-1.0</character-aspect-ratio>
<axis-alignment>yx-plane</axis-alignment> <axis-alignment>xy-plane</axis-alignment>
<max-height>0.2</max-height> <max-height>0.2</max-height>
<max-width>0.07</max-width> <max-width>0.07</max-width>
<font-resolution> <font-resolution>
@ -3056,7 +3043,7 @@
<font>Helvetica.txf</font> <font>Helvetica.txf</font>
<character-size type="double">0.005</character-size> <character-size type="double">0.005</character-size>
<character-aspect-ratio type="double">-1.0</character-aspect-ratio> <character-aspect-ratio type="double">-1.0</character-aspect-ratio>
<axis-alignment>yx-plane</axis-alignment> <axis-alignment>xy-plane</axis-alignment>
<max-height>0.2</max-height> <max-height>0.2</max-height>
<max-width>0.07</max-width> <max-width>0.07</max-width>
<font-resolution> <font-resolution>
@ -3079,7 +3066,7 @@
<font>Helvetica.txf</font> <font>Helvetica.txf</font>
<character-size type="double">0.005</character-size> <character-size type="double">0.005</character-size>
<character-aspect-ratio type="double">-1.0</character-aspect-ratio> <character-aspect-ratio type="double">-1.0</character-aspect-ratio>
<axis-alignment>yx-plane</axis-alignment> <axis-alignment>xy-plane</axis-alignment>
<max-height>0.2</max-height> <max-height>0.2</max-height>
<max-width>0.07</max-width> <max-width>0.07</max-width>
<font-resolution> <font-resolution>

View file

@ -45,6 +45,7 @@ aircraft.data.add(
"instrumentation/comm[0]/frequencies/dial-khz", "instrumentation/comm[0]/frequencies/dial-khz",
"instrumentation/comm[0]/frequencies/dial-mhz", "instrumentation/comm[0]/frequencies/dial-mhz",
"instrumentation/comm[0]/test-btn", "instrumentation/comm[0]/test-btn",
"instrumentation/comm[0]/channel-mode-selector",
"instrumentation/nav[0]/ident-audible", "instrumentation/nav[0]/ident-audible",
"instrumentation/nav[0]/power-btn", "instrumentation/nav[0]/power-btn",
"instrumentation/nav[0]/volume", "instrumentation/nav[0]/volume",
@ -64,6 +65,7 @@ aircraft.data.add(
"instrumentation/comm[1]/frequencies/dial-khz", "instrumentation/comm[1]/frequencies/dial-khz",
"instrumentation/comm[1]/frequencies/dial-mhz", "instrumentation/comm[1]/frequencies/dial-mhz",
"instrumentation/comm[1]/test-btn", "instrumentation/comm[1]/test-btn",
"instrumentation/comm[0]/channel-mode-selector",
"instrumentation/nav[1]/ident-audible", "instrumentation/nav[1]/ident-audible",
"instrumentation/nav[1]/power-btn", "instrumentation/nav[1]/power-btn",
"instrumentation/nav[1]/volume", "instrumentation/nav[1]/volume",

View file

@ -0,0 +1,43 @@
# Code to handle 8.33 khz for the KX165A radio
var increment = func(index, direction) {
var selector = getprop("instrumentation/comm[" ~ index ~ "]/channel-mode-selector");
if (selector == 1) {
setprop("instrumentation/comm[" ~ index ~ "]/frequencies/standby-channel", getprop("instrumentation/comm[" ~ index ~ "]/frequencies/standby-channel") + direction);
} elsif (selector == 0) {
setprop("instrumentation/comm[" ~ index ~ "]/frequencies/standby-channel", getprop("instrumentation/comm[" ~ index ~ "]/frequencies/standby-channel") + (direction * 4));
}
}
setlistener("/instrumentation/comm[0]/channel-mode-selector", func() {
if (getprop("/instrumentation/comm[0]/channel-mode-selector") == 0) {
var result = math.round(getprop("/instrumentation/comm[0]/frequencies/standby-channel") / 4) * 4;
setprop("/instrumentation/comm[0]/frequencies/standby-channel", result);
var result = math.round(getprop("/instrumentation/comm[0]/frequencies/selected-channel") / 4) * 4;
setprop("/instrumentation/comm[0]/frequencies/selected-channel", result);
}
}, 0, 0);
setlistener("/instrumentation/comm[1]/channel-mode-selector", func() {
if (getprop("/instrumentation/comm[1]/channel-mode-selector") == 0) {
var result = math.round(getprop("/instrumentation/comm[1]/frequencies/standby-channel") / 4) * 4;
setprop("/instrumentation/comm[1]/frequencies/standby-channel", result);
var result = math.round(getprop("/instrumentation/comm[1]/frequencies/selected-channel") / 4) * 4;
setprop("/instrumentation/comm[1]/frequencies/selected-channel", result);
}
}, 0, 0);
var hackListener = setlistener("/sim/signals/fdm-initialized", func() {
# a dirty hack but it works. It triggers the above setlisteners on startup (passing the startup argument did not work)
# in case a 8.33 frequency has been saved but 25k is selected on startup
var selector = getprop("instrumentation/comm[0]/channel-mode-selector");
setprop("/instrumentation/comm[0]/channel-mode-selector", 2);
setprop("/instrumentation/comm[0]/channel-mode-selector", selector);
var selector = getprop("instrumentation/comm[1]/channel-mode-selector");
setprop("/instrumentation/comm[1]/channel-mode-selector", 2);
setprop("/instrumentation/comm[1]/channel-mode-selector", selector);
# after the first startup we don't need this
removelistener(hackListener);
});

View file

@ -123,19 +123,20 @@ var tiedown_left_updater = TiedownPositionUpdater.new("left");
var tiedown_right_updater = TiedownPositionUpdater.new("right"); var tiedown_right_updater = TiedownPositionUpdater.new("right");
var tiedown_tail_updater = TiedownPositionUpdater.new("tail"); var tiedown_tail_updater = TiedownPositionUpdater.new("tail");
setlistener("/sim/model/c172p/securing/tiedownL-visible", func (node) { setlistener("/sim/signals/fdm-initialized", func {
setlistener("/sim/model/c172p/securing/tiedownL-visible", func (node) {
tiedown_left_updater.enable_or_disable(node.getValue()); tiedown_left_updater.enable_or_disable(node.getValue());
}, 1, 0); }, 1, 0);
setlistener("/sim/model/c172p/securing/tiedownR-visible", func (node) { setlistener("/sim/model/c172p/securing/tiedownR-visible", func (node) {
tiedown_right_updater.enable_or_disable(node.getValue()); tiedown_right_updater.enable_or_disable(node.getValue());
}, 1, 0); }, 1, 0);
setlistener("/sim/model/c172p/securing/tiedownT-visible", func (node) { setlistener("/sim/model/c172p/securing/tiedownT-visible", func (node) {
tiedown_tail_updater.enable_or_disable(node.getValue()); tiedown_tail_updater.enable_or_disable(node.getValue());
}, 1, 0); }, 1, 0);
setlistener("/fdm/jsbsim/damage/repairing", func (node) { setlistener("/fdm/jsbsim/damage/repairing", func (node) {
# When the aircraft has been repaired (value is switched back # When the aircraft has been repaired (value is switched back
# to 0), compute the new initial length of the tiedowns # to 0), compute the new initial length of the tiedowns
if (!node.getValue()) { if (!node.getValue()) {
@ -143,5 +144,5 @@ setlistener("/fdm/jsbsim/damage/repairing", func (node) {
tiedown_right_updater.init_ref_length(); tiedown_right_updater.init_ref_length();
tiedown_tail_updater.init_ref_length(); tiedown_tail_updater.init_ref_length();
} }
}, 0, 0); }, 0, 0);
});

View file

@ -183,6 +183,16 @@ Extra weight and drag due to bush wheels, floats and aircraft with 180 hp engine
</switch> </switch>
</channel> </channel>
<channel name="GPS-placement">
<switch name="gps-placement">
<default value="0"/>
<test logic="AND" value="1">
bushkit EQ 4
</test>
<output>/Interior/Panel/Instruments/garmin196/move</output>
</switch>
</channel>
<channel name="JSBSim hydrodynamics integration"> <channel name="JSBSim hydrodynamics integration">
<fcs_function name="tmp/floats-enabled-norm"> <fcs_function name="tmp/floats-enabled-norm">
<function> <function>

View file

@ -142,11 +142,13 @@ file, these values will be used (they are hardcoded).
<comm-radio> <comm-radio>
<name>comm</name> <name>comm</name>
<number>0</number> <number>0</number>
<eight-point-three>1</eight-point-three>
</comm-radio> </comm-radio>
<comm-radio> <comm-radio>
<name>comm</name> <name>comm</name>
<number>1</number> <number>1</number>
<eight-point-three>1</eight-point-three>
</comm-radio> </comm-radio>
<nav-radio> <nav-radio>

View file

@ -764,6 +764,7 @@ http://forum.flightgear.org/viewtopic.php?f=4&t=25157
<dial-mhz type="int">0</dial-mhz> <dial-mhz type="int">0</dial-mhz>
</frequencies> </frequencies>
<volume-selected type="double">0.7</volume-selected> <volume-selected type="double">0.7</volume-selected>
<channel-mode-selector type="bool">1</channel-mode-selector>
</comm> </comm>
<comm n="1"> <comm n="1">
<power-btn type="bool">1</power-btn> <power-btn type="bool">1</power-btn>
@ -772,6 +773,7 @@ http://forum.flightgear.org/viewtopic.php?f=4&t=25157
<dial-mhz type="int">0</dial-mhz> <dial-mhz type="int">0</dial-mhz>
</frequencies> </frequencies>
<volume-selected type="double">0.7</volume-selected> <volume-selected type="double">0.7</volume-selected>
<channel-mode-selector type="bool">1</channel-mode-selector>
</comm> </comm>
<nav n="0"> <nav n="0">
<volume type="double">0.7</volume> <volume type="double">0.7</volume>
@ -944,6 +946,7 @@ http://forum.flightgear.org/viewtopic.php?f=4&t=25157
<file>Nasal/tanks.nas</file> <file>Nasal/tanks.nas</file>
<file>Nasal/kma20.nas</file> <file>Nasal/kma20.nas</file>
<file>Nasal/ki266.nas</file> <file>Nasal/ki266.nas</file>
<file>Nasal/kx165a.nas</file>
<file>Nasal/engine.nas</file> <file>Nasal/engine.nas</file>
<file>Nasal/avionics.nas</file> <file>Nasal/avionics.nas</file>
<file>Nasal/interior-lighting.nas</file> <file>Nasal/interior-lighting.nas</file>

View file

@ -69,7 +69,7 @@
<transition_model>0.8</transition_model> <transition_model>0.8</transition_model>
<hires_overlay_bias>0</hires_overlay_bias> <hires_overlay_bias>0</hires_overlay_bias>
</parameters> </parameters>
<object-mask>Terrain/deciduous-hires_mask.png</object-mask> <object-mask>Terrain/rice1.mask.png</object-mask>
<xsize>2000</xsize> <xsize>2000</xsize>
<ysize>2000</ysize> <ysize>2000</ysize>
<light-coverage>2000000.0</light-coverage> <light-coverage>2000000.0</light-coverage>

View file

@ -53,14 +53,21 @@ var WPT_model = {
if (alt != 0) if (alt != 0)
m.name ~= "\n"~alt; m.name ~= "\n"~alt;
if (idx > 0) {
var path = wp.path();
# check for empty path
if (size(path) == 0)
return nil;
var n = wp.path()[-1];
} else {
var wp2idx = 1; # next waypoint var wp2idx = 1; # next waypoint
if (fp.getPlanSize() == 1) # if only have one wpt then it must be at element 0.
if (!idx) { # first point
if(fp.getPlanSize(idx) == 1) # if only have one wpt then it must be at element 0.
wp2idx = 0; wp2idx = 0;
var path = fp.getWP(wp2idx).path();
if (size(path) == 0)
return nil;
var n = fp.getWP(wp2idx).path()[0];
} }
if (idx) var n = wp.path()[-1];
else var n = fp.getWP(wp2idx).path()[0];
(m.lat,m.lon) = (n.lat,n.lon); (m.lat,m.lon) = (n.lat,n.lon);
return m; return m;
@ -82,8 +89,12 @@ var searchCmd = func {
for(var idx = 0; idx < planCount; idx += 1){ for(var idx = 0; idx < planCount; idx += 1){
var fp = driver.getFlightPlan(idx); var fp = driver.getFlightPlan(idx);
var fpSize = fp.getPlanSize(idx); var fpSize = fp.getPlanSize(idx);
for (var i = 0; i < fpSize; i+=1)
append(result, WPT_model.new(fp, i)); for (var i = 0; i < fpSize; i+=1) {
var wm = WPT_model.new(fp, i);
if (wm != nil)
append(result, wm);
}
} }
return result; return result;
}; };

View file

@ -117,6 +117,11 @@ var end_compose_message = func()
release_kbd(); release_kbd();
} }
var view_select = func(callsign)
{
view.model_view_handler.select(callsign, 1);
}
var handle_key = func(key) var handle_key = func(key)
{ {
if (key == `\n` or key == `\r` or key == `~`) if (key == `\n` or key == `\r` or key == `~`)
@ -183,18 +188,20 @@ var dialog = {
slant: getprop("/sim/gui/selected-style/fonts/mp-list/slant") or 0, slant: getprop("/sim/gui/selected-style/fonts/mp-list/slant") or 0,
}; };
me.header = ["chat", " callsign"," code"," model", " brg", func dialog.dist_hdr, func dialog.alt_hdr ~ " ", "ver", "ignore" ~ " "]; me.header = ["view", " callsign", " model", func dialog.dist_hdr, func dialog.alt_hdr ~ " ", " brg", "chat", "ignore" ~ " ", " code", "ver", " set"];
me.columns = [ me.columns = [
{ type: "button", legend: "", halign: "right", callback: "multiplayer.compose_message", "pref-height": 14, "pref-width": 14 }, { type: "checkbox", legend: "", property: "view", halign: "right", "pref-height": 14, "pref-width": 14, callback: "multiplayer.view_select", argprop: "callsign", },
{ type: "text", property: "callsign", format: " %s", label: "-----------", halign: "fill" , font: me.font }, { type: "text", property: "callsign", format: " %s", label: "-----------", halign: "fill" , font: me.font },
{ type: "text", property: "id-code", format: " %s", label: "-----", halign: "fill" , font: me.font },
{ type: "text", property: "model-short", format: " %s", label: "--------------", halign: "fill" , font: me.font }, { type: "text", property: "model-short", format: " %s", label: "--------------", halign: "fill" , font: me.font },
{ type: "text", property: "bearing-to", format: " %3.0f", label: "----", halign: "right", font: me.font },
{ type: "text", property: func dialog.dist_node, format:" %8.2f", label: "---------", halign: "right", font: me.font }, { type: "text", property: func dialog.dist_node, format:" %8.2f", label: "---------", halign: "right", font: me.font },
{ type: "text", property: func dialog.alt_node, format:" %7.0f", label: "---------", halign: "right", font: me.font }, { type: "text", property: func dialog.alt_node, format:" %7.0f", label: "---------", halign: "right", font: me.font },
{ type: "text", property: "sim/multiplay/protocol-version", format: " %s", label: "--", halign: "fill" , font: me.font }, { type: "text", property: "bearing-to", format: " %3.0f", label: "----", halign: "right", font: me.font },
{ type: "button", legend: "", halign: "right", callback: "multiplayer.compose_message", "pref-height": 14, "pref-width": 14 },
{ type: "checkbox", property: "controls/invisible", callback: "multiplayer.dialog.toggle_ignore", { type: "checkbox", property: "controls/invisible", callback: "multiplayer.dialog.toggle_ignore",
argprop: "callsign", label: "---------", halign: "right", font: me.font }, argprop: "callsign", label: "---------", halign: "right", font: me.font },
{ type: "text", property: "id-code", format: " %s", label: "-----", halign: "fill" , font: me.font },
{ type: "text", property: "sim/multiplay/protocol-version", format: " %s", label: "--", halign: "fill" , font: me.font },
{ type: "text", property: "set-loaded", format: "%s", label: "----", halign: "fill" , font: me.font },
]; ];
me.cs_warnings = {}; me.cs_warnings = {};
me.name = "who-is-online"; me.name = "who-is-online";
@ -206,6 +213,7 @@ var dialog = {
append(me.listeners, setlistener("/sim/startup/ysize", func me._redraw_())); append(me.listeners, setlistener("/sim/startup/ysize", func me._redraw_()));
append(me.listeners, setlistener("/sim/signals/reinit-gui", func me._redraw_())); append(me.listeners, setlistener("/sim/signals/reinit-gui", func me._redraw_()));
append(me.listeners, setlistener("/sim/signals/multiplayer-updated", func me._redraw_())); append(me.listeners, setlistener("/sim/signals/multiplayer-updated", func me._redraw_()));
append(me.listeners, setlistener("/sim/current-view/model-view", func me.update_view()));
}, },
create: func { create: func {
if (me.dialog != nil) if (me.dialog != nil)
@ -228,6 +236,12 @@ var dialog = {
var titlebar = me.dialog.addChild("group"); var titlebar = me.dialog.addChild("group");
titlebar.set("layout", "hbox"); titlebar.set("layout", "hbox");
var view_self = titlebar.addChild("button");
view_self.node.setValues({ "pref-height": 16, legend: "view self", default: 0 });
view_self.setBinding("nasal", "view.model_view_handler.select(getprop('/sim/multiplayer/callsign'), 1);");
titlebar.addChild("empty").set("stretch", 1);
var w = titlebar.addChild("button"); var w = titlebar.addChild("button");
w.node.setValues({ "pref-width": 16, "pref-height": 16, legend: me.unit_button, default: 0 }); w.node.setValues({ "pref-width": 16, "pref-height": 16, legend: me.unit_button, default: 0 });
w.setBinding("nasal", "multiplayer.dialog.toggle_unit(); multiplayer.dialog._redraw_()"); w.setBinding("nasal", "multiplayer.dialog.toggle_unit(); multiplayer.dialog._redraw_()");
@ -255,7 +269,7 @@ var dialog = {
var col = 0; var col = 0;
foreach (var h; me.header) { foreach (var h; me.header) {
var w = content.addChild("text"); var w = content.addChild("text");
w.node.setValues({ "font" : me.font}); w.node.setValues({ "font" : me.font});
var l = typeof(h) == "func" ? h() : h; var l = typeof(h) == "func" ? h() : h;
w.node.setValues({ "label": l, "row": row, "col": col, halign: me.columns[col].halign }); w.node.setValues({ "label": l, "row": row, "col": col, halign: me.columns[col].halign });
@ -268,8 +282,10 @@ w.node.setValues({ "font" : me.font});
foreach (var mp; model.list) { foreach (var mp; model.list) {
var col = 0; var col = 0;
var color = me.fg[2]; var color = me.fg[2];
if (mp.node.getNode("model-installed").getValue()) if (mp.node.getNode("model-installed").getValue()) {
color = me.fg[odd = !odd]; color = me.fg[odd = !odd];
color = me.fg[1];
}
else{ else{
print("no model installed; check fallback"); print("no model installed; check fallback");
var fbn = mp.node.getNode("sim/model/fallback-model-index"); var fbn = mp.node.getNode("sim/model/fallback-model-index");
@ -286,7 +302,7 @@ w.node.setValues({ "font" : me.font});
if (column.type == "button") { if (column.type == "button") {
w = content.addChild("button"); w = content.addChild("button");
w.node.setValues(column); w.node.setValues(column);
w.setBinding("nasal", column.callback ~ "(\"" ~ mp.callsign ~ ", \");"); w.setBinding("nasal", column.callback ~ "(\"" ~ mp.callsign ~ "\",);");
w.node.setValues({ row: row, col: col}); w.node.setValues({ row: row, col: col});
} else { } else {
var p = typeof(column.property) == "func" ? column.property() : column.property; var p = typeof(column.property) == "func" ? column.property() : column.property;
@ -311,6 +327,17 @@ w.node.setValues({ "font" : me.font});
me.update(me.loopid += 1); me.update(me.loopid += 1);
fgcommand("dialog-new", me.dialog.prop()); fgcommand("dialog-new", me.dialog.prop());
fgcommand("dialog-show", me.dialog.prop()); fgcommand("dialog-show", me.dialog.prop());
me.update_view();
},
update_view: func() {
# We are called when the aircraft being viewed has changed. We update
# the boxes in the 'view' column so that only the one for the aircraft
# being viewed is checked. If the user's aircraft is being viewed, none
# of these boxes will be checked.
callsign = getprop("/sim/current-view/model-view");
foreach (var mp; model.list) {
mp.node.setValues({'view': mp.callsign == callsign});
}
}, },
update: func(id) { update: func(id) {
id == me.loopid or return; id == me.loopid or return;
@ -341,8 +368,19 @@ w.node.setValues({ "font" : me.font});
else else
{ {
# Node with valid position data (and "distance!=nil"). # Node with valid position data (and "distance!=nil").
# For 'set-loaded' column, we find whether the 'set' has more
# than just the 'sim' child (which we always create even if
# we couldn't load the -set.xml, in order to provide default
# values for views' config/z-offset-m values).
var set = n.getNode("set");
var set_numchildren = 0;
if (set != nil) set_numchildren = size(set.getChildren());
var set_loaded = (set_numchildren >= 2);
n.setValues({ n.setValues({
"model-short": n.getNode("model-installed").getValue() ? mp.model : "[" ~ mp.model ~ "]", "model-short": n.getNode("model-installed").getValue() ? mp.model : "[" ~ mp.model ~ "]",
"set-loaded": set_loaded ? " *" : " ",
"bearing-to": self.course_to(ac), "bearing-to": self.course_to(ac),
"distance-to-km": distance / 1000.0, "distance-to-km": distance / 1000.0,
"distance-to-nm": distance * M2NM, "distance-to-nm": distance * M2NM,

View file

@ -42,7 +42,6 @@ var RouteManagerDelegate = {
arrivalChanged: func arrivalChanged: func
{ {
printlog('info', 'saw arrival changed');
me.flightplan.clearWPType('star'); me.flightplan.clearWPType('star');
me.flightplan.clearWPType('approach'); me.flightplan.clearWPType('approach');
if (me.flightplan.destination == nil) if (me.flightplan.destination == nil)
@ -60,10 +59,11 @@ var RouteManagerDelegate = {
if (me.flightplan.star != nil) { if (me.flightplan.star != nil) {
printlog('info', 'routing via STAR ' ~ me.flightplan.star.id); printlog('info', 'routing via STAR ' ~ me.flightplan.star.id);
var wps = me.flightplan.star.route(me.flightplan.destination_runway); var wps = me.flightplan.star.route(me.flightplan.destination_runway);
if (wps != nil) {
me.flightplan.insertWaypoints(wps, -1); me.flightplan.insertWaypoints(wps, -1);
initialApproachFix = wps[-1]; # final waypoint of STAR initialApproachFix = wps[-1]; # final waypoint of STAR
} }
}
if (me.flightplan.approach != nil) { if (me.flightplan.approach != nil) {
var wps = me.flightplan.approach.route(initialApproachFix); var wps = me.flightplan.approach.route(initialApproachFix);

View file

@ -3,11 +3,43 @@
## ##
## Nasal code for implementing view-specific functionality. ## Nasal code for implementing view-specific functionality.
# ATTENTION:
# /sim/current-view/view-number is in the range 0..viewCount, it is NOT
# the index used in aircraft XML files (e.g. <view n="100">)
# For debugging. Returns string containing description of <x>.
#
var str = func(x, prefix='') {
prefix = '';
var ret = '';
ret = ret ~ prefix ~ typeof(x) ~ ':';
if (typeof(x) == "hash") {
ret = ret ~ '{';
#prefix = prefix ~ ' ';
foreach(var key; keys(x)){
ret = ret ~ prefix ~ " '" ~ key ~ "'" ~ ':';
ret = ret ~ str(x[key], prefix ~ ' ');
}
ret = ret ~ '}'
}
else {
ret = ret ~ sprintf('%s', x);
}
return ret;
}
var index = nil; # current view index var index = nil; # current view index
var indices = {}; # view_index -> number
var views = nil; # list of all view branches (/sim/view[n]) as props.Node var views = nil; # list of all view branches (/sim/view[n]) as props.Node
var current = nil; # current view branch (e.g. /sim/view[1]) as props.Node var current = nil; # current view branch (e.g. /sim/view[1]) as props.Node
var fovProp = nil; var fovProp = nil;
# activate view by index number used in XML definition (e.g. >100)
var setViewByIndex = func(i) {
if (indices[i] != nil)
setprop("/sim/current-view/view-number", indices[i]);
}
var hasmember = func(class, member) { var hasmember = func(class, member) {
if (contains(class, member)) if (contains(class, member))
return 1; return 1;
@ -74,9 +106,9 @@ var resetFOV = func {
var resetViewPos = func { var resetViewPos = func {
var v = current.getNode("config"); var v = current.getNode("config");
setprop("/sim/current-view/x-offset-m", v.getNode("x-offset-m", 1).getValue() or 0); setprop("/sim/current-view/x-offset-m", 0);
setprop("/sim/current-view/y-offset-m", v.getNode("y-offset-m", 1).getValue() or 0); setprop("/sim/current-view/y-offset-m", 0);
setprop("/sim/current-view/z-offset-m", v.getNode("z-offset-m", 1).getValue() or 0); setprop("/sim/current-view/z-offset-m", 0);
} }
var resetViewDir = func { var resetViewDir = func {
@ -171,6 +203,18 @@ var default_handler = {
}; };
# If <from>/<path> exists and <to>/<path> doesn't, copy the former to the
# latter.
#
var set_default = func(from, path, to) {
from_ = from.getNode(path);
if (from_ != nil) {
if (to.getNode(path) == nil) {
to.setValue(path, from_.getValue());
}
}
}
## ##
# View manager. Administrates optional Nasal view handlers. # View manager. Administrates optional Nasal view handlers.
# Usage: view.manager.register(<view-id>, <view-handler>); # Usage: view.manager.register(<view-id>, <view-handler>);
@ -198,23 +242,55 @@ var default_handler = {
var manager = { var manager = {
current : { node: nil, handler: default_handler }, current : { node: nil, handler: default_handler },
init : func { init : func {
me.current = nil;
me.views = {}; me.views = {};
me.loopid = 0; me.loopid = 0;
var viewnodes = props.globals.getNode("sim").getChildren("view"); var viewnodes = props.globals.getNode("sim").getChildren("view");
forindex (var i; viewnodes) var helicopter_view = viewnodes[1];
me.views[i] = { node: viewnodes[i], handler: default_handler }; forindex (var i; viewnodes) {
# Install this view, marking as multiplayer if appropriate.
var multiplayer = 1;
if (i==4 or i==6) {
# Fly-by and Tower Look From views do not currently
# support multiplayer aircraft.
multiplayer = 0;
}
var viewnode = viewnodes[i];
me.views[i] = {
node: viewnode,
handler: default_handler,
multiplayer: multiplayer
};
# If this view is similar to helicopter view, copy across
# Helicopter View target offsets if not specified. E.g.
# this allows Tower View AGL to work on aircraft that don't
# know about it but need non-zero target-*-offset-m values
# to centre the view on the middle of the aircraft.
if (i==2 or i==3 or i==5 or i==7) {
set_default(helicopter_view, "config/target-x-offset-m", viewnode);
set_default(helicopter_view, "config/target-y-offset-m", viewnode);
set_default(helicopter_view, "config/target-z-offset-m", viewnode);
}
}
# see comment at begin of file
setlistener("/sim/current-view/view-number", func(n) { setlistener("/sim/current-view/view-number", func(n) {
manager.set_view(n.getValue()); manager.set_view(n.getValue());
}, 1); }, 1);
}, },
register : func(which, handler = nil) { register : func(which, handler = nil) {
if (num(which) == nil) var n = num(which);
which = indexof(which); if (n == nil) n = indexof(which);
if (n == nil) {
printf('Unable to register view handler: which=%s', which);
return;
}
if (handler == nil) if (handler == nil)
handler = default_handler; handler = default_handler;
me.views[which]["handler"] = handler; me.views[n]["handler"] = handler;
var viewnodes = props.globals.getNode("sim").getChildren("view");
me.views[n]["node"] = viewnodes[n];
if (hasmember(handler, "init")) if (hasmember(handler, "init"))
handler.init(me.views[which].node); handler.init(me.views[n].node);
me.set_view(); me.set_view();
}, },
set_view : func(which = nil) { set_view : func(which = nil) {
@ -224,8 +300,13 @@ var manager = {
which = indexof(which); which = indexof(which);
me.loopid += 1; me.loopid += 1;
if (me.current != nil) {
if (me.current.multiplayer) {
model_view_handler.stop();
}
if (hasmember(me.current.handler, "stop")) if (hasmember(me.current.handler, "stop"))
me.current.handler.stop(); me.current.handler.stop();
}
me.current = me.views[which]; me.current = me.views[which];
@ -233,6 +314,9 @@ var manager = {
me.current.handler.start(); me.current.handler.start();
if (hasmember(me.current.handler, "update")) if (hasmember(me.current.handler, "update"))
me._loop_(me.loopid += 1); me._loop_(me.loopid += 1);
if (me.current != nil and me.current.multiplayer) {
model_view_handler.start();
}
screenWidthCompens.update(); screenWidthCompens.update();
}, },
reset : func { reset : func {
@ -245,6 +329,20 @@ var manager = {
id == me.loopid or return; id == me.loopid or return;
settimer(func { me._loop_(id) }, me.current.handler.update() or 0); settimer(func { me._loop_(id) }, me.current.handler.update() or 0);
}, },
multiplayer_callback: func(data) {
# We are called by model_view_handler when the user wants to
# look at a different aircraft.
#
# We can be called very early due to model_view_handler_class's use
# of a listener, so we need to protect against me.current.node not
# being set up yet.
#
if (me.current.node != nil) {
me.current.node.getNode("config").setValues({
"root": data.root,});
me.current.node.getNode("config/root").setValue(data.root)
}
},
}; };
@ -346,40 +444,40 @@ var fly_by_view_handler = {
}; };
var model_view_handler = { # Helper for views that can show multiplayer aircaft as well as the user's
init: func(node) { # aircraft. Used by <manager> above.
me.viewN = node; #
me.current = nil; var model_view_handler_class = {
me.legendN = props.globals.initNode("/sim/current-view/model-view", ""); new: func() {
me.dialog = props.Node.new({ "dialog-name": "model-view" }); var m = { parents:[model_view_handler_class]};
me.listener = nil; m.current = nil;
m.legendN = props.globals.initNode("/sim/current-view/model-view", "");
m.dialog = props.Node.new({ "dialog-name": "model-view" });
m.listener = setlistener("/sim/signals/multiplayer-updated", func m._update_(), 1);
m.reset();
return m;
}, },
start: func { start: func() {
me.listener = setlistener("/sim/signals/multiplayer-updated", func me._update_(), 1);
me.reset();
fgcommand("dialog-show", me.dialog); fgcommand("dialog-show", me.dialog);
me.next(0);
}, },
stop: func { stop: func() {
fgcommand("dialog-close", me.dialog); fgcommand("dialog-close", me.dialog);
if (me.listener!=nil)
{
removelistener(me.listener);
me.listener=nil;
}
}, },
reset: func { reset: func {
me.select(0); me.select(0);
}, },
find: func(callsign) { find: func(callsign) {
forindex (var i; me.list) forindex (var i; me.list) {
if (me.list[i].callsign == callsign) if (me.list[i].callsign == callsign)
return i; return i;
}
return nil; return nil;
}, },
select: func(which, by_callsign=0) { select: func(which, by_callsign=0) {
if (by_callsign or num(which) == nil) if (by_callsign or num(which) == nil) {
which = me.find(which) or 0; # turn callsign into index which = me.find(which) or 0; # turn callsign into index
}
me.setup(me.list[which]); me.setup(me.list[which]);
}, },
next: func(step) { next: func(step) {
@ -388,40 +486,40 @@ var model_view_handler = {
me.setup(me.list[i]); me.setup(me.list[i]);
}, },
_update_: func { _update_: func {
var self = { callsign: getprop("/sim/multiplay/callsign"), model:, var self = {
node: props.globals, root: '/' }; callsign: getprop("/sim/multiplay/callsign"),
model:,
node: props.globals,
root: '/',
};
# It looks like we can get called (from me.new()) before
# multiplayer.model.list is created, so need to check whether it
# exists.
if (hasmember(multiplayer.model, 'list')) {
me.list = [self] ~ multiplayer.model.list; me.list = [self] ~ multiplayer.model.list;
}
else {
me.list = [self];
}
if (!me.find(me.current)) if (!me.find(me.current))
me.select(0); me.select(0);
}, },
setup: func(data) { setup: func(data) {
if (data.root == '/') { if (data.root == '/') {
var zoffset = getprop("/sim/chase-distance-m");
var ident = '[' ~ data.callsign ~ ']'; var ident = '[' ~ data.callsign ~ ']';
} else { } else {
var zoffset = 70;
var ident = '"' ~ data.callsign ~ '" (' ~ data.model ~ ')'; var ident = '"' ~ data.callsign ~ '" (' ~ data.model ~ ')';
} }
me.current = data.callsign; me.current = data.callsign;
me.legendN.setValue(ident); me.legendN.setValue(data.callsign);
setprop("/sim/current-view/z-offset-m", zoffset); manager.multiplayer_callback(data);
me.viewN.getNode("config").setValues({
"eye-lat-deg-path": data.root ~ "/position/latitude-deg",
"eye-lon-deg-path": data.root ~ "/position/longitude-deg",
"eye-alt-ft-path": data.root ~ "/position/altitude-ft",
"eye-heading-deg-path": data.root ~ "/orientation/heading-deg",
"target-lat-deg-path": data.root ~ "/position/latitude-deg",
"target-lon-deg-path": data.root ~ "/position/longitude-deg",
"target-alt-ft-path": data.root ~ "/position/altitude-ft",
"target-heading-deg-path": data.root ~ "/orientation/heading-deg",
"target-pitch-deg-path": data.root ~ "/orientation/pitch-deg",
"target-roll-deg-path": data.root ~ "/orientation/roll-deg",
});
}, },
}; };
var model_view_handler = model_view_handler_class.new();
# Note that gui/dialogs/model-view.xml expects to be able to call
# view.model_view_handler.next() etc.
var pilot_view_limiter = { var pilot_view_limiter = {
new : func { new : func {
@ -736,7 +834,6 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
screenWidthCompens.init(); screenWidthCompens.init();
manager.init(); manager.init();
manager.register("Fly-By View", fly_by_view_handler); manager.register("Fly-By View", fly_by_view_handler);
manager.register("Model View", model_view_handler);
}); });
_setlistener("/sim/signals/reinit", func { _setlistener("/sim/signals/reinit", func {
screenWidthCompens.update(opt:nil,force:1); screenWidthCompens.update(opt:nil,force:1);
@ -750,7 +847,7 @@ _setlistener("/sim/startup/ysize", func {
var fdm_init_listener = _setlistener("/sim/signals/fdm-initialized", func { var fdm_init_listener = _setlistener("/sim/signals/fdm-initialized", func {
removelistener(fdm_init_listener); # uninstall, so we're only called once removelistener(fdm_init_listener); # uninstall, so we are only called once
var zoffset = nil; var zoffset = nil;
foreach (var v; views) { foreach (var v; views) {
var index = v.getIndex(); var index = v.getIndex();
@ -770,6 +867,7 @@ var fdm_init_listener = _setlistener("/sim/signals/fdm-initialized", func {
} }
forindex (var i; views) { forindex (var i; views) {
indices[views[i].getIndex()] = i;
var limits = views[i].getNode("config/limits/enabled"); var limits = views[i].getNode("config/limits/enabled");
if (limits != nil) { if (limits != nil) {
func (i) { func (i) {

View file

@ -656,19 +656,8 @@ Started September 2000 by David Megginson, david@megginson.com
<type>lookat</type> <type>lookat</type>
<config> <config>
<from-model type="bool">false</from-model> <from-model type="bool">false</from-model>
<from-model-idx type="int">0</from-model-idx>
<eye-lat-deg-path>/position/latitude-deg</eye-lat-deg-path>
<eye-lon-deg-path>/position/longitude-deg</eye-lon-deg-path>
<eye-alt-ft-path>/position/altitude-ft</eye-alt-ft-path>
<eye-heading-deg-path>/orientation/heading-deg</eye-heading-deg-path>
<at-model type="bool">true</at-model> <at-model type="bool">true</at-model>
<at-model-idx type="int">0</at-model-idx> <eye-heading-deg-path>/orientation/true-heading-deg</eye-heading-deg-path>
<at-model-heading-damping type="double">0.0</at-model-heading-damping>
<target-z-offset-m type="double">0</target-z-offset-m>
<ground-level-nearplane-m type="double">0.5f</ground-level-nearplane-m>
<default-field-of-view-deg type="double">55.0</default-field-of-view-deg>
<x-offset-m type="double">0</x-offset-m>
<y-offset-m type="double">0</y-offset-m>
<z-offset-m alias="/sim/chase-distance-m"/> <z-offset-m alias="/sim/chase-distance-m"/>
</config> </config>
</view> </view>
@ -678,20 +667,13 @@ Started September 2000 by David Megginson, david@megginson.com
<type>lookat</type> <type>lookat</type>
<config> <config>
<from-model type="bool">false</from-model> <from-model type="bool">false</from-model>
<from-model-idx type="int">0</from-model-idx> <at-model type="bool">true</at-model>
<eye-lat-deg-path>/position/latitude-deg</eye-lat-deg-path>
<eye-lon-deg-path>/position/longitude-deg</eye-lon-deg-path>
<eye-alt-ft-path>/position/altitude-ft</eye-alt-ft-path>
<eye-pitch-deg-path>/orientation/pitch-deg</eye-pitch-deg-path> <eye-pitch-deg-path>/orientation/pitch-deg</eye-pitch-deg-path>
<eye-roll-deg-path>/orientation/roll-deg</eye-roll-deg-path> <eye-roll-deg-path>/orientation/roll-deg</eye-roll-deg-path>
<eye-heading-deg-path>/orientation/heading-deg</eye-heading-deg-path> <eye-heading-deg-path>/orientation/true-heading-deg</eye-heading-deg-path>
<at-model type="bool">true</at-model>
<at-model-idx type="int">0</at-model-idx>
<at-model-roll-damping type="double">1.8</at-model-roll-damping> <at-model-roll-damping type="double">1.8</at-model-roll-damping>
<at-model-pitch-damping type="double">1.8</at-model-pitch-damping> <at-model-pitch-damping type="double">1.8</at-model-pitch-damping>
<at-model-heading-damping type="double">1.8</at-model-heading-damping> <at-model-heading-damping type="double">1.8</at-model-heading-damping>
<target-z-offset-m type="double">0</target-z-offset-m>
<ground-level-nearplane-m type="double">0.5f</ground-level-nearplane-m>
<default-field-of-view-deg type="double">55.0</default-field-of-view-deg> <default-field-of-view-deg type="double">55.0</default-field-of-view-deg>
<x-offset-m type="double">0</x-offset-m> <x-offset-m type="double">0</x-offset-m>
<y-offset-m type="double">5</y-offset-m> <y-offset-m type="double">5</y-offset-m>
@ -742,16 +724,15 @@ Started September 2000 by David Megginson, david@megginson.com
<type>lookat</type> <type>lookat</type>
<config> <config>
<from-model type="bool">false</from-model> <from-model type="bool">false</from-model>
<from-model-idx type="int">0</from-model-idx>
<eye-lat-deg-path>/position/latitude-deg</eye-lat-deg-path>
<eye-lon-deg-path>/position/longitude-deg</eye-lon-deg-path>
<eye-alt-ft-path>/position/altitude-ft</eye-alt-ft-path>
<at-model type="bool">true</at-model> <at-model type="bool">true</at-model>
<at-model-idx type="int">0</at-model-idx> <eye-pitch-deg-path>/orientation/pitch-deg</eye-pitch-deg-path>
<ground-level-nearplane-m type="double">0.5f</ground-level-nearplane-m> <eye-roll-deg-path>/orientation/roll-deg</eye-roll-deg-path>
<at-model-roll-damping type="double">1.8</at-model-roll-damping>
<at-model-pitch-damping type="double">1.8</at-model-pitch-damping>
<at-model-heading-damping type="double">1.8</at-model-heading-damping>
<default-field-of-view-deg type="double">55.0</default-field-of-view-deg> <default-field-of-view-deg type="double">55.0</default-field-of-view-deg>
<x-offset-m type="double">25</x-offset-m> <x-offset-m type="double">0</x-offset-m>
<y-offset-m type="double">2</y-offset-m> <y-offset-m type="double">5</y-offset-m>
<z-offset-m alias="/sim/chase-distance-m"/> <z-offset-m alias="/sim/chase-distance-m"/>
</config> </config>
</view> </view>
@ -770,19 +751,17 @@ Started September 2000 by David Megginson, david@megginson.com
</config> </config>
</view> </view>
<view> <view>
<name>Model View</name> <name>Tower View AGL</name>
<enabled type="bool" userarchive="y">true</enabled> <enabled type="bool" userarchive="y">true</enabled>
<type>lookat</type> <type>lookat</type>
<config> <config>
<from-model type="bool">false</from-model> <eye-lat-deg-path>/sim/tower/latitude-deg</eye-lat-deg-path>
<from-model-idx type="int">0</from-model-idx> <eye-lon-deg-path>/sim/tower/longitude-deg</eye-lon-deg-path>
<eye-lat-deg-path>/sim/viewer/eye/latitude-deg</eye-lat-deg-path> <eye-alt-ft-path>/sim/tower/altitude-ft</eye-alt-ft-path>
<eye-lon-deg-path>/sim/viewer/eye/longitude-deg</eye-lon-deg-path> <eye-roll-deg-path>/sim/tower/roll-deg</eye-roll-deg-path>
<eye-alt-ft-path>/sim/viewer/eye/altitude-ft</eye-alt-ft-path> <eye-pitch-deg-path>/sim/tower/pitch-deg</eye-pitch-deg-path>
<eye-heading-deg-path>/sim/viewer/eye/heading-deg</eye-heading-deg-path> <eye-heading-deg-path>/sim/tower/heading-deg</eye-heading-deg-path>
<eye-pitch-deg-path>/sim/viewer/eye/pitch-deg</eye-pitch-deg-path> <at-model type="bool">true</at-model>
<eye-roll-deg-path>/sim/viewer/eye/roll-deg</eye-roll-deg-path>
<at-model type="bool">false</at-model>
<at-model-idx type="int">0</at-model-idx> <at-model-idx type="int">0</at-model-idx>
<target-lat-deg-path>/sim/viewer/target/latitude-deg</target-lat-deg-path> <target-lat-deg-path>/sim/viewer/target/latitude-deg</target-lat-deg-path>
<target-lon-deg-path>/sim/viewer/target/longitude-deg</target-lon-deg-path> <target-lon-deg-path>/sim/viewer/target/longitude-deg</target-lon-deg-path>
@ -790,17 +769,13 @@ Started September 2000 by David Megginson, david@megginson.com
<target-heading-deg-path>/sim/viewer/target/heading-deg</target-heading-deg-path> <target-heading-deg-path>/sim/viewer/target/heading-deg</target-heading-deg-path>
<target-pitch-deg-path>/sim/viewer/target/pitch-deg</target-pitch-deg-path> <target-pitch-deg-path>/sim/viewer/target/pitch-deg</target-pitch-deg-path>
<target-roll-deg-path>/sim/viewer/target/roll-deg</target-roll-deg-path> <target-roll-deg-path>/sim/viewer/target/roll-deg</target-roll-deg-path>
<target-x-offset-m type="double">0</target-x-offset-m> <ground-level-nearplane-m type="double">10.0f</ground-level-nearplane-m>
<target-y-offset-m type="double">0</target-y-offset-m>
<target-z-offset-m type="double">0</target-z-offset-m>
<ground-level-nearplane-m type="double">0.5f</ground-level-nearplane-m>
<default-field-of-view-deg type="double">55.0</default-field-of-view-deg> <default-field-of-view-deg type="double">55.0</default-field-of-view-deg>
<x-offset-m type="double">0</x-offset-m> <x-offset-m type="double">0</x-offset-m>
<y-offset-m type="double">0</y-offset-m> <y-offset-m type="double">0</y-offset-m>
<z-offset-m type="double">100</z-offset-m> <z-offset-m type="double">0</z-offset-m>
<heading-offset-deg type="double">0</heading-offset-deg> <lookat-agl type="bool">true</lookat-agl>
<pitch-offset-deg type="double">0</pitch-offset-deg> <lookat-agl-damping type="double">2.2</lookat-agl-damping>
<roll-offset-deg type="double">0</roll-offset-deg>
</config> </config>
</view> </view>
<menubar> <menubar>

View file

@ -3,7 +3,7 @@
<PropertyList> <PropertyList>
<name>model-view-select</name> <name>model-view-select</name>
<dialog-name>model-view-select</dialog-name> <dialog-name>model-view-select</dialog-name>
<x>46</x> <x>5</x>
<y>33</y> <y>33</y>
<layout>hbox</layout> <layout>hbox</layout>
<default-padding>0</default-padding> <default-padding>0</default-padding>

View file

@ -44,6 +44,15 @@
<binding><command>dialog-apply</command></binding> <binding><command>dialog-apply</command></binding>
</dial> </dial>
<button>
<legend>Zero</legend>
<binding>
<command>property-assign</command>
<property>/sim/current-view/x-offset-m</property>
<value>0</value>
</binding>
</button>
<text> <text>
<label>-100.00</label> <label>-100.00</label>
<format>%-0.2f m</format> <format>%-0.2f m</format>
@ -65,6 +74,15 @@
<binding><command>dialog-apply</command></binding> <binding><command>dialog-apply</command></binding>
</dial> </dial>
<button>
<legend>Zero</legend>
<binding>
<command>property-assign</command>
<property>/sim/current-view/y-offset-m</property>
<value>0</value>
</binding>
</button>
<text> <text>
<label>-100.00</label> <label>-100.00</label>
<format>%-0.2f m</format> <format>%-0.2f m</format>
@ -86,6 +104,15 @@
<binding><command>dialog-apply</command></binding> <binding><command>dialog-apply</command></binding>
</dial> </dial>
<button>
<legend>Zero</legend>
<binding>
<command>property-assign</command>
<property>/sim/current-view/z-offset-m</property>
<value>0</value>
</binding>
</button>
<text> <text>
<label>-100.00</label> <label>-100.00</label>
<format>%-0.2f m</format> <format>%-0.2f m</format>