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"?>
<!-- CRJ-100LR replaced by Aircraft/CRJ-200/CRJ-200-Lufthansa.xml -->
<trafficlist>
<aircraft>
<model>Aircraft/CRJ-200/CRJ-200-Lufthansa.xml</model>

View file

@ -1,9 +1,7 @@
<?xml version="1.0"?>
<!-- Author Marcin Kuzniar - Timetable APR 2019 -->
<!-- Author Marcin Kuzniar - Timetable JUN 2019 -->
<trafficlist>
<aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -16,8 +14,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJK</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -30,8 +28,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJL</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -44,8 +42,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJM</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -58,8 +56,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJN</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -72,8 +70,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJO</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -86,8 +84,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJP</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -100,8 +98,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJQ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -114,8 +112,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJR</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -128,8 +126,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJS</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -142,8 +140,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJT</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -156,8 +154,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJU</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -170,8 +168,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJV</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -184,8 +182,8 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJW</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
</aircraft>
<aircraft>
<model>Aircraft/E95/E95-AirDolomiti.xml</model>
<livery>DLA</livery>
<airline>DLA</airline>
@ -198,7 +196,7 @@
<performance-class>jet_transport</performance-class>
<registration>I-ADJX</registration>
<heavy>false</heavy>
</aircraft>
</aircraft>
<flight>
<callsign>EN8010</callsign>
<required-aircraft>E95-DLA</required-aircraft>
@ -2299,6 +2297,36 @@
</arrival>
<repeat>24Hr</repeat>
</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>
<callsign>LH1670</callsign>
<required-aircraft>E95-DLA</required-aircraft>
@ -2779,6 +2807,36 @@
</arrival>
<repeat>24Hr</repeat>
</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>
<callsign>LH1964</callsign>
<required-aircraft>E95-DLA</required-aircraft>
@ -3139,6 +3197,66 @@
</arrival>
<repeat>WEEK</repeat>
</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>
<callsign>LH2292</callsign>
<required-aircraft>E95-DLA</required-aircraft>
@ -3169,6 +3287,96 @@
</arrival>
<repeat>WEEK</repeat>
</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>
<callsign>LH2488</callsign>
<required-aircraft>E95-DLA</required-aircraft>
@ -3177,7 +3385,7 @@
<port>EDDM</port>
<time>6/12:25:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<cruise-alt>380</cruise-alt>
<arrival>
<port>EGJJ</port>
<time>6/14:30:00</time>
@ -3192,15 +3400,41 @@
<port>EGJJ</port>
<time>6/15:15:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDM</port>
<time>6/17:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</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>

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-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification>
<texture n="7">
<image>Models/Effects/exterior/dirt.png</image>
<image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type>
<filter>linear-mipmap-linear</filter>
<wrap-s>repeat</wrap-s>

View file

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

View file

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

View file

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

View file

@ -7,7 +7,7 @@
<grain-texture-enabled type="int">1</grain-texture-enabled>
<grain-magnification type="float"><use>/environment/aircraft-effects/dirt-wing</use></grain-magnification>
<texture n="7">
<image>Models/Effects/exterior/dirt.png</image>
<image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type>
<filter>linear-mipmap-linear</filter>
<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-magnification type="float"><use>/environment/aircraft-effects/dirt-fuselage</use></grain-magnification>
<texture n="7">
<image>Models/Effects/exterior/dirt.png</image>
<image>Aircraft/c172p/Models/Effects/exterior/dirt.png</image>
<type>2d</type>
<filter>linear-mipmap-linear</filter>
<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>
<!--
Bendix/King KX155/165 COMM/NAV radio
Use this instrument as COMM1/NAV1 radio
Bendix/King KX155/165 COM/NAV radio
Use this instrument as COM1/NAV1 radio
Created by Torsten Dreyer, October 2008
@ -39,6 +39,7 @@
<comm-dial-mhz>instrumentation/comm[0]/frequencies/dial-mhz</comm-dial-mhz>
<comm-volume>instrumentation/comm[0]/volume-selected</comm-volume>
<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-selected>instrumentation/nav[0]/frequencies/selected-mhz</nav-frq-selected>
<nav-frq-standby>instrumentation/nav[0]/frequencies/standby-mhz</nav-frq-standby>
@ -52,41 +53,40 @@
<effect>
<inherits-from>../../../../Effects/interior/lm-kx165-1r</inherits-from>
<object-name>CommKnobs</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKnobs</object-name>
<object-name>NavVolume</object-name>
<object-name>CommKHz</object-name>
<object-name>CommMHz</object-name>
<object-name>CommToggle</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<object-name>COMknobKHZ</object-name>
<object-name>COMknobMHZ</object-name>
<object-name>COMxfer</object-name>
<object-name>COMvol</object-name>
<object-name>COMchan</object-name>
<object-name>NAVknobKHZ</object-name>
<object-name>NAVknobMHZ</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>NAVvol</object-name>
</effect>
<effect>
<inherits-from>../../../../Effects/interior/lm-kx165-1</inherits-from>
<object-name>CommToggle</object-name>
<object-name>NavToggle</object-name>
<object-name>Chassis</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>KX165</object-name>
</effect>
<effect>
<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>CommStby100M</object-name>
<object-name>CommStby10K</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>
@ -101,25 +101,23 @@
<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>
<animation>
<type>material</type>
<object-name>CommToggle</object-name>
<object-name>NavToggle</object-name>
<object-name>Chassis</object-name>
<object-name>CommKnobs</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKnobs</object-name>
<object-name>NavVolume</object-name>
<object-name>CommKHz</object-name>
<object-name>CommMHz</object-name>
<object-name>CommToggle</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<object-name>KX165</object-name>
<object-name>COMknobKHZ</object-name>
<object-name>COMknobMHZ</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>COMvol</object-name>
<object-name>NAVknobKHZ</object-name>
<object-name>NAVknobMHZ</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>NAVvol</object-name>
<condition>
<not>
<property>/sim/rendering/shaders/skydome</property>
@ -132,99 +130,80 @@
</emission>
</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>
<type>material</type>
<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>COMknobKHZ</object-name>
<object-name>COMknobMHZ</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>COMvol</object-name>
<object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name>
<object-name>CommStby1K</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>CommUse1K</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>NAVknobKHZ</object-name>
<object-name>NAVknobMHZ</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>NAVvol</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>
<object-name>KX165Line</object-name>
<object-name>KX165</object-name>
<object-name>Screen</object-name>
<property-base>/sim/instrumentation/comm[0]</property-base>
<texture-prop>texture-file</texture-prop>
</animation>
<animation>
<type>select</type>
<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>CommStby100M</object-name>
<object-name>CommStby10K</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>
<property>/sim/model/c172p/lighting/comm0-power</property>
</condition>
@ -232,8 +211,10 @@
<animation>
<type>material</type>
<object-name>CommToggle</object-name>
<object-name>NavToggle</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<condition>
<not>
<property>sim/rendering/rembrandt/enabled</property>
@ -249,10 +230,33 @@
<animation>
<type>material</type>
<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>CommStby100M</object-name>
<object-name>CommStby10K</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>
<and>
<not>
@ -271,20 +275,45 @@
<factor-prop>/sim/model/c172p/lighting/comm0</factor-prop>
</emission>
</animation>
<effect>
<inherits-from>Effects/model-transparent</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>CommStby100M</object-name>
<object-name>CommStby10K</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>
<!-- Comm part -->
<animation>
<type>translate</type>
<object-name>CommToggle</object-name>
<object-name>COMxfer</object-name>
<property alias="../../params/comm-frq-swp"/>
<factor>-0.004</factor>
<factor>-0.003</factor>
<axis>
<x>1</x>
<y>0</y>
@ -362,6 +391,20 @@
</axis>
</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>
<type>textranslate</type>
<object-name>CommStby100M</object-name>
@ -432,12 +475,26 @@
</axis>
</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 -->
<animation>
<type>translate</type>
<object-name>NavToggle</object-name>
<object-name>NAVxfer</object-name>
<property alias="../../params/nav-frq-swp"/>
<factor>-0.004</factor>
<factor>-0.003</factor>
<axis>
<x>1</x>
<y>0</y>
@ -588,7 +645,7 @@
<!-- Knobs and buttons -->
<animation>
<type>translate</type>
<object-name>NavVolume</object-name>
<object-name>NAVvol</object-name>
<property alias="../../params/nav-audio"/>
<factor>0.002</factor>
<axis>
@ -602,7 +659,7 @@
<!-- Comm part -->
<animation>
<type>knob</type>
<object-name>CommVolume</object-name>
<object-name>COMvol</object-name>
<property alias="../../params/comm-volume"/>
<factor>-65</factor>
<axis>
@ -611,9 +668,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.35003</x-m>
<y-m> 0.05092</y-m>
<z-m> 0.06991</z-m>
<x-m>-0.34939</x-m>
<y-m> 0.05082</y-m>
<z-m> 0.07122</z-m>
</center>
<action>
<binding>
@ -684,9 +741,33 @@
</hovered>
</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>
<type>knob</type>
<object-name>CommKHz</object-name>
<object-name>COMknobKHZ</object-name>
<property alias="/params/comm-dial-khz"/>
<factor>-0.25</factor>
<axis>
@ -695,24 +776,11 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34721</x-m>
<y-m> 0.09092</y-m>
<z-m> 0.07191</z-m>
<x-m>-0.34726</x-m>
<y-m> 0.09337</y-m>
<z-m> 0.07401</z-m>
</center>
<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>
<command>property-adjust</command>
<property alias="/params/comm-dial-khz"/>
@ -721,23 +789,52 @@
<max>1440</max>
<wrap>true</wrap>
</binding>
</action>
<increase>
<binding>
<command>nasal</command>
<script>
c172p.increment(0, 1);
</script>
</binding>
<binding>
<command>nasal</command>
<script>c172p.click("kx165-1-dial")</script>
</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>
<binding>
<command>set-tooltip</command>
<tooltip-id>comm1-kHz</tooltip-id>
<label>Adjust COM1 kHz</label>
<label>Adjust COM1 kHz; Shift click to toggle 8.33</label>
</binding>
</hovered>
</animation>
<animation>
<type>knob</type>
<object-name>CommMHz</object-name>
<object-name>COMknobMHZ</object-name>
<property alias="/params/comm-dial-mhz"/>
<factor>-0.25</factor>
<axis>
@ -746,9 +843,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34721</x-m>
<y-m> 0.09092</y-m>
<z-m> 0.07191</z-m>
<x-m>-0.34954</x-m>
<y-m> 0.09337</y-m>
<z-m> 0.07401</z-m>
</center>
<action>
<binding>
@ -759,7 +856,7 @@
<property alias="/params/comm-frq-standby"/>
<factor>1</factor>
<min>118.0</min>
<max>137.0</max>
<max>136.99167</max>
<wrap>true</wrap>
<mask>integer</mask>
</binding>
@ -787,7 +884,7 @@
<animation>
<type>pick</type>
<object-name>CommToggle</object-name>
<object-name>COMxfer</object-name>
<visible>true</visible>
<action>
<button>0</button>
@ -830,7 +927,7 @@
<!-- Nav part -->
<animation>
<type>knob</type>
<object-name>NavVolume</object-name>
<object-name>NAVvol</object-name>
<property alias="../../params/nav-volume"/>
<factor>-65</factor>
<axis>
@ -839,9 +936,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.35003</x-m>
<y-m> 0.13092</y-m>
<z-m>0.06991</z-m>
<x-m>-0.34939</x-m>
<y-m> 0.13118</y-m>
<z-m> 0.07122</z-m>
</center>
<action>
<binding>
@ -890,7 +987,7 @@
<animation>
<type>knob</type>
<object-name>NavKHz</object-name>
<object-name>NAVknobKHZ</object-name>
<property alias="/params/nav-dial-khz"/>
<factor>-0.25</factor>
<axis>
@ -899,9 +996,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34568</x-m>
<y-m> 0.17092</y-m>
<z-m> 0.07191</z-m>
<x-m>-0.34726</x-m>
<y-m> 0.17527</y-m>
<z-m> 0.07401</z-m>
</center>
<action>
<binding>
@ -941,7 +1038,7 @@
<animation>
<type>knob</type>
<object-name>NavMHz</object-name>
<object-name>NAVknobMHZ</object-name>
<property alias="/params/nav-dial-mhz"/>
<factor>-0.25</factor>
<axis>
@ -950,9 +1047,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34568</x-m>
<y-m> 0.17092</y-m>
<z-m> 0.07191</z-m>
<x-m>-0.34954</x-m>
<y-m> 0.17527</y-m>
<z-m> 0.07401</z-m>
</center>
<action>
<binding>
@ -991,7 +1088,7 @@
<animation>
<type>pick</type>
<object-name>NavToggle</object-name>
<object-name>NAVxfer</object-name>
<visible>true</visible>
<action>
<button>0</button>

View file

@ -2,8 +2,8 @@
<PropertyList>
<!--
Bendix/King KX155/165 COMM/NAV radio
Use this instrument as COMM1/NAV1 radio
Bendix/King KX155/165 COM/NAV radio
Use this instrument as COM1/NAV1 radio
Created by Torsten Dreyer, October 2008
@ -39,6 +39,7 @@
<comm-dial-mhz>instrumentation/comm[1]/frequencies/dial-mhz</comm-dial-mhz>
<comm-volume>instrumentation/comm[1]/volume-selected</comm-volume>
<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-selected>instrumentation/nav[1]/frequencies/selected-mhz</nav-frq-selected>
<nav-frq-standby>instrumentation/nav[1]/frequencies/standby-mhz</nav-frq-standby>
@ -52,41 +53,40 @@
<effect>
<inherits-from>../../../../Effects/interior/lm-kx165-2r</inherits-from>
<object-name>CommKnobs</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKnobs</object-name>
<object-name>NavVolume</object-name>
<object-name>CommKHz</object-name>
<object-name>CommMHz</object-name>
<object-name>CommToggle</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<object-name>COMknobKHZ</object-name>
<object-name>COMknobMHZ</object-name>
<object-name>COMxfer</object-name>
<object-name>COMvol</object-name>
<object-name>COMchan</object-name>
<object-name>NAVknobKHZ</object-name>
<object-name>NAVknobMHZ</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>NAVvol</object-name>
</effect>
<effect>
<inherits-from>../../../../Effects/interior/lm-kx165-2</inherits-from>
<object-name>CommToggle</object-name>
<object-name>NavToggle</object-name>
<object-name>Chassis</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>KX165</object-name>
</effect>
<effect>
<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>CommStby100M</object-name>
<object-name>CommStby10K</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>
@ -101,25 +101,23 @@
<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>
<animation>
<type>material</type>
<object-name>CommToggle</object-name>
<object-name>NavToggle</object-name>
<object-name>Chassis</object-name>
<object-name>CommKnobs</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKnobs</object-name>
<object-name>NavVolume</object-name>
<object-name>CommKHz</object-name>
<object-name>CommMHz</object-name>
<object-name>CommToggle</object-name>
<object-name>CommVolume</object-name>
<object-name>NavKHz</object-name>
<object-name>NavMHz</object-name>
<object-name>NavToggle</object-name>
<object-name>NavVolume</object-name>
<object-name>KX165</object-name>
<object-name>COMknobKHZ</object-name>
<object-name>COMknobMHZ</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>COMvol</object-name>
<object-name>NAVknobKHZ</object-name>
<object-name>NAVknobMHZ</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>NAVvol</object-name>
<condition>
<not>
<property>/sim/rendering/shaders/skydome</property>
@ -132,99 +130,80 @@
</emission>
</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>
<type>material</type>
<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>COMknobKHZ</object-name>
<object-name>COMknobMHZ</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>COMvol</object-name>
<object-name>CommStby100K</object-name>
<object-name>CommStby100M</object-name>
<object-name>CommStby10K</object-name>
<object-name>CommStby10M</object-name>
<object-name>CommStby1K</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>CommUse1K</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>NAVknobKHZ</object-name>
<object-name>NAVknobMHZ</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<object-name>NAVvol</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>
<object-name>KX165Line</object-name>
<object-name>KX165</object-name>
<object-name>Screen</object-name>
<property-base>/sim/instrumentation/comm[1]</property-base>
<texture-prop>texture-file</texture-prop>
</animation>
<animation>
<type>select</type>
<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>CommStby100M</object-name>
<object-name>CommStby10K</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>
<property>/sim/model/c172p/lighting/comm1-power</property>
</condition>
@ -232,8 +211,10 @@
<animation>
<type>material</type>
<object-name>CommToggle</object-name>
<object-name>NavToggle</object-name>
<object-name>COMxfer</object-name>
<object-name>COMchan</object-name>
<object-name>NAVxfer</object-name>
<object-name>NAVmode</object-name>
<condition>
<not>
<property>sim/rendering/rembrandt/enabled</property>
@ -249,10 +230,33 @@
<animation>
<type>material</type>
<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>CommStby100M</object-name>
<object-name>CommStby10K</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>
<and>
<not>
@ -271,20 +275,45 @@
<factor-prop>/sim/model/c172p/lighting/comm1</factor-prop>
</emission>
</animation>
<effect>
<inherits-from>Effects/model-transparent</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>CommStby100M</object-name>
<object-name>CommStby10K</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>
<!-- Comm part -->
<!-- comm part -->
<animation>
<type>translate</type>
<object-name>CommToggle</object-name>
<object-name>COMxfer</object-name>
<property alias="../../params/comm-frq-swp"/>
<factor>-0.004</factor>
<factor>-0.003</factor>
<axis>
<x>1</x>
<y>0</y>
@ -362,6 +391,20 @@
</axis>
</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>
<type>textranslate</type>
<object-name>CommStby100M</object-name>
@ -432,12 +475,26 @@
</axis>
</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 -->
<animation>
<type>translate</type>
<object-name>NavToggle</object-name>
<object-name>NAVxfer</object-name>
<property alias="../../params/nav-frq-swp"/>
<factor>-0.004</factor>
<factor>-0.003</factor>
<axis>
<x>1</x>
<y>0</y>
@ -585,10 +642,9 @@
</axis>
</animation>
<!-- Knobs and buttons -->
<animation>
<type>translate</type>
<object-name>NavVolume</object-name>
<object-name>NAVvol</object-name>
<property alias="../../params/nav-audio"/>
<factor>0.002</factor>
<axis>
@ -602,7 +658,7 @@
<!-- Comm part -->
<animation>
<type>knob</type>
<object-name>CommVolume</object-name>
<object-name>COMvol</object-name>
<property alias="../../params/comm-volume"/>
<factor>-65</factor>
<axis>
@ -611,9 +667,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34509</x-m>
<y-m> 0.05097</y-m>
<z-m> 0.01597</z-m>
<x-m>-0.34939</x-m>
<y-m> 0.05132</y-m>
<z-m> 0.01737</z-m>
</center>
<action>
<binding>
@ -684,9 +740,33 @@
</hovered>
</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>
<type>knob</type>
<object-name>CommKHz</object-name>
<object-name>COMknobKHZ</object-name>
<property alias="/params/comm-dial-khz"/>
<factor>-0.25</factor>
<axis>
@ -695,24 +775,11 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34727</x-m>
<y-m> 0.09097</y-m>
<z-m> 0.01797</z-m>
<x-m>-0.34726</x-m>
<y-m> 0.09336</y-m>
<z-m> 0.02016</z-m>
</center>
<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>
<command>property-adjust</command>
<property alias="/params/comm-dial-khz"/>
@ -721,23 +788,52 @@
<max>1440</max>
<wrap>true</wrap>
</binding>
</action>
<increase>
<binding>
<command>nasal</command>
<script>
c172p.increment(1, 1);
</script>
</binding>
<binding>
<command>nasal</command>
<script>c172p.click("kx165-2-dial")</script>
</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>
<binding>
<command>set-tooltip</command>
<tooltip-id>comm2-kHz</tooltip-id>
<label>Adjust COM2 kHz</label>
<label>Adjust COM2 kHz; Shift click to toggle 8.33</label>
</binding>
</hovered>
</animation>
<animation>
<type>knob</type>
<object-name>CommMHz</object-name>
<object-name>COMknobMHZ</object-name>
<property alias="/params/comm-dial-mhz"/>
<factor>-0.25</factor>
<axis>
@ -746,9 +842,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34727</x-m>
<y-m> 0.09097</y-m>
<z-m> 0.01797</z-m>
<x-m>-0.34954</x-m>
<y-m> 0.09337</y-m>
<z-m> 0.02016</z-m>
</center>
<action>
<binding>
@ -759,7 +855,7 @@
<property alias="/params/comm-frq-standby"/>
<factor>1</factor>
<min>118.0</min>
<max>137.0</max>
<max>136.99167</max>
<wrap>true</wrap>
<mask>integer</mask>
</binding>
@ -787,7 +883,7 @@
<animation>
<type>pick</type>
<object-name>CommToggle</object-name>
<object-name>COMxfer</object-name>
<visible>true</visible>
<action>
<button>0</button>
@ -821,7 +917,7 @@
<hovered>
<binding>
<command>set-tooltip</command>
<tooltip-id>comm2-toggle</tooltip-id>
<tooltip-id>comm1-toggle</tooltip-id>
<label>Swap COM2 frequencies</label>
</binding>
</hovered>
@ -830,7 +926,7 @@
<!-- Nav part -->
<animation>
<type>knob</type>
<object-name>NavVolume</object-name>
<object-name>NAVvol</object-name>
<property alias="../../params/nav-volume"/>
<factor>-65</factor>
<axis>
@ -839,9 +935,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.35009</x-m>
<y-m> 0.13097</y-m>
<z-m> 0.01597</z-m>
<x-m>-0.34939</x-m>
<y-m> 0.13118</y-m>
<z-m> 0.01737</z-m>
</center>
<action>
<binding>
@ -866,7 +962,7 @@
<hovered>
<binding>
<command>set-tooltip</command>
<tooltip-id>nav2-volume</tooltip-id>
<tooltip-id>nav1-volume</tooltip-id>
<label>%s</label>
<measure-text>NAV2 Volume: 100% ; Ident disabled (Shift + click to pull)</measure-text>
<property alias="../../../../params/nav-volume"/>
@ -890,7 +986,7 @@
<animation>
<type>knob</type>
<object-name>NavKHz</object-name>
<object-name>NAVknobKHZ</object-name>
<property alias="/params/nav-dial-khz"/>
<factor>-0.25</factor>
<axis>
@ -899,9 +995,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34574</x-m>
<y-m> 0.17097</y-m>
<z-m> 0.01797</z-m>
<x-m>-0.34726</x-m>
<y-m> 0.17527</y-m>
<z-m> 0.02016</z-m>
</center>
<action>
<binding>
@ -933,7 +1029,7 @@
<hovered>
<binding>
<command>set-tooltip</command>
<tooltip-id>nav2-kHz</tooltip-id>
<tooltip-id>nav1-kHz</tooltip-id>
<label>Adjust NAV2 kHz</label>
</binding>
</hovered>
@ -941,7 +1037,7 @@
<animation>
<type>knob</type>
<object-name>NavMHz</object-name>
<object-name>NAVknobMHZ</object-name>
<property alias="/params/nav-dial-mhz"/>
<factor>-0.25</factor>
<axis>
@ -950,9 +1046,9 @@
<z>0</z>
</axis>
<center>
<x-m>-0.34574</x-m>
<y-m> 0.17097</y-m>
<z-m> 0.01797</z-m>
<x-m>-0.34954</x-m>
<y-m> 0.17527</y-m>
<z-m> 0.02016</z-m>
</center>
<action>
<binding>
@ -991,7 +1087,7 @@
<animation>
<type>pick</type>
<object-name>NavToggle</object-name>
<object-name>NAVxfer</object-name>
<visible>true</visible>
<action>
<button>0</button>
@ -1008,7 +1104,7 @@
</binding>
<binding>
<command>nasal</command>
<script>c172p.click("kx165-2")</script>
<script>c172p.click("kx165-1")</script>
</binding>
<mod-up>
<binding>
@ -1025,7 +1121,7 @@
<hovered>
<binding>
<command>set-tooltip</command>
<tooltip-id>nav2-toggle</tooltip-id>
<tooltip-id>nav1-toggle</tooltip-id>
<label>Swap NAV2 frequencies</label>
</binding>
</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 "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 "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 "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
@ -71208,7 +71208,7 @@ kids 0
OBJECT poly
name "glass_panel"
data 10
Circle.014
Circle.015
crease 180.0
numvert 513
-0.36977 0.02208 0.06724
@ -71690,14 +71690,6 @@ numvert 513
-0.34967 0.03191 -0.11597
-0.34967 0.05254 -0.18965
-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.10049 -0.05833
-0.35218 -0.08225 -0.14815
@ -71724,6 +71716,14 @@ numvert 513
-0.35648 0.03007 -0.40629
-0.35648 0.03569 -0.43268
-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
SURF 0X10
mat 16
@ -72261,58 +72261,58 @@ refs 4
SURF 0X0
mat 16
refs 4
480 0.238006 0.987558
482 0.238277 0.73561
481 0.307519 0.735342
479 0.307657 0.987558
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
480 0.815238 0.320389
482 0.815598 0.01324
481 0.876815 0.012935
479 0.876815 0.32041
SURF 0X0
mat 16
refs 10
496 0.723538 0.260261
497 0.723538 0.035975
498 0.742945 0.012935
491 0.796492 0.013389
492 0.815238 0.035939
499 0.815238 0.070373
500 0.815238 0.128039
493 0.815238 0.26154
494 0.798547 0.281905
495 0.741095 0.281905
488 0.723538 0.260261
489 0.723538 0.035975
490 0.742945 0.012935
483 0.796492 0.013389
484 0.815238 0.035939
491 0.815238 0.070373
492 0.815238 0.128039
485 0.815238 0.26154
486 0.798547 0.281905
487 0.741095 0.281905
SURF 0X0
mat 16
refs 4
502 0.948794 1
504 0.949094 0.49508
503 1 0.494542
501 1 0.999999
494 0.948794 1
496 0.949094 0.49508
495 1 0.494542
493 1 0.999999
SURF 0X0
mat 16
refs 4
506 0.946466 0.327345
508 0.946624 0.013271
507 0.973496 0.012935
505 0.973496 0.327342
498 0.946466 0.327345
500 0.946624 0.013271
499 0.973496 0.012935
497 0.973496 0.327342
SURF 0X0
mat 16
refs 4
510 0.307657 0.825695
512 0.307771 0.735433
511 0.326626 0.735342
509 0.326626 0.825702
502 0.307657 0.825695
504 0.307771 0.735433
503 0.326626 0.735342
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
OBJECT group
name "GROUP_FrontPanels"

View file

@ -164,31 +164,48 @@
<z-m> 0.08948</z-m>
<heading-deg>-19.0</heading-deg>
</offsets>
<condition>
<not>
<equals>
<property alias="/params/bushkit"/>
<value>4</value>
</equals>
</not>
</condition>
</model>
<animation>
<type>translate</type>
<object-name>Garmin196-GPS-non-Canvas</object-name>
<property>/Interior/Panel/Instruments/garmin196/move</property>
<factor>0.1</factor>
<axis>
<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>
<name>Garmin196-GPS-non-Canvas</name>
<path>Interior/Panel/Instruments/garmin196/garmin196.xml</path>
<name>Garmin196-GPS-support</name>
<path>Interior/Panel/garmin196/garmin196_support.xml</path>
<offsets>
<x-m>-0.305</x-m>
<y-m> 0.36584</y-m>
<z-m> 0.08948</z-m>
<heading-deg>-19.0</heading-deg>
<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>
<condition>
<equals>
<property alias="/params/bushkit"/>
<value>4</value>
</equals>
</condition>
</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>
<name>GPS-Model</name>
@ -316,36 +333,6 @@
</condition>
</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>
<load>
var livery_update = aircraft.livery_update.new(
@ -3033,7 +3020,7 @@
<font>Helvetica.txf</font>
<character-size type="double">0.005</character-size>
<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-width>0.07</max-width>
<font-resolution>
@ -3056,7 +3043,7 @@
<font>Helvetica.txf</font>
<character-size type="double">0.005</character-size>
<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-width>0.07</max-width>
<font-resolution>
@ -3079,7 +3066,7 @@
<font>Helvetica.txf</font>
<character-size type="double">0.005</character-size>
<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-width>0.07</max-width>
<font-resolution>

View file

@ -45,6 +45,7 @@ aircraft.data.add(
"instrumentation/comm[0]/frequencies/dial-khz",
"instrumentation/comm[0]/frequencies/dial-mhz",
"instrumentation/comm[0]/test-btn",
"instrumentation/comm[0]/channel-mode-selector",
"instrumentation/nav[0]/ident-audible",
"instrumentation/nav[0]/power-btn",
"instrumentation/nav[0]/volume",
@ -64,6 +65,7 @@ aircraft.data.add(
"instrumentation/comm[1]/frequencies/dial-khz",
"instrumentation/comm[1]/frequencies/dial-mhz",
"instrumentation/comm[1]/test-btn",
"instrumentation/comm[0]/channel-mode-selector",
"instrumentation/nav[1]/ident-audible",
"instrumentation/nav[1]/power-btn",
"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_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());
}, 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());
}, 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());
}, 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
# to 0), compute the new initial length of the tiedowns
if (!node.getValue()) {
@ -143,5 +144,5 @@ setlistener("/fdm/jsbsim/damage/repairing", func (node) {
tiedown_right_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>
</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">
<fcs_function name="tmp/floats-enabled-norm">
<function>

View file

@ -142,11 +142,13 @@ file, these values will be used (they are hardcoded).
<comm-radio>
<name>comm</name>
<number>0</number>
<eight-point-three>1</eight-point-three>
</comm-radio>
<comm-radio>
<name>comm</name>
<number>1</number>
<eight-point-three>1</eight-point-three>
</comm-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>
</frequencies>
<volume-selected type="double">0.7</volume-selected>
<channel-mode-selector type="bool">1</channel-mode-selector>
</comm>
<comm n="1">
<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>
</frequencies>
<volume-selected type="double">0.7</volume-selected>
<channel-mode-selector type="bool">1</channel-mode-selector>
</comm>
<nav n="0">
<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/kma20.nas</file>
<file>Nasal/ki266.nas</file>
<file>Nasal/kx165a.nas</file>
<file>Nasal/engine.nas</file>
<file>Nasal/avionics.nas</file>
<file>Nasal/interior-lighting.nas</file>

View file

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

View file

@ -53,14 +53,21 @@ var WPT_model = {
if (alt != 0)
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
if (!idx) { # first point
if(fp.getPlanSize(idx) == 1) # if only have one wpt then it must be at element 0.
if (fp.getPlanSize() == 1) # if only have one wpt then it must be at element 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);
return m;
@ -82,8 +89,12 @@ var searchCmd = func {
for(var idx = 0; idx < planCount; idx += 1){
var fp = driver.getFlightPlan(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;
};

View file

@ -117,6 +117,11 @@ var end_compose_message = func()
release_kbd();
}
var view_select = func(callsign)
{
view.model_view_handler.select(callsign, 1);
}
var handle_key = func(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,
};
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 = [
{ 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: "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: "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.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",
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.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/signals/reinit-gui", 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 {
if (me.dialog != nil)
@ -228,6 +236,12 @@ var dialog = {
var titlebar = me.dialog.addChild("group");
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");
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_()");
@ -255,7 +269,7 @@ var dialog = {
var col = 0;
foreach (var h; me.header) {
var w = content.addChild("text");
w.node.setValues({ "font" : me.font});
w.node.setValues({ "font" : me.font});
var l = typeof(h) == "func" ? h() : h;
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) {
var col = 0;
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[1];
}
else{
print("no model installed; check fallback");
var fbn = mp.node.getNode("sim/model/fallback-model-index");
@ -286,7 +302,7 @@ w.node.setValues({ "font" : me.font});
if (column.type == "button") {
w = content.addChild("button");
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});
} else {
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);
fgcommand("dialog-new", 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) {
id == me.loopid or return;
@ -341,8 +368,19 @@ w.node.setValues({ "font" : me.font});
else
{
# 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({
"model-short": n.getNode("model-installed").getValue() ? mp.model : "[" ~ mp.model ~ "]",
"set-loaded": set_loaded ? " *" : " ",
"bearing-to": self.course_to(ac),
"distance-to-km": distance / 1000.0,
"distance-to-nm": distance * M2NM,

View file

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

View file

@ -3,11 +3,43 @@
##
## 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 indices = {}; # view_index -> number
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 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) {
if (contains(class, member))
return 1;
@ -74,9 +106,9 @@ var resetFOV = func {
var resetViewPos = func {
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/y-offset-m", v.getNode("y-offset-m", 1).getValue() or 0);
setprop("/sim/current-view/z-offset-m", v.getNode("z-offset-m", 1).getValue() or 0);
setprop("/sim/current-view/x-offset-m", 0);
setprop("/sim/current-view/y-offset-m", 0);
setprop("/sim/current-view/z-offset-m", 0);
}
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.
# Usage: view.manager.register(<view-id>, <view-handler>);
@ -198,23 +242,55 @@ var default_handler = {
var manager = {
current : { node: nil, handler: default_handler },
init : func {
me.current = nil;
me.views = {};
me.loopid = 0;
var viewnodes = props.globals.getNode("sim").getChildren("view");
forindex (var i; viewnodes)
me.views[i] = { node: viewnodes[i], handler: default_handler };
var helicopter_view = viewnodes[1];
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) {
manager.set_view(n.getValue());
}, 1);
},
register : func(which, handler = nil) {
if (num(which) == nil)
which = indexof(which);
var n = num(which);
if (n == nil) n = indexof(which);
if (n == nil) {
printf('Unable to register view handler: which=%s', which);
return;
}
if (handler == nil)
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"))
handler.init(me.views[which].node);
handler.init(me.views[n].node);
me.set_view();
},
set_view : func(which = nil) {
@ -224,8 +300,13 @@ var manager = {
which = indexof(which);
me.loopid += 1;
if (me.current != nil) {
if (me.current.multiplayer) {
model_view_handler.stop();
}
if (hasmember(me.current.handler, "stop"))
me.current.handler.stop();
}
me.current = me.views[which];
@ -233,6 +314,9 @@ var manager = {
me.current.handler.start();
if (hasmember(me.current.handler, "update"))
me._loop_(me.loopid += 1);
if (me.current != nil and me.current.multiplayer) {
model_view_handler.start();
}
screenWidthCompens.update();
},
reset : func {
@ -245,6 +329,20 @@ var manager = {
id == me.loopid or return;
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 = {
init: func(node) {
me.viewN = node;
me.current = nil;
me.legendN = props.globals.initNode("/sim/current-view/model-view", "");
me.dialog = props.Node.new({ "dialog-name": "model-view" });
me.listener = nil;
# Helper for views that can show multiplayer aircaft as well as the user's
# aircraft. Used by <manager> above.
#
var model_view_handler_class = {
new: func() {
var m = { parents:[model_view_handler_class]};
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 {
me.listener = setlistener("/sim/signals/multiplayer-updated", func me._update_(), 1);
me.reset();
start: func() {
fgcommand("dialog-show", me.dialog);
me.next(0);
},
stop: func {
stop: func() {
fgcommand("dialog-close", me.dialog);
if (me.listener!=nil)
{
removelistener(me.listener);
me.listener=nil;
}
},
reset: func {
me.select(0);
},
find: func(callsign) {
forindex (var i; me.list)
forindex (var i; me.list) {
if (me.list[i].callsign == callsign)
return i;
}
return nil;
},
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
}
me.setup(me.list[which]);
},
next: func(step) {
@ -388,40 +486,40 @@ var model_view_handler = {
me.setup(me.list[i]);
},
_update_: func {
var self = { callsign: getprop("/sim/multiplay/callsign"), model:,
node: props.globals, root: '/' };
var self = {
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;
}
else {
me.list = [self];
}
if (!me.find(me.current))
me.select(0);
},
setup: func(data) {
if (data.root == '/') {
var zoffset = getprop("/sim/chase-distance-m");
var ident = '[' ~ data.callsign ~ ']';
} else {
var zoffset = 70;
var ident = '"' ~ data.callsign ~ '" (' ~ data.model ~ ')';
}
me.current = data.callsign;
me.legendN.setValue(ident);
setprop("/sim/current-view/z-offset-m", zoffset);
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",
});
me.legendN.setValue(data.callsign);
manager.multiplayer_callback(data);
},
};
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 = {
new : func {
@ -736,7 +834,6 @@ _setlistener("/sim/signals/nasal-dir-initialized", func {
screenWidthCompens.init();
manager.init();
manager.register("Fly-By View", fly_by_view_handler);
manager.register("Model View", model_view_handler);
});
_setlistener("/sim/signals/reinit", func {
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 {
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;
foreach (var v; views) {
var index = v.getIndex();
@ -770,6 +867,7 @@ var fdm_init_listener = _setlistener("/sim/signals/fdm-initialized", func {
}
forindex (var i; views) {
indices[views[i].getIndex()] = i;
var limits = views[i].getNode("config/limits/enabled");
if (limits != nil) {
func (i) {

View file

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

View file

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

View file

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