1
0
Fork 0

Merge branch 'next' into canvas-livery

This commit is contained in:
fly 2021-07-30 20:27:56 +00:00
commit dd1d8c4ad7
166 changed files with 615248 additions and 1136314 deletions

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="223-main.xml">
<texture-path>Textures/Delta</texture-path>
</PropertyList>

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="717-main.xml">
<texture-path>Textures/Delta</texture-path>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 370 KiB

After

Width:  |  Height:  |  Size: 87 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="73J-main.xml">
<texture-path>Textures/CopaAirlines</texture-path>
</PropertyList>

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="73J-main.xml">
<texture-path>Textures/Delta</texture-path>
</PropertyList>

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="73J-main.xml">
<texture-path>Textures/UnitedAirlines</texture-path>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="77F-main.xml">
<texture-path>Textures/AirBridgeCargo</texture-path>
</PropertyList>

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="77L-main.xml">
<texture-path>Textures/UnitedAirlines</texture-path>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="A321-main.xml">
<texture-path>Textures/Delta</texture-path>
</PropertyList>

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="A321-main.xml">
<texture-path>Textures/EasyJet</texture-path>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View file

@ -0,0 +1,9 @@
<?xml version="1.0"?>
<PropertyList include="359-main.xml">
<texture-path>Textures/Delta</texture-path>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View file

@ -28,6 +28,7 @@
551-600 Military large aircraft (tankers, transports)
601-700 Helicopters
701-800 Other
801-900 Maritime
-->
<PropertyList>
@ -181,4 +182,14 @@ AI model. We also want to load it in preference to the default glider because i
then be invisible to other MP players who are not in a UFO themselves. -->
<model n="712" type="string">Aircraft/ufo/Models/ufo.xml</model>
<model n="801" type="string">AI/Maritime/MP-Carriers/mp-nimitz-0.xml</model>
<model n="802" type="string">AI/Maritime/MP-Carriers/mp-vinson-0.xml</model>
<model n="803" type="string">AI/Maritime/MP-Carriers/mp-eisenhower-0.xml</model>
<model n="804" type="string">AI/Maritime/MP-Carriers/mp-truman-0.xml</model>
<model n="805" type="string">AI/Maritime/MP-Carriers/mp-clemenceau-0.xml</model>
<model n="806" type="string">AI/Maritime/MP-Carriers/mp-foch-0.xml</model>
<model n="807" type="string">AI/Maritime/MP-Carriers/mp-kuznetsov-0.xml</model>
<model n="808" type="string">AI/Maritime/MP-Carriers/mp-liaoning-0.xml</model>
<model n="809" type="string">AI/Maritime/MP-Carriers/mp-sanantonio-0.xml</model>
</PropertyList>

View file

@ -219,6 +219,8 @@
<alias>
<match>73</match>
<match>Boeing_737</match>
<match>7M8</match>
<match>7M9</match>
<alias>737</alias>
</alias>
<!-- Boeing 717 all versions -->

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Clemenceau fallback model. ID# 806
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Clemenceau(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/clemenceau-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Clemenceau",
props.globals.getNode(accept_callsign));
print("MP Clemenceau(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Clemenceau(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Clemenceau(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Eisenhower fallback model. ID# 803
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Eisenhower(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/eisenhower-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Eisenhower",
props.globals.getNode(accept_callsign));
print("MP Eisenhower(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Eisenhower(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Eisenhower(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Foch fallback model. ID# 807
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Foch(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/foch-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Foch",
props.globals.getNode(accept_callsign));
print("MP Foch(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Foch(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Foch(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Kuznetsov fallback model. ID# 808
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Kuznetsov(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/kuznetsov-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Kuznetsov",
props.globals.getNode(accept_callsign));
print("MP Kuznetsov(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Kuznetsov(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Kuznetsov(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Liaoning fallback model. ID# 809
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Liaoning(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/liaoning-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Liaoning",
props.globals.getNode(accept_callsign));
print("MP Liaoning(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Liaoning(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Liaoning(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Nimitz fallback model. ID# 801
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Nimitz(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/nimitz-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Nimitz",
props.globals.getNode(accept_callsign));
print("MP Nimitz(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 15); # delay to prevent recursion.
print("MP Nimitz(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Nimitz(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Sanantonio fallback model. ID# 810
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Sanantonio(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/sanantonio-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Sanantonio",
props.globals.getNode(accept_callsign));
print("MP Sanantonio(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Sanantonio(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Sanantonio(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Truman fallback model. ID# 804
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Truman(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/truman-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Truman",
props.globals.getNode(accept_callsign));
print("MP Truman(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Truman(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Truman(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

View file

@ -0,0 +1,60 @@
<?xml version="1.0"?>
<!--
Multiplayer carrier Vinson fallback model. ID# 805
This will connect the MP carrier to the AI carrier when the low detail model is loaded.
Later on if the high detail model is also loaded it will be still be good
because the logic is resilient enough not to trample over itself.
Copyright (C) 2021 : Richard Harrison rjh@zaretto.com
Copyright (C) 2007 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This file is released under the GPL license version 2 or later.
-->
<PropertyList>
<nasal>
<load>
<![CDATA[
##############################################################################
# This logic connects the carrier to the AI carrier
var rplayer = cmdarg();
print("MP Vinson(Fallback): LOAD " ~ rplayer.getPath());
# Load the main MPCarriers Nasal module if needed.
if (!contains(globals, "MPCarriers")) {
var base = "Aircraft/Generic/MPCarriers.nas";
io.load_nasal(resolvepath(base), "MPCarriers");
}
# Create manager class.
var manager = nil;
var accept_callsign = "/sim/mp-carriers/vinson-callsign";
var init = func {
# Initialize the callsign property if not done already.
props.globals.initNode(accept_callsign, "", "STRING");
manager = MPCarriers.Manager.new(rplayer,
"Vinson",
props.globals.getNode(accept_callsign));
print("MP Vinson(Fallback): " ~ rplayer.getPath() ~ " done.");
}
settimer(init, 3); # 3 second delay should be sufficient
print("MP Vinson(Fallback): " ~ rplayer.getPath() ~ " waiting.");
##############################################################################
]]>
</load>
<unload>
<![CDATA[
##############################################################################
print("MP Vinson(Fallback): unload", cmdarg().getPath());
if (manager != nil) manager.die();
##############################################################################
]]>
</unload>
</nasal>
</PropertyList>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,5 @@
<?xml version="1.0"?>
<!-- Author Marcin Kuzniar - Fleet & Timetable of DEC 2017 -->
<trafficlist>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<trafficlist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<aircraft>
<model>Aircraft/A320/A320-Condor.xml</model>
<livery>CFG</livery>
@ -243,20 +238,6 @@
<registration>LY-VEG</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A332/A332-Condor.xml</model>
<livery>CFG</livery>
<airline>CFG</airline>
<home-port>EDDF</home-port>
<required-aircraft>CFG-332</required-aircraft>
<actype>332</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>C-GTSZ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/757/757-300-Condor.xml</model>
<livery>CFG</livery>
@ -5421,36 +5402,6 @@
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2156</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDL</port>
<time>0/09:05:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>MMUN</port>
<time>0/20:55:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2157</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>MMUN</port>
<time>0/22:25:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDL</port>
<time>1/08:20:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2160</callsign>
<required-aircraft>CFG-767</required-aircraft>
@ -5556,66 +5507,6 @@
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2168</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDL</port>
<time>4/11:00:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>MDPC</port>
<time>4/21:20:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2169</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>MDPC</port>
<time>4/22:50:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDL</port>
<time>5/07:45:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2168</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDL</port>
<time>6/09:35:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>MDPC</port>
<time>6/19:55:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2169</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>MDPC</port>
<time>6/21:25:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDL</port>
<time>0/06:20:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE2184</callsign>
<required-aircraft>CFG-767</required-aircraft>
@ -7521,96 +7412,6 @@
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE3802</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDL</port>
<time>1/11:00:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>MKJS</port>
<time>1/22:15:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE3803</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>MKJS</port>
<time>1/23:55:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDL</port>
<time>2/09:00:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE3804</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDL</port>
<time>2/11:00:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>MDSD</port>
<time>2/21:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE3805</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>MDSD</port>
<time>3/02:20:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDL</port>
<time>3/11:15:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE3842</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>EDDL</port>
<time>5/10:15:00</time>
</departure>
<cruise-alt>380</cruise-alt>
<arrival>
<port>MDLR</port>
<time>5/20:30:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE3843</callsign>
<required-aircraft>CFG-332</required-aircraft>
<fltrules>IFR</fltrules>
<departure>
<port>MDLR</port>
<time>6/22:00:00</time>
</departure>
<cruise-alt>370</cruise-alt>
<arrival>
<port>EDDL</port>
<time>6/07:05:00</time>
</arrival>
<repeat>WEEK</repeat>
</flight>
<flight>
<callsign>DE3844</callsign>
<required-aircraft>CFG-767</required-aircraft>
@ -7822,5 +7623,3 @@
<repeat>WEEK</repeat>
</flight>
</trafficlist>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

11637
AI/Traffic/E/EJU.xml Normal file

File diff suppressed because it is too large Load diff

View file

@ -1263,20 +1263,6 @@
<registration>N476MC</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/747/74Y-Etihad.xml</model>
<livery>ETD</livery>
<airline>ETD</airline>
<home-port>OMAA</home-port>
<required-aircraft>ETD-74F</required-aircraft>
<actype>74F</actype>
<offset>0</offset>
<radius>32</radius>
<flighttype>cargo</flighttype>
<performance-class>jet_transport</performance-class>
<registration>N855GT</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77F-Etihad.xml</model>
<livery>ETD</livery>

View file

@ -308,20 +308,6 @@
<registration>G-GDFY</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Jet2.xml</model>
<livery>EXS</livery>
<airline>EXS</airline>
<home-port>EGNM</home-port>
<required-aircraft>EXS-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>G-JZHA</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Jet2.xml</model>
<livery>EXS</livery>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -82,21 +82,7 @@
<radius>30</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>YI-AGR</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-IraqiAirways.xml</model>
<livery>IAW</livery>
<airline>IAW</airline>
<home-port>ORBI</home-port>
<required-aircraft>IAW-737</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>YI-AQA</registration>
<registration>YI-AQY</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>

View file

@ -12,7 +12,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>TS-INA</registration>
<registration>TS-INC</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -26,7 +26,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>TS-INB</registration>
<registration>TS-IND</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -96,7 +96,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>TS-INA</registration>
<registration>TS-INR</registration>
<heavy>false</heavy>
</aircraft>
<flight>

View file

@ -124,7 +124,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>LZ-FBC</registration>
<registration>LZ-FBE</registration>
<heavy>false</heavy>
</aircraft>
<flight>

View file

@ -1,7 +1,5 @@
<?xml version="1.0"?>
<!-- Author Ian Tolosa - Fleet & Timetable for Week of 28NOV16 - Passenger Only -->
<trafficlist>
<aircraft>
<model>Aircraft/A332/A332-OmanAir.xml</model>
@ -196,7 +194,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BB</registration>
<registration>A4O-BAE </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
@ -210,7 +208,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BC</registration>
<registration>A4O-BAF </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
@ -224,7 +222,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BD</registration>
<registration>A4O-BAG </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
@ -238,7 +236,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BE</registration>
<registration>A4O-BAH </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
@ -255,20 +253,6 @@
<registration>A4O-BF </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BG</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
@ -283,48 +267,6 @@
<registration>A4O-BH </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BI</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BJ</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BK</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
@ -353,34 +295,6 @@
<registration>A4O-BM </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BO</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BP</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
@ -395,34 +309,6 @@
<registration>A4O-BQ </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BR</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BT</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
@ -479,6 +365,48 @@
<registration>A4O-BX </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BI </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BK </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>A4O-BT </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
@ -507,20 +435,6 @@
<registration>A4O-BZ </registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-OmanAir.xml</model>
<livery>OMA</livery>
<airline>OMA</airline>
<home-port>OOMS</home-port>
<required-aircraft>OMA-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>OK-TVH</registration>
<heavy>No</heavy>
</aircraft>
<aircraft>
<model>Aircraft/787/788-OmanAir.xml</model>
<livery>OMA</livery>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,62 +1,5 @@
<?xml version="1.0"?>
<!-- Author Marcin Kuzniar - Weekly Timetable of JUL 2018 -->
<trafficlist>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-EYL</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-EYM</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-EZC</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-EZD</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
@ -85,20 +28,6 @@
<registration>VP-BBU </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BIQ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
@ -110,7 +39,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BIS</registration>
<registration>VP-BIQ </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -155,20 +84,6 @@
<registration>VP-BIV </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BNB</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
@ -183,20 +98,6 @@
<registration>VP-BNJ </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BNN</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
@ -229,7 +130,7 @@
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<home-port>UUWW</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
@ -239,62 +140,6 @@
<registration>VP-BWJ </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BNB</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BAQ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BAR</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BAS</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
@ -306,7 +151,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BAT</registration>
<registration>VQ-BAQ </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -320,7 +165,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BAU</registration>
<registration>VQ-BAR </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -334,7 +179,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BAV</registration>
<registration>VQ-BAS </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -348,7 +193,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BBA</registration>
<registration>VQ-BAT </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -362,7 +207,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BCO</registration>
<registration>VQ-BAU </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -376,7 +221,35 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BCP</registration>
<registration>VQ-BAV </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A319/A319-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-319</required-aircraft>
<actype>319</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VQ-BBA </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A320/A320-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BFM</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -421,34 +294,6 @@
<registration>VP-BZR</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A320/A320-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BCG</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A320/A320-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BFM</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
@ -460,34 +305,6 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BGQ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BGR</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>ULLI</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BOA</registration>
<heavy>false</heavy>
</aircraft>
@ -495,7 +312,7 @@
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>USSS</home-port>
<home-port>ULLI</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
@ -509,14 +326,28 @@
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<home-port>ULLI</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BOD</registration>
<registration>BP-BOI</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>USSS</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VQ-BPX</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -530,7 +361,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BOH</registration>
<registration>VQ-BSR</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -544,7 +375,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BOI</registration>
<registration>VQ-BSS</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -558,7 +389,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BUS</registration>
<registration>VQ-BUE</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -572,7 +403,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BJX</registration>
<registration>BVQ-BUF</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -586,105 +417,7 @@
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BPX</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BSR</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BSS</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BUE</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BUF</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BVU</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BVV</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/738/738-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-738</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BWJ</registration>
<registration>VQ-BWJ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
@ -813,6 +546,48 @@
<registration>EI-XLM</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77W-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-773</required-aircraft>
<actype>773</actype>
<offset>0</offset>
<radius>30</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-GES</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77W-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-773</required-aircraft>
<actype>773</actype>
<offset>0</offset>
<radius>30</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-GET</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77W-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-773</required-aircraft>
<actype>773</actype>
<offset>0</offset>
<radius>30</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-GEU</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77W-Rossiya.xml</model>
<livery>SDM</livery>
@ -883,48 +658,6 @@
<registration>EI-XLP</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77W-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-773</required-aircraft>
<actype>773</actype>
<offset>0</offset>
<radius>30</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-GES</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77W-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-773</required-aircraft>
<actype>773</actype>
<offset>0</offset>
<radius>30</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-GET</registration>
<heavy>true</heavy>
</aircraft>
<aircraft>
<model>Aircraft/777/77W-Rossiya.xml</model>
<livery>SDM</livery>
<airline>SDM</airline>
<home-port>UUWW</home-port>
<required-aircraft>SDM-773</required-aircraft>
<actype>773</actype>
<offset>0</offset>
<radius>30</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>EI-GEU</registration>
<heavy>true</heavy>
</aircraft>
<flight>
<callsign>SU6011</callsign>
<required-aircraft>SDM-319</required-aircraft>
@ -13916,4 +13649,3 @@
<repeat>WEEK</repeat>
</flight>
</trafficlist>

View file

@ -71,48 +71,6 @@
<registration>VQ-BTZ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BRX</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>USSS</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BRY</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BRZ</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
@ -131,7 +89,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<home-port>USSS</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -159,7 +117,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>USSS</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -173,7 +131,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>URKK</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -201,7 +159,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<home-port>USSS</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -215,7 +173,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>USSS</home-port>
<home-port>URKK</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -243,7 +201,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>USSS</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -257,7 +215,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<home-port>USSS</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -285,7 +243,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<home-port>USSS</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -299,7 +257,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>USSS</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -327,7 +285,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUBW</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -369,7 +327,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>USSS</home-port>
<home-port>UUBW</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -411,7 +369,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUBW</home-port>
<home-port>USSS</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -425,7 +383,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UWWW</home-port>
<home-port>USSS</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -439,7 +397,7 @@
<model>Aircraft/A320/A320-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>USSS</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-320</required-aircraft>
<actype>320</actype>
<offset>0</offset>
@ -449,20 +407,6 @@
<registration>VQ-BRE </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BOP</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
@ -530,9 +474,51 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BVA </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BVF </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUBW</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BVP </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>ULLI</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VP-BVR </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
@ -551,7 +537,7 @@
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>ULLI</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
@ -565,7 +551,7 @@
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUBW</home-port>
<home-port>UUDD</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
@ -579,7 +565,7 @@
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<home-port>UUBW</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
@ -603,20 +589,6 @@
<registration>VQ-BKG </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUBW</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VQ-BKH</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
@ -645,20 +617,6 @@
<registration>VQ-BOB </registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
<airline>SVR</airline>
<home-port>UUDD</home-port>
<required-aircraft>SVR-321</required-aircraft>
<actype>321</actype>
<offset>0</offset>
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VQ-BOC</registration>
<heavy>false</heavy>
</aircraft>
<aircraft>
<model>Aircraft/A321/A321-UralAirlines.xml</model>
<livery>SVR</livery>
@ -670,7 +628,7 @@
<radius>17</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>VQ-BOF</registration>
<registration>VQ-BOC </registration>
<heavy>false</heavy>
</aircraft>
<flight>

View file

@ -11,7 +11,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRA</registration>
@ -25,7 +25,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRB</registration>
@ -39,7 +39,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRC</registration>
@ -53,7 +53,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRD</registration>
@ -67,7 +67,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRV</registration>
@ -81,7 +81,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRX</registration>
@ -95,7 +95,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRY</registration>
@ -109,7 +109,7 @@
<required-aircraft>737-TRA</required-aircraft>
<actype>737</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-XRZ</registration>
@ -123,7 +123,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHA</registration>
@ -137,7 +137,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHB</registration>
@ -151,7 +151,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHC</registration>
@ -165,7 +165,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHD</registration>
@ -179,7 +179,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHE</registration>
@ -193,7 +193,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHF</registration>
@ -207,7 +207,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHI</registration>
@ -221,7 +221,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHJ</registration>
@ -235,7 +235,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHK</registration>
@ -249,7 +249,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHL</registration>
@ -263,7 +263,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHM</registration>
@ -277,7 +277,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHN</registration>
@ -291,7 +291,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHO</registration>
@ -305,7 +305,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHP</registration>
@ -319,7 +319,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHQ</registration>
@ -333,7 +333,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHR</registration>
@ -347,7 +347,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHS</registration>
@ -361,7 +361,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHT</registration>
@ -375,7 +375,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHU</registration>
@ -389,7 +389,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHV</registration>
@ -403,7 +403,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHX</registration>
@ -417,7 +417,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-GZHY</registration>
@ -431,7 +431,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-HTVA</registration>
@ -445,7 +445,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-HTVB</registration>
@ -459,7 +459,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-HTVC</registration>
@ -473,7 +473,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-HTVD</registration>
@ -487,7 +487,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-HTVE</registration>
@ -501,7 +501,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-HTVF</registration>
@ -515,7 +515,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>F-HTVG</registration>
@ -529,7 +529,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSB</registration>
@ -543,7 +543,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSC</registration>
@ -557,7 +557,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSF</registration>
@ -571,7 +571,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSG</registration>
@ -585,7 +585,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSI</registration>
@ -599,7 +599,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSJ</registration>
@ -613,7 +613,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSM</registration>
@ -627,7 +627,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HSW</registration>
@ -641,7 +641,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXA</registration>
@ -655,7 +655,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXB</registration>
@ -669,7 +669,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXC</registration>
@ -683,7 +683,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXD</registration>
@ -697,7 +697,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXE</registration>
@ -711,7 +711,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXF</registration>
@ -725,7 +725,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXG</registration>
@ -739,7 +739,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXI</registration>
@ -753,7 +753,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXJ</registration>
@ -767,7 +767,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HXK</registration>
@ -781,7 +781,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZD</registration>
@ -795,7 +795,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZE</registration>
@ -809,7 +809,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZG</registration>
@ -823,7 +823,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZI</registration>
@ -837,7 +837,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZJ</registration>
@ -851,7 +851,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZL</registration>
@ -865,7 +865,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZN</registration>
@ -879,7 +879,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZO</registration>
@ -893,7 +893,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZV</registration>
@ -907,7 +907,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZW</registration>
@ -921,7 +921,7 @@
<required-aircraft>738-TRA</required-aircraft>
<actype>738</actype>
<offset>0</offset>
<radius>14</radius>
<radius>18</radius>
<flighttype>gate</flighttype>
<performance-class>jet_transport</performance-class>
<registration>PH-HZX</registration>

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

51
AI/kuznetsov_demo.xml Normal file
View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<scenario>
<name>Carrier: Admiral Kuznetsov</name>
<description>This scenario spawns the Admiral Kuznetsov aircraft carrier in the Barents Sea off Murmansk.</description>
<author>Daniel Overbeck, Richard Harrison, Uxman (3d)</author>
<!-- 3d model from: https://sketchfab.com/3d-models/kuznetsov-aircraft-carrier-460d73a91efb49298c86ee347fae397c -->
<entry>
<type>carrier</type>
<name>Kuznetsov</name>
<pennant-number>063</pennant-number>
<TACAN-channel-ID>026Y</TACAN-channel-ID>
<description>Russian aircraft carrier Admiral Kuznetsov in the Barents Sea off Murmansk.</description>
<model>Models/Geometry/Kuznetsov/Kuznetsov.xml</model>
<latitude>69.4</latitude>
<longitude>33.7</longitude>
<deck-altitude>50</deck-altitude>
<speed>10</speed>
<heading>0</heading>
<rudder>0</rudder>
<turn-radius-ft>5000</turn-radius-ft>
<flols-pos>
<x-offset-m>65</x-offset-m>
<y-offset-m>-37</y-offset-m>
<z-offset-m>17</z-offset-m>
<heading-offset-deg>20</heading-offset-deg>
</flols-pos>
<parking-pos>
<name>cat-1</name>
<heading-offset-deg>5</heading-offset-deg>
<x-offset-m>96</x-offset-m>
<y-offset-m>-19</y-offset-m>
<z-offset-m>15</z-offset-m>
</parking-pos>
<parking-pos>
<name>cat-2</name>
<heading-offset-deg>5</heading-offset-deg>
<x-offset-m>0</x-offset-m>
<y-offset-m>-9.5</y-offset-m>
<z-offset-m>15</z-offset-m>
</parking-pos>
<parking-pos>
<name>cat-3</name>
<heading-offset-deg>-5</heading-offset-deg>
<x-offset-m>0</x-offset-m>
<y-offset-m>11</y-offset-m>
<z-offset-m>15</z-offset-m>
</parking-pos>
</entry>
</scenario>
</PropertyList>

51
AI/liaoning_demo.xml Normal file
View file

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<scenario>
<name>Carrier: Liaoning</name>
<description>This scenario spawns the Liaoning aircraft carrier in the East China Sea off Wenzhou.</description>
<author>Daniel Overbeck, Richard Harrison, Uxman (3d)</author>
<!-- 3d model from: https://sketchfab.com/3d-models/kuznetsov-aircraft-carrier-460d73a91efb49298c86ee347fae397c -->
<entry>
<type>carrier</type>
<name>Liaoning</name>
<pennant-number>16</pennant-number>
<TACAN-channel-ID>026Y</TACAN-channel-ID>
<description>Chinese aircraft carrier Liaoning in the East China Sea off Wenzhou.</description>
<model>Models/Geometry/Kuznetsov/Liaoning.xml</model>
<latitude>27</latitude>
<longitude>123</longitude>
<deck-altitude>50</deck-altitude>
<speed>10</speed>
<heading>0</heading>
<rudder>0</rudder>
<turn-radius-ft>5000</turn-radius-ft>
<flols-pos>
<x-offset-m>65</x-offset-m>
<y-offset-m>-37</y-offset-m>
<z-offset-m>17</z-offset-m>
<heading-offset-deg>20</heading-offset-deg>
</flols-pos>
<parking-pos>
<name>cat-1</name>
<heading-offset-deg>5</heading-offset-deg>
<x-offset-m>96</x-offset-m>
<y-offset-m>-19</y-offset-m>
<z-offset-m>15</z-offset-m>
</parking-pos>
<parking-pos>
<name>cat-2</name>
<heading-offset-deg>5</heading-offset-deg>
<x-offset-m>0</x-offset-m>
<y-offset-m>-9.5</y-offset-m>
<z-offset-m>15</z-offset-m>
</parking-pos>
<parking-pos>
<name>cat-3</name>
<heading-offset-deg>-5</heading-offset-deg>
<x-offset-m>0</x-offset-m>
<y-offset-m>11</y-offset-m>
<z-offset-m>15</z-offset-m>
</parking-pos>
</entry>
</scenario>
</PropertyList>

View file

@ -0,0 +1,618 @@
###############################################################################
##
## Nasal module for connecting a local AI carrier to a MP player.
##
## Copyright (C) 2007 - 2012 Anders Gidenstam (anders(at)gidenstam.org)
## Copyright (C) 2009 Vivian Meazza
## This file is licensed under the GPL license version 2 or later.
##
###############################################################################
# NOTE:
# This module is intended to be loaded under the name MPCarriers.
# To see what is happening with multiplayer/ai carriers, look in
# /ai/models/carrier[]/mp-control/.
#
# If this is true, we auto-enable ai scenarios and auto-attach ai carriers to
# mp carriers.
#
var g_auto_attach = props.globals.getNode("/sim/mp-carriers/auto-attach", 1);
printf("g_auto_attach.getValue()=%s", g_auto_attach.getValue());
# Constants
var lat = "position/latitude-deg";
var lon = "position/longitude-deg";
var alt = "position/altitude-ft";
var c_heading = "orientation/true-heading-deg";
var c_pitch = "orientation/pitch-deg";
var c_roll = "orientation/roll-deg";
var c_speed = "velocities/speed-kts";
var x = "position/global-x";
var y = "position/global-y";
var z = "position/global-z";
#var c_control_speed = "controls/base-speed-kts";
#var c_control_course = "controls/base-course-deg";
var c_control_speed = "controls/tgt-speed-kts";
var c_control_course = "controls/tgt-heading-degs";
var c_wave_off_lights = "controls/flols/wave-off-lights";
var c_control_mp_ctrl = "controls/mp-control";
var c_deck_elev = "controls/elevators";
var c_deck_lights = "controls/lighting/deck-lights";
var c_flood_lights = "controls/lighting/flood-lights-red-norm";
var c_turn_to_launch_hdg = "controls/turn-to-launch-hdg";
var c_turn_to_recvry_hdg = "controls/turn-to-recovery-hdg";
var c_turn_to_base_co = "controls/turn-to-base-course";
var mp_heading = "orientation/true-heading-deg";
var mp_pitch = "orientation/pitch-deg";
var mp_roll = "orientation/roll-deg";
# MP transmitted controls
var mp_speed = "surface-positions/flap-pos-norm";
var mp_rudder = "surface-positions/rudder-pos-norm";
var mp_network = "sim/multiplay/generic/string[0]";
var mp_message = "sim/multiplay/generic/string[2]";
var mp_tgt_hdg = "sim/multiplay/generic/float[0]";
var mp_tgt_spd = "sim/multiplay/generic/float[1]";
var mp_turn_radius = "sim/multiplay/generic/float[2]";
# Controller parameters.
var cross_course_gain = 0.2;
var cross_course_fadeout = 100.0;
var cross_course_limit = 20.0;
###############################################################################
# Manager class for one model instance.
var Manager = {};
##################################################
Manager.new = func (player = nil, carrier_name = nil, callsign = nil) {
# e.g. carrier_name = 'Clemenceau'.
printf("Manager.new(): player=%s carrier_name=%s callsign=%s",
player, carrier_name, callsign);
if (g_auto_attach.getValue()) {
# Look for matching ai scenario and enable it. We don't care if it is
# already enabled - FGAIManager::loadScenarioCommand() will know to do
# nothing.
printf("Checking ai scenarios...");
foreach (var n; props.globals.getNode("sim/ai/scenarios", 1).getChildren("scenario")) {
var n_carrier_name = n.getValue("carrier/name");
var n_scenario_id = n.getValue("id"); # e.g. clemenceau_demo.
if (n_carrier_name != nil) {
if (0) {
printf(" %s: id=%s n_carrier_name=%s",
n.getPath(),
n_scenario_id,
n_carrier_name
);
}
if (n_carrier_name == carrier_name) {
printf("calling load-scenario with id=%s", n_scenario_id);
var args = props.Node.new( { name: n_scenario_id});
var e = fgcommand("load-scenario", args);
printf("fgcommand('load-scenario') returned e=%s", e);
if (e) {
# We have loaded scenario.
gui.popupTip(sprintf("Have loaded AI senario: %s", n_scenario_id));
}
else {
# Error, or scenario was already loaded.
}
}
}
}
printf("Enabled scenarios are:");
foreach (var n; props.globals.getNode("sim/ai", 1).getChildren("scenario")) {
printf(" %s", n.getValue());
}
}
var obj = { parents : [Manager],
rplayer : player,
carrier_name : carrier_name,
carrier : nil,
accept_callsign : callsign,
callsign_listener : nil,
FREEZE_DIST : 400.0,
comms : nil,
message : nil,
loopid : 0 };
var carriers = props.globals.getNode("/ai/models").getChildren("carrier");
foreach(var c; carriers) {
if (c.getNode("name").getValue() == carrier_name) {
obj.carrier = c;
printf("Initializing carrier_name=%s player.getPath()=%s",
carrier_name, player.getPath());
obj.callsign_listener =
setlistener(callsign,
func { print("Callsign update");
obj.start(); });
MPCarriersNW.Manager_instances[player.getIndex()] = obj;
obj.start();
return obj;
}
}
printf("Failed to find carrier_name=%s. The relevant carrier AI scenario must be active", carrier_name);
return nil;
}
##################################################
Manager.is_valid = func {
return ((me.rplayer.getNode("valid") != nil) and
me.rplayer.getNode("valid").getValue() and
(me.rplayer.getNode("callsign") != nil));
}
##################################################
Manager.is_active = func {
var a = me.is_valid();
var b = (me.rplayer.getNode("callsign") != nil);
# FIXME: Sometimes the cmp() call here gets an invalid argument.
var c = (cmp(me.rplayer.getNode("callsign").getValue(), me.accept_callsign.getValue()) == 0);
if (g_auto_attach.getValue()) {
# Always attach, regardless of callsign.
c = 1;
}
return (a and b and c);
}
##################################################
Manager.set_property = func (path, value) {
if (!me.is_valid() or !me.is_active()) return;
me.carrier.getNode(path).setValue(value);
}
##################################################
Manager.update = func {
var aircraft_pos = geo.aircraft_position();
var carrier_pos = geo.Coord.new(aircraft_pos);
if (!me.is_valid()) {
# This carrier player is not valid anymore.
if (0) printf("calling me.die() because !me.is_valid()");
me.die();
return;
}
if (!me.is_active()) {
# This carrier player is not the chosen one. Go idle.
if (0) printf("calling me.stop(). me.is_valid()=%s me.rplayer.getNode('callsign').getValue()=%s me.accept_callsign.getValue()=%s",
me.is_valid(),
me.rplayer.getNode('callsign').getValue(),
me.accept_callsign.getValue()
);
me.stop();
return;
}
# LSO comms
var message = me.rplayer.getNode(mp_message).getValue();
if (message != ""){
if (message != me.message){
setprop("/sim/messages/approach", message);
}
me.message = message;
}
# carrier_pos.set_latlon(me.carrier.getNode(lat).getValue(),
# me.carrier.getNode(lon).getValue(),
# me.carrier.getNode(alt).getValue());
carrier_pos.set_xyz(me.carrier.getNode(x).getValue(),
me.carrier.getNode(y).getValue(),
me.carrier.getNode(z).getValue());
# Compute the position and orientation error.
var rplayer_pos = geo.Coord.new(carrier_pos);
# rplayer_pos.set_latlon(me.rplayer.getNode(lat).getValue(),
# me.rplayer.getNode(lon).getValue(),
# me.rplayer.getNode(alt).getValue());
rplayer_pos.set_xyz(me.rplayer.getNode(x).getValue(),
me.rplayer.getNode(y).getValue(),
me.rplayer.getNode(z).getValue());
var master_course = normalize_course(me.rplayer.getNode(mp_heading).getValue());
var master_speed = me.rplayer.getNode(mp_speed).getValue();
var bearing_to_master = normalize_course(carrier_pos.course_to(rplayer_pos));
var distance_to_master = carrier_pos.direct_distance_to(rplayer_pos);
var v = D2R * normalize_course(bearing_to_master - master_course);
var cross_track_error = distance_to_master * math.sin(v);
var along_track_error = distance_to_master * math.cos(v);
var master_tgt_hdg = as_num(me.rplayer.getNode(mp_tgt_hdg).getValue(),
me.rplayer.getNode(mp_heading).getValue());
var master_tgt_spd = as_num(me.rplayer.getNode(mp_tgt_spd).getValue(),
me.rplayer.getNode(mp_speed).getValue());
var master_turn_radius = as_num(me.rplayer.getNode(mp_turn_radius).getValue());
var diff = master_course - master_tgt_hdg;
if (diff > 180)
diff -= 360;
elsif (diff < -180)
diff += 360;
me.carrier.getNode("mp-control/ai-mp-course-delta", 1).setValue(diff);
if ( diff < -1.0 or diff > 1.0){
me.carrier.getNode("mp-control/ai-mp-course-delta-type", 1).setValue("major");
# major course alteration - we'll just use target heading from
# master until it's nearly complete
# print("major turn" , diff);
var set_course = master_tgt_hdg ;
var correction = 0;
if (diff < 0){
correction = -cross_track_error * M2FT;
# print("stbd turn ", correction);
} elsif (diff > 0){
correction = cross_track_error * M2FT;
# print("port turn ", correction);
} else {
correction = 0;
# print("no turn ", correction);
}
me.carrier.getNode("controls/turn-radius-ft", 1).setValue(master_turn_radius + correction);
} else {
# Use Controller.
me.carrier.getNode("mp-control/ai-mp-course-delta-type", 1).setValue("minor");
me.carrier.getNode("controls/turn-radius-ft", 1).setValue(master_turn_radius);
var set_course =
normalize_course(180.0/math.pi *
(math.abs(cross_track_error) < cross_course_fadeout ?
math.pow
(math.abs(cross_track_error/cross_course_fadeout),2) :
1.0) *
math.atan2(cross_course_gain * cross_track_error,
along_track_error) +
master_course);
# Limit the course to +/-cross_course_limit degrees off the master's course.
if (set_course - master_course > cross_course_limit) {
set_course = normalize_course(master_course + cross_course_limit);
} else if (set_course - master_course < -cross_course_limit) {
set_course = normalize_course(master_course - cross_course_limit);
}
}
var spd_diff = master_speed - master_tgt_spd;
me.carrier.getNode("mp-control/ai-mp-speed-delta", 1).setValue(spd_diff);
if ( spd_diff < -1 or spd_diff > 1){
# major speed alteration - we'll just use target speed from
# master until it's nearly complete
me.carrier.getNode("mp-control/ai-mp-speed-delta-type", 1).setValue("major");
var set_speed = master_tgt_spd +
0.01 * along_track_error;
if (set_speed > master_tgt_spd + 5.0) set_speed = master_tgt_spd + 5.0;
if (set_speed < master_tgt_spd - 5.0) set_speed = master_tgt_spd - 5.0;
} else {
me.carrier.getNode("mp-control/ai-mp-speed-delta-type", 1).setValue("minor");
var set_speed = master_speed +
0.01 * along_track_error;
if (set_speed > master_speed + 5.0) set_speed = master_speed + 5.0;
if (set_speed < master_speed - 5.0) set_speed = master_speed - 5.0;
}
# publish controller settings to /ai/models/carrier[]/mp-control/.
#
me.carrier.getNode("mp-control/bearing-to-master-rel-deg", 1).setValue(v);
me.carrier.getNode("mp-control/bearing-to-master-deg", 1).setValue(bearing_to_master);
me.carrier.getNode("mp-control/distance-to-master-m", 1).setValue(distance_to_master);
me.carrier.getNode("mp-control/cross-track-error-m", 1).setValue(cross_track_error);
me.carrier.getNode("mp-control/along-track-error-m", 1).setValue(along_track_error);
me.carrier.getNode("mp-control/freeze-distance", 1).setValue(me.FREEZE_DIST);
me.carrier.getNode("mp-control/master-speed-kts", 1).setValue(master_speed);
me.carrier.getNode("mp-control/master-course-deg", 1).setValue(master_course);
me.carrier.getNode("mp-control/set-speed-kts", 1).setValue(set_speed);
me.carrier.getNode("mp-control/set-course-deg", 1).setValue(set_course);
me.carrier.getNode("mp-control/tgt-hdg-deg", 1).setValue(sprintf ( "%03.1d", master_tgt_hdg));
me.carrier.getNode("mp-control/tgt-spd-kts", 1).setValue(master_tgt_spd);
me.carrier.getNode("mp-control/turn-radius-ft", 1).setValue(master_turn_radius);
# We latch ai and mp carrier positions if user aircraft is more than
# me.FREEZE_DIST away from ai carrier, or if we are in replay mode.
#
var distance_aircraft_carrier = aircraft_pos.direct_distance_to(carrier_pos);
var in_replay = props.globals.getValue("/sim/replay/replay-state");
var do_latch = (distance_aircraft_carrier > me.FREEZE_DIST or in_replay);
var distance_ai_to_mpcarrier = rplayer_pos.direct_distance_to(carrier_pos);
me.carrier.getNode("mp-control/aircraft-ai-distance", 1).setValue(distance_aircraft_carrier);
me.carrier.getNode("mp-control/ai-mp-latched", do_latch);
if (do_latch) {
# Latch the local AI carrier to the remote player's
# location only when the local player is far enough away not
# to suffer side effects.
me.carrier.getNode(lat).setValue(me.rplayer.getNode(lat).getValue());
me.carrier.getNode(lon).setValue(me.rplayer.getNode(lon).getValue());
me.carrier.getNode(alt).setValue(me.rplayer.getNode(alt).getValue());
me.carrier.getNode(c_heading).
setValue(master_course);
me.carrier.getNode(c_pitch).
setValue(me.rplayer.getNode(mp_pitch).getValue());
me.carrier.getNode(c_roll).
setValue(me.rplayer.getNode(mp_roll).getValue());
# Accelerate the AI carrier to the right speed.
me.carrier.getNode(c_control_speed).
setValue(master_speed);
} else {
# Player on deck. Use the speed controller.
me.carrier.getNode(c_control_speed).
setValue(set_speed);
}
# Always set these commands.
me.carrier.getNode(c_control_course).
setValue(set_course);
# Switch off AI control for the carrier if available.
if (me.carrier.getNode(c_control_mp_ctrl) != nil)
me.carrier.getNode(c_control_mp_ctrl).setBoolValue(1);
}
##################################################
Manager.stop = func {
me.loopid += 1;
printf("Manager.stop() me.carrier_name=%s me.rplayer.getPath()=%s",
me.carrier_name, me.rplayer.getPath());
# Reenable AI control.
if (me.carrier.getNode(c_control_mp_ctrl) != nil)
me.carrier.getNode(c_control_mp_ctrl).setBoolValue(0);
}
##################################################
Manager.die = func {
if (me.callsign_listener == nil) return;
delete(MPCarriersNW.Manager_instances, me.rplayer.getIndex());
me.loopid += 1;
# Delay the reactivation of AI control.
settimer(func {
if (me.carrier.getNode(c_control_mp_ctrl) != nil)
me.carrier.getNode(c_control_mp_ctrl).setBoolValue(0);
}, 5.0);
removelistener(me.callsign_listener);
me.callsign_listener = nil;
printf("Manager.die(): me.carrier_name=%s me.rplayer.getPath()=%s",
me.carrier_name, me.rplayer.getPath());
}
##################################################
Manager.start = func {
me.loopid += 1;
printf("Manager.start(): me.carrier_name=%s me.rplayer.getPath()=%s",
me.carrier_name, me.rplayer.getPath());
me._loop_(me.loopid);
}
##################################################
Manager._loop_ = func(id) {
id == me.loopid or return;
me.update();
settimer(func { me._loop_(id); }, 0);
}
###############################################################################
###############################################################################
#################################################################
var normalize_course = func(c) {
while (c < 0) c += 360;
while (c >= 360) c -= 360;
return c;
}
#################################################################
# Return a hash containing all nearby carrier players
# indexed on MP-carrier type
var find_carrier_players = func {
var res = {};
foreach (var c; keys(MPCarriersNW.Manager_instances)) {
if (MPCarriersNW.Manager_instances[c].is_valid()) {
var type = MPCarriersNW.Manager_instances[c].carrier_name;
var pilot = MPCarriersNW.Manager_instances[c].rplayer;
if (!contains(res, type)) {
res[type] = [pilot.getNode("callsign").getValue()];
} else {
append(res[type], pilot.getNode("callsign").getValue());
}
}
}
# debug.dump(res);
return res;
}
###############################################################################
# MPCarrier selection dialog.
var CARRIER_DLG = 0;
var carrier_dialog = {};
############################################################
carrier_dialog.init = func (x = nil, y = nil) {
me.x = x;
me.y = y;
me.bg = [0, 0, 0, 0.3]; # background color
me.fg = [[1.0, 1.0, 1.0, 1.0]];
#
# "private"
me.title = "MPCarrier";
me.basenode = props.globals.getNode("/sim/mp-carriers", 1);
me.dialog = nil;
me.namenode = props.Node.new({"dialog-name" : me.title });
me.listeners = [];
me.players = {};
me.carriers = { "Nimitz" : "nimitz-callsign",
"Eisenhower" : "eisenhower-callsign",
"Truman" : "truman-callsign",
"Foch" : "foch-callsign",
"Clemenceau" : "clemenceau-callsign",
"Vinson" : "vinson-callsign"
"Kuznetsov" : "kuznetsov-callsign",
"Liaoning" : "liaoning-callsign",
"Sanantonio" : "sanantonio-callsign"};
}
############################################################
carrier_dialog.create = func {
if (me.dialog != nil)
me.close();
me.dialog = gui.Widget.new();
gui.dialog[me.title] = me.dialog;
me.dialog.set("name", me.title);
if (me.x != nil)
me.dialog.set("x", me.x);
if (me.y != nil)
me.dialog.set("y", me.y);
me.dialog.set("layout", "vbox");
me.dialog.set("default-padding", 0);
var titlebar = me.dialog.addChild("group");
titlebar.set("layout", "hbox");
titlebar.addChild("empty").set("stretch", 1);
titlebar.addChild("text").set("label", "MPCarriers online");
var w = titlebar.addChild("button");
w.set("pref-width", 16);
w.set("pref-height", 16);
w.set("legend", "");
w.set("default", 0);
w.set("key", "esc");
w.setBinding("nasal", "MPCarriers.carrier_dialog.destroy(); ");
w.setBinding("dialog-close");
me.dialog.addChild("hrule");
var content = me.dialog.addChild("group");
content.set("layout", "vbox");
content.set("halign", "center");
content.set("default-padding", 5);
# Generate the dialog contents.
var players_old = me.players;
me.players = find_carrier_players();
foreach (var type; keys(me.carriers)) {
var selected = me.basenode.getNode(me.carriers[type], 1).getValue();
var tmpbase = me.basenode.getNode(type, 1);
if (contains(me.players, type)) {
var i = 0;
foreach (var p; me.players[type]) {
var tmp = tmpbase.getNode("b[" ~ i ~ "]", 1);
tmp.setBoolValue(streq(selected, p));
var w = content.addChild("checkbox");
w.node.setValues({"label" : p ~ " (" ~ type ~ ")",
"halign" : "left",
"property" : tmp.getPath()});
w.setBinding
("nasal",
"MPCarriers.carrier_dialog.select_action(" ~
"\"" ~ type ~ "\", " ~ i ~ ");");
i = i + 1;
}
if (size(me.players[type]) == 1
and (
!contains(players_old, type)
or size(players_old[type]) == 0
or g_auto_attach.getValue()
)) {
# Carrier has just appeared, and there is no other carrier of
# the same type, so attach our AI carrier to it.
printf("carrier_dialog.create(): auto-selecting type=%s", type);
me.select_action(type, 0);
}
}
}
me.dialog.addChild("hrule");
# Display the dialog.
fgcommand("dialog-new", me.dialog.prop());
fgcommand("dialog-show", me.namenode);
}
############################################################
carrier_dialog.close = func {
if (me.dialog != nil) {
me.x = me.dialog.prop().getNode("x", 1).getValue();
me.y = me.dialog.prop().getNode("y", 1).getValue();
}
fgcommand("dialog-close", me.namenode);
}
############################################################
carrier_dialog.destroy = func {
CARRIER_DLG = 0;
me.close();
foreach(var l; me.listeners)
removelistener(l);
delete(gui.dialog, "\"" ~ me.title ~ "\"");
}
############################################################
carrier_dialog.show = func {
# print("Showing MPCarriers dialog!");
if (!CARRIER_DLG) {
CARRIER_DLG = int(getprop("/sim/time/elapsed-sec"));
me.init();
me.create();
me._update_(CARRIER_DLG);
}
}
############################################################
carrier_dialog._redraw_ = func {
if (me.dialog != nil) {
me.close();
me.create();
}
}
############################################################
carrier_dialog._update_ = func (id) {
if (CARRIER_DLG != id) return;
me._redraw_();
settimer(func { me._update_(id); }, 4.1);
}
############################################################
carrier_dialog.select_action = func (type, n) {
var base = me.basenode.getNode(type);
var selected = me.basenode.getNode(me.carriers[type]).getValue();
var bs = base.getChildren();
# Assumption: There are two true b:s or none. The one not matching selected
# is the new selection.
var i = 0;
me.basenode.getNode(me.carriers[type], 1).setValue("");
foreach (var b; bs) {
if (!b.getValue() and (i == n)) {
b.setValue(1);
me.basenode.getNode(me.carriers[type]).setValue
(me.players[type][i]);
} else {
b.setValue(0);
}
i = i + 1;
}
me._redraw_();
}
###############################################################################
var as_num = func (val, default=0.0) {
return (typeof(val) == "scalar") ? val : default;
}
###############################################################################
# Overall initialization. Should only take place when the MPCarrier module is
# being loaded.
# Load the MPCarrier MP network.
if (!contains(globals, "MPCarriersNW")) {
var base = "Aircraft/MPCarrier/Systems/mp-network.nas";
io.load_nasal(resolvepath(base), "MPCarriersNW");
MPCarriersNW.mp_network_init(0);
}

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 47 KiB

View file

@ -15,7 +15,7 @@
viewBox="0 0 744.09448819 1052.3622047"
id="svg4136"
version="1.1"
inkscape:version="0.91 r13725"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
sodipodi:docname="EIS-C182T.svg">
<defs
id="defs4138">
@ -39,16 +39,16 @@
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="6.7031078"
inkscape:cx="111.80088"
inkscape:cy="968.64828"
inkscape:zoom="3.3515539"
inkscape:cx="24.554255"
inkscape:cy="351.5442"
inkscape:document-units="px"
inkscape:current-layer="EISGroup"
inkscape:current-layer="g5014"
showgrid="false"
inkscape:window-width="2495"
inkscape:window-height="1416"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-width="2488"
inkscape:window-height="1376"
inkscape:window-x="72"
inkscape:window-y="27"
inkscape:window-maximized="1"
showguides="false"
inkscape:snap-object-midpoints="false"
@ -82,51 +82,50 @@
style="opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.51325756;stroke-opacity:1"
ry="0" />
<text
sodipodi:linespacing="125%"
id="text4717"
y="305.3992"
x="13.168611"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="305.3992"
x="13.168611"
id="tspan4719"
sodipodi:role="line">0</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="112.65208"
y="305.96732"
id="text4725"
sodipodi:linespacing="125%"><tspan
id="text4725"><tspan
sodipodi:role="line"
id="tspan4727"
x="112.65208"
y="305.96732">2700</tspan></text>
y="305.96732"
style="font-size:15px;line-height:1.25">2700</tspan></text>
<text
inkscape:label="#text4729"
sodipodi:linespacing="125%"
id="EISRPMDisplay"
y="310.77417"
x="50.675224"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:35px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;font-family:FreeSans;-inkscape-font-specification:FreeSans"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:1.25;font-family:FreeSans;-inkscape-font-specification:FreeSans"
y="310.77417"
x="50.675224"
id="tspan4731"
sodipodi:role="line">2200</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4733"
y="281.35699"
x="57.474468"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.08005524px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="281.35699"
x="57.474468"
id="tspan4735"
sodipodi:role="line">RPM</tspan></text>
sodipodi:role="line"
style="font-size:15.08005524px;line-height:1.25">RPM</tspan></text>
<g
transform="translate(-0.54554609,-200.06553)"
id="g4866">
@ -150,102 +149,104 @@
<path
inkscape:connector-curvature="0"
id="path4799"
d="m 20.948572,531.22649 0,-11.60383"
d="M 20.948572,531.22649 V 519.62266"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 45.19784,531.30108 0,-11.60383"
d="M 45.19784,531.30108 V 519.69725"
id="path4813"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4815"
d="m 33.073207,531.30108 0,-11.60383"
d="M 33.073207,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 57.322475,531.30108 0,-11.60383"
d="M 57.322475,531.30108 V 519.69725"
id="path4819"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4821"
d="m 69.447103,531.30108 0,-11.60383"
d="M 69.447103,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 81.571737,531.30108 0,-11.60383"
d="M 81.571737,531.30108 V 519.69725"
id="path4823"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4825"
d="m 93.696375,531.52486 0,-11.60383"
d="M 93.696375,531.52486 V 519.92103"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 105.82101,531.22649 0,-11.60383"
d="M 105.82101,531.22649 V 519.62266"
id="path4827"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4829"
d="m 130.07028,531.30108 0,-11.60383"
d="M 130.07028,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path6041"
d="m 117.94564,531.30108 0,-11.60383"
d="M 117.94564,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path6043"
d="m 142.19491,531.30108 0,-13.92964"
d="M 142.19491,531.30108 V 517.37144"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09564364px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.09564364px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 8.8239383,531.30108 0,-13.92964"
d="M 8.8239383,531.30108 V 517.37144"
id="path6045"
inkscape:connector-curvature="0" />
</g>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 V 539.54 Z"
id="EISFuelFlowPointer"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"
inkscape:label="#path4864" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="30.433645"
y="528.42615"
id="text4846"
sodipodi:linespacing="125%"><tspan
id="text4846"><tspan
sodipodi:role="line"
x="30.433645"
y="528.42615"
id="tspan4850">FFLOW GPH</tspan></text>
id="tspan4850"
style="font-size:15px;line-height:1.25">FFLOW GPH</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="3.5804288"
y="569.60107"
id="text4854"><tspan
sodipodi:role="line"
id="tspan4856"
x="3.5804288"
y="569.60107">0</tspan></text>
y="569.60107"
style="font-size:15px;line-height:1.25">0</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="130.08891"
y="569.60101"
id="text4858"><tspan
sodipodi:role="line"
id="tspan4860"
x="130.08891"
y="569.60101">22</tspan></text>
y="569.60101"
style="font-size:15px;line-height:1.25">22</tspan></text>
</g>
<g
transform="translate(-0.54554609,-131.14227)"
@ -270,22 +271,22 @@
id="g4892">
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652"
d="m 8.0559648,519.47505 v 12.23313 l 134.8260452,0.0746 -0.0746,-12.03652"
id="path4894"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
</g>
<text
sodipodi:linespacing="125%"
id="text4916"
y="528.42615"
x="41.193565"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan4918"
y="528.42615"
x="41.193565"
sodipodi:role="line">OIL PRES</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">OIL PRES</tspan></text>
<rect
style="opacity:1;fill:#aa0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4932"
@ -298,7 +299,7 @@
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="EISOilPressurePointer"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 V 539.54 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
@ -326,30 +327,30 @@
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path4942"
d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652"
d="m 8.0559648,519.47505 v 12.23313 l 134.8260452,0.0746 -0.0746,-12.03652"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="41.193565"
y="528.42615"
id="text4944"
sodipodi:linespacing="125%"><tspan
id="text4944"><tspan
sodipodi:role="line"
x="41.193565"
y="528.42615"
id="tspan4946">OIL TEMP</tspan></text>
id="tspan4946"
style="font-size:15px;line-height:1.25">OIL TEMP</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 V 539.54 Z"
id="EISOilTempPointer"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"
inkscape:label="#path4864" />
</g>
<g
transform="translate(-0.54554609,-35.067436)"
transform="translate(-0.54554609,-4.8575682)"
id="g4952">
<g
transform="translate(0,21.780942)"
@ -357,93 +358,94 @@
id="g4956">
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652"
d="m 8.0559648,519.47505 v 12.23313 l 134.8260452,0.0746 -0.0746,-12.03652"
id="path4958"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 20.684108,531.22649 0,-11.60383"
d="M 20.684108,531.22649 V 519.62266"
id="path4960"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4962"
d="m 34.931231,531.30108 0,-11.60383"
d="M 34.931231,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 34.931231,531.30108 0,-11.60383"
d="M 34.931231,531.30108 V 519.69725"
id="path4964"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4966"
d="m 48.656208,531.30108 0,-11.60383"
d="M 48.656208,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 62.082816,531.30108 0,-11.60383"
d="M 62.082816,531.30108 V 519.69725"
id="path4968"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4970"
d="m 75.509424,531.30108 0,-11.60383"
d="M 75.509424,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 89.681955,531.52486 0,-11.60383"
d="M 89.681955,531.52486 V 519.92103"
id="path4972"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4974"
d="m 102.95938,531.22649 0,-11.60383"
d="M 102.95938,531.22649 V 519.62266"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 116.53517,531.30108 0,-11.60383"
d="M 116.53517,531.30108 V 519.69725"
id="path4976"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path4978"
d="m 129.66341,531.30108 0,-11.60383"
d="M 129.66341,531.30108 V 519.69725"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<text
sodipodi:linespacing="125%"
id="text4980"
y="528.42615"
x="62.060768"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan4982"
y="528.42615"
x="62.060768"
sodipodi:role="line">EGT</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">EGT</tspan></text>
<path
inkscape:label="#path4864"
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="EISEGTPointer"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 0,-9.18946 z"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 V 539.54 Z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
inkscape:label="#text4994"
id="EISEGTCylinder"
y="550.22003"
x="3.9031074"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="550.22003"
x="3.9031074"
id="tspan4996"
sodipodi:role="line">1</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">1</tspan></text>
</g>
<g
transform="translate(0,271.9634)"
transform="translate(0,298.25717)"
id="g5014">
<g
transform="translate(-0.54554609,-237.36166)"
@ -451,34 +453,34 @@
id="g5018">
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 8.0559648,519.47505 0,12.23313 134.8260452,0.0746 -0.0746,-12.03652"
d="m 8.0559648,519.47505 v 12.23313 l 134.8260452,0.0746 -0.0746,-12.03652"
id="path5020"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
inkscape:connector-curvature="0"
id="path5028"
d="m 41.859206,542.01976 0,-22.4943"
d="m 41.859206,542.01976 v -22.4943"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.39230883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.37371683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 75.518097,541.88715 0,-21.89756"
d="M 75.518097,541.88715 V 519.98959"
id="path5034"
inkscape:connector-curvature="0" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.39230883px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 8.2003174,542.28497 0,-22.4943"
d="m 8.2003174,542.28497 v -22.4943"
id="path5056"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path5058"
d="m 142.83588,542.15236 0,-21.89756"
d="M 142.83588,542.15236 V 520.2548"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.37371683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path6033"
d="m 109.17699,541.88715 0,-21.89756"
d="M 109.17699,541.88715 V 519.98959"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.37371683px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<rect
@ -489,23 +491,23 @@
id="rect5016"
style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<text
sodipodi:linespacing="125%"
id="text5042"
y="269.13437"
x="22.578058"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
id="tspan5044"
y="269.13437"
x="22.578058"
sodipodi:role="line">FUEL QTY GAL</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">FUEL QTY GAL</tspan></text>
<text
id="text5046"
y="320.65424"
x="3.034883"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:15px"
style="font-size:15px;line-height:1.25"
y="320.65424"
x="3.034883"
id="tspan5048"
@ -514,9 +516,9 @@
id="text5050"
y="320.97668"
x="136.70422"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-size:15px"
style="font-size:15px;line-height:1.25"
y="320.97668"
x="136.70422"
id="tspan5052"
@ -544,11 +546,11 @@
sodipodi:nodetypes="cccccc"
inkscape:connector-curvature="0"
id="RightFuelTriangle"
d="m 4.0259199,259.63213 -2.9100082,0 6.4348532,-12.49326 7.3051411,12.49326 -3.797618,0 z"
d="M 4.0259199,259.63213 H 1.1159117 l 6.4348532,-12.49326 7.3051411,12.49326 h -3.797618 z"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="3.8553977"
y="259.8103"
id="RightFuelLabel"
@ -556,15 +558,16 @@
sodipodi:role="line"
id="tspan5078"
x="3.8553977"
y="259.8103">R</tspan></text>
y="259.8103"
style="font-size:10px;line-height:1.25">R</tspan></text>
</g>
<text
id="text5066"
y="320.65424"
x="32.020535"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:FreeSans;-inkscape-font-specification:FreeSans"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:1.25;font-family:FreeSans;-inkscape-font-specification:FreeSans"
y="320.65424"
x="32.020535"
id="tspan5068"
@ -573,19 +576,20 @@
id="text5070"
y="320.65424"
x="99.73645"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="320.65424"
x="99.73645"
id="tspan5072"
sodipodi:role="line">30</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">30</tspan></text>
<g
inkscape:label="#g4277"
id="EISLeftFuelPointer"
transform="translate(0,48.037419)">
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.0259199,232.43184 -2.9100082,0 6.4348532,12.49326 7.3051411,-12.49326 -3.797618,0 z"
d="M 4.0259199,232.43184 H 1.1159117 l 6.4348532,12.49326 7.3051411,-12.49326 h -3.797618 z"
id="LeftFuelTriangle"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"
@ -595,66 +599,72 @@
id="LeftFuelLabel"
y="239.81961"
x="3.8553977"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="239.81961"
x="3.8553977"
id="tspan5082"
sodipodi:role="line">L</tspan></text>
sodipodi:role="line"
style="font-size:10px;line-height:1.25">L</tspan></text>
</g>
<text
id="text5100"
y="341.14606"
x="26.265755"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="341.14606"
x="26.265755"
id="tspan5102"
sodipodi:role="line">ELECTRICAL</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">ELECTRICAL</tspan></text>
<path
inkscape:connector-curvature="0"
id="path5108"
d="m 120.34531,335.65557 16.45634,0.21098"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
d="m 120.34531,335.76106 h 16.45634"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
sodipodi:nodetypes="cc" />
<path
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 7.8936094,335.65557 24.34995,335.86655"
d="M 7.8936094,335.83098 H 24.34995"
id="path5110"
inkscape:connector-curvature="0" />
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<text
sodipodi:linespacing="0%"
id="text5112"
y="359.64337"
x="13.590033"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="359.64337"
x="13.590033"
id="tspan5114"
sodipodi:role="line">M</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:0">M</tspan></text>
<text
id="text5116"
y="359.56085"
x="56.530724"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="359.56085"
x="56.530724"
id="tspan5118"
sodipodi:role="line">BUS</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">BUS</tspan></text>
<text
id="text5120"
y="359.64337"
x="119.29041"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="359.64337"
x="119.29041"
id="tspan5122"
sodipodi:role="line">E</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">E</tspan></text>
<flowRoot
style="fill-opacity:1;font-size:15px;opacity:1;fill-rule:nonzero;fill:#ffffff;stroke:#ffffff;stroke-opacity:1;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;-inkscape-font-specification:FreeSans;font-family:FreeSans;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0.01%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="flowRoot5124"
xml:space="preserve"><flowRegion
id="flowRegion5126"><rect
@ -663,110 +673,121 @@
height="44.305546"
width="250.43182"
id="rect5128" /></flowRegion><flowPara
id="flowPara5130" /></flowRoot> <text
id="flowPara5130"
style="font-size:15px;line-height:1.25"> </flowPara></flowRoot> <text
inkscape:label="#text5132"
id="EISMBusVolts"
y="382.3924"
x="9.3704567"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="382.3924"
x="9.3704567"
id="tspan5134"
sodipodi:role="line">32.0</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">32.0</tspan></text>
<text
id="text5136"
y="382.84338"
x="50.673546"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="382.84338"
x="50.673546"
id="tspan5138"
sodipodi:role="line">VOLTS</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">VOLTS</tspan></text>
<text
inkscape:label="#text5140"
id="EISEBusVolts"
y="381.33752"
x="112.32812"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="381.33752"
x="112.32812"
id="tspan5142"
sodipodi:role="line">32.0</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">32.0</tspan></text>
<text
id="text5144"
y="425.23657"
y="406.21555"
x="15.066884"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="425.23657"
y="406.21555"
x="15.066884"
id="tspan5146"
sodipodi:role="line">M</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">M</tspan></text>
<text
id="text5148"
y="425.23657"
y="406.21555"
x="55.660442"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="425.23657"
y="406.21555"
x="55.660442"
id="tspan5150"
sodipodi:role="line">BATT</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">BATT</tspan></text>
<text
id="text5152"
y="425.15405"
y="406.13303"
x="124.56488"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="425.15405"
y="406.13303"
x="124.56488"
id="tspan5154"
sodipodi:role="line">S</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">S</tspan></text>
<text
inkscape:label="#text5156"
id="EISMBattAmps"
y="450.11658"
y="431.09555"
x="5.1508813"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="450.11658"
y="431.09555"
x="5.1508813"
id="tspan5158"
sodipodi:role="line">+110</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">+110</tspan></text>
<text
id="text5160"
y="450.35657"
y="431.33554"
x="53.034382"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="450.35657"
y="431.33554"
x="53.034382"
id="tspan5162"
sodipodi:role="line">AMPS</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">AMPS</tspan></text>
<text
inkscape:label="#text5164"
id="EISSBattAmps"
y="450.11658"
y="431.09555"
x="109.16343"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;text-align:start;text-anchor:start;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
xml:space="preserve"><tspan
y="450.11658"
y="431.09555"
x="109.16343"
id="tspan5166"
sodipodi:role="line">+110</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">+110</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:FreeSans;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
x="66.133492"
y="320.65424"
id="text6035"><tspan
sodipodi:role="line"
id="tspan6037"
x="66.133492"
y="320.65424">20</tspan></text>
y="320.65424"
style="font-size:15px;line-height:1.25">20</tspan></text>
</g>
<line
style="stroke:#ffffff;stroke-width:1.34776199"
@ -779,8 +800,8 @@
transform="matrix(-0.5520104,0.3865218,-0.3865218,-0.5520104,75.44881,255.68121)"
id="g9546">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -33.689453,-92.560547 c -34.51463,12.562298 -59.17291,43.287972 -63.966797,79.703125 -4.79388,36.415126 11.073002,72.475717 41.160156,93.542969 C -26.408939,101.7528 12.903002,104.33058 45.482422,87.371094 78.061867,70.411598 98.5,36.729702 98.5,0 l -1,0 C 97.5,36.358763 77.271893,69.694208 45.021484,86.482422 12.7711,103.27062 -26.138558,100.71974 -55.921875,79.865234 -85.705192,59.010731 -101.41148,23.320788 -96.666016,-12.726562 c 4.745471,-36.047379 29.152298,-66.457149 63.31836,-78.892579 l -0.341797,-0.941406 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -33.689453,-92.560547 c -34.51463,12.562298 -59.17291,43.287972 -63.966797,79.703125 -4.79388,36.415126 11.073002,72.475717 41.160156,93.542969 C -26.408939,101.7528 12.903002,104.33058 45.482422,87.371094 78.061867,70.411598 98.5,36.729702 98.5,0 h -1 C 97.5,36.358763 77.271893,69.694208 45.021484,86.482422 12.7711,103.27062 -26.138558,100.71974 -55.921875,79.865234 -85.705192,59.010731 -101.41148,23.320788 -96.666016,-12.726562 c 4.745471,-36.047379 29.152298,-66.457149 63.31836,-78.892579 z"
id="path9548"
inkscape:connector-curvature="0" />
</g>
@ -788,8 +809,8 @@
transform="matrix(-0.5520104,0.3865218,-0.3865218,-0.5520104,75.44881,255.68121)"
id="g9550">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M -90.392578,-29.224609 C -108.32482,26.239503 -72.372731,84.764977 -14.792969,93.841797 42.786793,102.91862 95,58.290934 95,0 L 87,0 C 87,53.526654 39.326733,94.274399 -13.546875,85.939453 -66.420483,77.604507 -99.247837,24.167204 -82.78125,-26.763672 l -7.611328,-2.460937 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M -90.392578,-29.224609 C -108.32482,26.239503 -72.372731,84.764977 -14.792969,93.841797 42.786793,102.91862 95,58.290934 95,0 H 87 C 87,53.526654 39.326733,94.274399 -13.546875,85.939453 -66.420483,77.604507 -99.247837,24.167204 -82.78125,-26.763672 Z"
id="path9552"
inkscape:connector-curvature="0" />
</g>
@ -797,8 +818,8 @@
transform="matrix(0.64414767,-0.19796064,0.19796064,0.64414767,75.44881,255.68121)"
id="g9554">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 87,0 c 0,15.916056 -4.366223,31.525987 -12.623047,45.132812 l 6.839844,4.150391 C 90.232598,34.425622 95,17.379079 95,0 l -8,0 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 87,0 c 0,15.916056 -4.366223,31.525987 -12.623047,45.132812 l 6.839844,4.150391 C 90.232598,34.425622 95,17.379079 95,0 Z"
id="path9556"
inkscape:connector-curvature="0" />
</g>
@ -806,8 +827,8 @@
transform="matrix(0.65338613,0.16492772,-0.16492772,0.65338613,75.44881,255.68121)"
id="g9558">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 87,0 c 0,10.573871 -1.926895,21.058866 -5.6875,30.941406 l 7.476562,2.845703 C 92.895446,22.995894 95,11.546112 95,0 l -8,0 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 87,0 c 0,10.573871 -1.926895,21.058866 -5.6875,30.941406 l 7.476562,2.845703 C 92.895446,22.995894 95,11.546112 95,0 Z"
id="path9560"
inkscape:connector-curvature="0" />
</g>
@ -836,8 +857,8 @@
transform="matrix(-0.5520091,0.38652094,-0.38652094,-0.5520091,74.994764,128.88211)"
id="g4918">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -33.689453,-92.560547 c -34.51463,12.562298 -59.17291,43.287972 -63.966797,79.703125 -4.79388,36.415126 11.073002,72.475717 41.160156,93.542969 C -26.408939,101.7528 12.903002,104.33058 45.482422,87.371094 78.061867,70.411598 98.5,36.729702 98.5,0 l -1,0 C 97.5,36.358763 77.271893,69.694208 45.021484,86.482422 12.7711,103.27062 -26.138558,100.71974 -55.921875,79.865234 -85.705192,59.010731 -101.41148,23.320788 -96.666016,-12.726562 c 4.745471,-36.047379 29.152298,-66.457149 63.31836,-78.892579 l -0.341797,-0.941406 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -33.689453,-92.560547 c -34.51463,12.562298 -59.17291,43.287972 -63.966797,79.703125 -4.79388,36.415126 11.073002,72.475717 41.160156,93.542969 C -26.408939,101.7528 12.903002,104.33058 45.482422,87.371094 78.061867,70.411598 98.5,36.729702 98.5,0 h -1 C 97.5,36.358763 77.271893,69.694208 45.021484,86.482422 12.7711,103.27062 -26.138558,100.71974 -55.921875,79.865234 -85.705192,59.010731 -101.41148,23.320788 -96.666016,-12.726562 c 4.745471,-36.047379 29.152298,-66.457149 63.31836,-78.892579 z"
id="path4920"
inkscape:connector-curvature="0" />
</g>
@ -845,8 +866,8 @@
transform="matrix(-0.5520091,0.38652094,-0.38652094,-0.5520091,74.994764,128.88211)"
id="g4922">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -32.492188,-89.271484 c -33.281739,12.113562 -57.072661,41.756677 -61.695312,76.871093 -4.622648,35.114393 10.686864,69.904081 39.699219,90.21875 29.012355,20.31467 66.939771,22.800961 98.355469,6.447266 C 75.282906,67.911916 95,35.417687 95,0 L 87,0 C 87,32.450174 68.955306,62.186472 40.171875,77.169922 11.388468,92.153359 -23.318737,89.878299 -49.900391,71.265625 -76.482045,52.652951 -90.49118,20.816723 -86.255859,-11.355469 c 4.235324,-32.172219 26.006811,-59.299824 56.5,-70.398437 l -2.736329,-7.517578 z"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m -32.492188,-89.271484 c -33.281739,12.113562 -57.072661,41.756677 -61.695312,76.871093 -4.622648,35.114393 10.686864,69.904081 39.699219,90.21875 29.012355,20.31467 66.939771,22.800961 98.355469,6.447266 C 75.282906,67.911916 95,35.417687 95,0 H 87 C 87,32.450174 68.955306,62.186472 40.171875,77.169922 11.388468,92.153359 -23.318737,89.878299 -49.900391,71.265625 -76.482045,52.652951 -90.49118,20.816723 -86.255859,-11.355469 c 4.235324,-32.172219 26.006811,-59.299824 56.5,-70.398437 z"
id="path4924"
inkscape:connector-curvature="0" />
</g>
@ -854,7 +875,7 @@
transform="matrix(-0.66186887,-0.12665736,0.12665736,-0.66186887,74.994764,128.88211)"
id="g4926">
<path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#00ff00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:8;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="M 95,-0.06445312 87,0.06445312 C 87.649007,40.605232 56.3618,78.451234 16.414062,85.4375 l 1.378907,7.880859 C 61.833648,85.616299 95.715523,44.63136 95,-0.06445312 Z"
id="path4928"
inkscape:connector-curvature="0" />
@ -870,22 +891,21 @@
sodipodi:nodetypes="cccccc" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.07999992px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="71.796181"
y="153.18427"
id="text4979"
sodipodi:linespacing="125%"><tspan
id="text4979"><tspan
sodipodi:role="line"
id="tspan4981"
x="71.796181"
y="153.18427">MAN IN</tspan></text>
y="153.18427"
style="font-size:15.07999992px;line-height:1.25">MAN IN</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';text-align:center;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';text-align:center;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="71.825653"
y="177.99994"
id="EISManDisplay"
sodipodi:linespacing="125%"
inkscape:label="#text4729"><tspan
sodipodi:role="line"
id="tspan4985"
@ -893,27 +913,27 @@
y="177.99994"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:25px;line-height:125%;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';text-align:center;writing-mode:lr-tb;text-anchor:middle">20.7</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4991"
y="179.7572"
x="119.81293"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="179.7572"
x="119.81293"
id="tspan4993"
sodipodi:role="line">35</tspan></text>
sodipodi:role="line"
style="font-size:15px;line-height:1.25">35</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:125%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:FreeMono;-inkscape-font-specification:FreeMono;text-align:start;letter-spacing:-3px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="15.085393"
y="179.7572"
id="text4995"
sodipodi:linespacing="125%"><tspan
id="text4995"><tspan
sodipodi:role="line"
id="tspan4997"
x="15.085393"
y="179.7572">10</tspan></text>
y="179.7572"
style="font-size:15px;line-height:1.25">10</tspan></text>
<path
sodipodi:nodetypes="cccccc"
inkscape:transform-center-y="14.830678"
@ -923,6 +943,57 @@
id="EISRPMPointer"
d="m 72.880804,254.60657 -45.643775,34.24255 5.097352,-7.68732 3.560667,1.23288 0.81527,4.41027 -9.283436,1.89708"
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.85921997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<g
id="g4934-4"
transform="translate(-1.7743485,-42.731428)">
<rect
style="opacity:1;fill:#00af00;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect4936-3"
width="92.411247"
height="6.9623003"
x="49.91132"
y="544.22382" />
<g
id="g4940-3"
inkscape:label="#g4833"
transform="translate(0,21.780942)">
<path
sodipodi:nodetypes="cccc"
inkscape:connector-curvature="0"
id="path4942-8"
d="m 8.0559648,519.47505 v 12.23313 l 134.8260452,0.0746 -0.0746,-12.03652"
style="fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:0%;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="63.148544"
y="528.42615"
id="text4944-6"><tspan
sodipodi:role="line"
id="tspan1018"
x="63.148544"
y="528.42615">CHT</tspan></text>
<path
style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 4.5714659,539.5634 0.043695,9.19243 3.48115,3.34929 3.5075231,-3.37566 V 539.54 Z"
id="EISCHTPointer"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccc"
inkscape:label="#path4864" />
<text
xml:space="preserve"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;line-height:150%;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.9375px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="4.2751164"
y="550.25"
id="EISCHTCylinder"
inkscape:label="#text1022"><tspan
sodipodi:role="line"
id="tspan1020"
x="4.2751164"
y="550.25"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15px;font-family:FreeSans;-inkscape-font-specification:'FreeSans, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.9375px">1</tspan></text>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 59 KiB

View file

@ -28,13 +28,15 @@ var EIS =
obj.setController(fg1000.EISController.new(obj, svg));
obj.addTextElements(["ManDisplay", "RPMDisplay", "MBusVolts", "EBusVolts"]);
obj.addTextElements(["ManDisplay", "RPMDisplay", "MBusVolts", "EBusVolts", "MBattAmps", "SBattAmps"]);
obj._fuelFlowPointer = PFD.PointerElement.new(obj.pageName, svg, "FuelFlowPointer", 0.0, 22.0, 135);
obj._oilPressurePointer = PFD.PointerElement.new(obj.pageName, svg, "OilPressurePointer", 0.0, 115.0, 135);
obj._oilTempPointer = PFD.PointerElement.new(obj.pageName, svg, "OilTempPointer", 0.0, 245.0, 135);
obj._EGTPointer = PFD.PointerElement.new(obj.pageName, svg, "EGTPointer", 0.0, 1.0, 135);
obj._EGTCylinder = PFD.PointerElement.new(obj.pageName, svg, "EGTCylinder", 0.0, 1.0, 135);
obj._CHTPointer = PFD.PointerElement.new(obj.pageName, svg, "CHTPointer", 0.0, 400, 135);
obj._CHTCylinder = PFD.PointerElement.new(obj.pageName, svg, "CHTCylinder", 0.0, 400, 135);
obj._leftFuelPointer = PFD.PointerElement.new(obj.pageName, svg, "LeftFuelPointer", 0.0, 40.0, 135);
obj._rightFuelPointer = PFD.PointerElement.new(obj.pageName, svg, "RightFuelPointer", 0.0, 40.0, 135);
@ -49,12 +51,16 @@ var EIS =
me.setTextElement("ManDisplay", sprintf("%.1f", engineData.Man));
me.setTextElement("MBusVolts", sprintf("%.01f", engineData.MBusVolts));
me.setTextElement("EBusVolts", sprintf("%.01f", engineData.MBusVolts)); # TODO: Include Emergency Bus
me.setTextElement("MBattAmps", sprintf("%+.01f", engineData.MBattAmps));
me.setTextElement("SBattAmps", sprintf("%+.01f", engineData.MBattAmps)); # TODO: Include Emergency Bus
me._fuelFlowPointer.setValue(engineData.FuelFlowGPH);
me._oilPressurePointer.setValue(engineData.OilPressurePSI);
me._oilTempPointer.setValue(engineData.OilTemperatureF);
me._EGTPointer.setValue(engineData.EGTNorm);
me._EGTCylinder.setValue(engineData.EGTNorm);
me._CHTPointer.setValue(engineData.CHTDegF);
me._CHTCylinder.setValue(engineData.CHTDegF);
me._RPMPointer.setValue(engineData.RPM);
me._ManPointer.setValue(engineData.Man);

View file

@ -41,11 +41,13 @@ var EISController =
"RPM",
"Man",
"MBusVolts",
"MBattAmps",
"EngineHours",
"FuelFlowGPH",
"OilPressurePSI",
"OilTemperatureF",
"EGTNorm",
"CHTDegF",
"VacuumSuctionInHG"];
foreach (var val; elements) {

View file

@ -76,6 +76,7 @@
<pass n="10" include="common-scene.xml">
<name>far</name>
<clear-mask>color depth</clear-mask>
<z-near>100.0</z-near>
</pass>
<pass n="11" include="common-scene.xml">

View file

@ -2,7 +2,9 @@
<PropertyList>
<type>csm</type>
<implicit-attachment-mask/>
<effect-scheme>classic-shadow</effect-scheme>
<clear-mask>depth</clear-mask>
<!-- Only render objects with the CAST_SHADOW bit flag -->
<cull-mask>0x000004</cull-mask>
<render-at-night>false</render-at-night>

View file

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>rgb16f</format>
<min-filter>linear</min-filter>
<mag-filter>linear</mag-filter>
</PropertyList>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>quad</type>
<effect>Effects/HDR/trivial</effect>
</PropertyList>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>quad</type>
<effect>Effects/HDR/horizontal-blur</effect>
</PropertyList>

View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>quad</type>
<effect>Effects/HDR/vertical-blur</effect>
</PropertyList>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>csm</type>
<implicit-attachment-mask/>
<effect-scheme>hdr-shadow</effect-scheme>
<clear-mask>depth</clear-mask>
<!-- Only render objects with the CAST_SHADOW bit flag -->
<cull-mask>0x4</cull-mask>
<render-at-night>false</render-at-night>
<attachment>
<buffer>sun-shadowmap-atlas</buffer>
<component>depth</component>
</attachment>
</PropertyList>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>scene</type>
<effect-scheme>hdr-envmap</effect-scheme>
<!-- Only render the skydome and terrain -->
<!-- TODO: Explicitly select the LOD level -->
<cull-mask>0x800</cull-mask>
<binding>
<unit>11</unit>
<buffer>sky-view</buffer>
</binding>
</PropertyList>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<type>quad</type>
<binding>
<unit>0</unit>
<buffer>envmap</buffer>
</binding>
</PropertyList>

989
Compositor/HDR/hdr.xml Normal file
View file

@ -0,0 +1,989 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>HDR</name>
<!-- XXX: These won't be necessary once we go core profile only -->
<use-osg-uniforms>true</use-osg-uniforms>
<use-vertex-attribute-aliasing>true</use-vertex-attribute-aliasing>
<!--
G-Buffer
.........................................................
: Buffer : Red : Green : Blue : Alpha :
:........:...........:...........:..........:...........:
: RT0 : albedo.r : albedo.g : albedo.b : AO/Cavity :
: RT1 : normal.x : normal.y :
: RT2 : Metalness : Roughness : Clearcoat :
: RT3 : Depth :
:........:...........:...........:..........:...........:
-->
<buffer>
<name>gbuffer0</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>rgba8</format>
</buffer>
<buffer>
<name>gbuffer1</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>rg16f</format>
</buffer>
<buffer>
<name>gbuffer2</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>rgba8</format>
</buffer>
<buffer>
<name>depth</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>depth32f</format>
</buffer>
<!-- HDR lighting result -->
<buffer>
<name>hdr-result</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>rgb16f</format>
</buffer>
<!-- Final LDR buffer -->
<buffer>
<name>final</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<format>rgb8</format>
</buffer>
<!-- Atmosphere LUTs -->
<buffer>
<name>sky-view</name>
<type>2d</type>
<width>256</width>
<height>128</height>
<format>rgb16f</format>
<min-filter>linear</min-filter>
<mag-filter>linear</mag-filter>
<wrap-s>repeat</wrap-s>
<wrap-t>clamp-to-edge</wrap-t>
</buffer>
<buffer>
<name>aerial-inscatter</name>
<type>2d</type>
<width>512</width>
<height>32</height>
<format>rgba16f</format>
<min-filter>linear</min-filter>
<mag-filter>linear</mag-filter>
<wrap-s>clamp-to-edge</wrap-s>
<wrap-t>clamp-to-edge</wrap-t>
</buffer>
<buffer>
<name>aerial-transmittance</name>
<type>2d</type>
<width>512</width>
<height>32</height>
<format>rgba16f</format>
<min-filter>linear</min-filter>
<mag-filter>linear</mag-filter>
<wrap-s>clamp-to-edge</wrap-s>
<wrap-t>clamp-to-edge</wrap-t>
</buffer>
<!-- Environment cubemap -->
<buffer>
<name>envmap</name>
<type>cubemap</type>
<width>128</width>
<height>128</height>
<format>rgb16f</format>
<min-filter>linear-mipmap-linear</min-filter>
<mag-filter>linear</mag-filter>
<wrap-s>clamp-to-edge</wrap-s>
<wrap-t>clamp-to-edge</wrap-t>
<mipmap-levels>5</mipmap-levels>
</buffer>
<!-- Shadow map atlas -->
<buffer>
<name>sun-shadowmap-atlas</name>
<type>2d</type>
<width>8192</width>
<height>8192</height>
<format>depth16</format>
<wrap-s>clamp-to-border</wrap-s>
<wrap-t>clamp-to-border</wrap-t>
<min-filter>linear</min-filter>
<mag-filter>linear</mag-filter>
<border-color type="vec4d">1.0 1.0 1.0 1.0</border-color>
<shadow-comparison>true</shadow-comparison>
</buffer>
<!-- Average luminance -->
<buffer>
<name>luminance</name>
<type>2d</type>
<width>1024</width>
<height>1024</height>
<format>r16f</format>
<min-filter>linear-mipmap-nearest</min-filter>
<mag-filter>nearest</mag-filter>
<mipmap-levels>10</mipmap-levels>
</buffer>
<buffer>
<name>prev-luminance</name>
<type>2d</type>
<width>1</width>
<height>1</height>
<format>r16f</format>
<min-filter>nearest</min-filter>
<mag-filter>nearest</mag-filter>
</buffer>
<buffer>
<name>adapted-luminance</name>
<type>2d</type>
<width>1</width>
<height>1</height>
<format>r16f</format>
<min-filter>nearest</min-filter>
<mag-filter>nearest</mag-filter>
</buffer>
<!-- SSAO -->
<buffer>
<name>ao0</name>
<type>2d</type>
<width>screen</width>
<height>screen</height>
<screen-width-scale>0.5</screen-width-scale>
<screen-height-scale>0.5</screen-height-scale>
<format>r8</format>
</buffer>
<!-- Bloom buffers -->
<buffer include="bloom-buffer.xml">
<name>bloom0</name>
<screen-width-scale>0.5</screen-width-scale>
<screen-height-scale>0.5</screen-height-scale>
</buffer>
<buffer include="bloom-buffer.xml">
<name>bloom1</name>
<screen-width-scale>0.25</screen-width-scale>
<screen-height-scale>0.25</screen-height-scale>
</buffer>
<buffer include="bloom-buffer.xml">
<name>bloom2</name>
<screen-width-scale>0.125</screen-width-scale>
<screen-height-scale>0.125</screen-height-scale>
</buffer>
<buffer include="bloom-buffer.xml">
<name>bloom3</name>
<screen-width-scale>0.0625</screen-width-scale>
<screen-height-scale>0.0625</screen-height-scale>
</buffer>
<buffer include="bloom-buffer.xml">
<name>bloom0-tmp</name>
<screen-width-scale>0.5</screen-width-scale>
<screen-height-scale>0.5</screen-height-scale>
</buffer>
<buffer include="bloom-buffer.xml">
<name>bloom1-tmp</name>
<screen-width-scale>0.25</screen-width-scale>
<screen-height-scale>0.25</screen-height-scale>
</buffer>
<buffer include="bloom-buffer.xml">
<name>bloom2-tmp</name>
<screen-width-scale>0.125</screen-width-scale>
<screen-height-scale>0.125</screen-height-scale>
</buffer>
<buffer include="bloom-buffer.xml">
<name>bloom3-tmp</name>
<screen-width-scale>0.0625</screen-width-scale>
<screen-height-scale>0.0625</screen-height-scale>
</buffer>
<!--=======================================================================-->
<!-- Sky-View -->
<pass>
<name>atmos-sky-view</name>
<type>quad</type>
<effect>Effects/HDR/atmos-sky-view</effect>
<attachment>
<component>color</component>
<buffer>sky-view</buffer>
</attachment>
</pass>
<!-- Aerial Perspective -->
<pass>
<name>atmos-aerial-perspective</name>
<type>quad</type>
<effect>Effects/HDR/atmos-aerial-perspective</effect>
<attachment>
<component>color0</component>
<buffer>aerial-inscatter</buffer>
</attachment>
<attachment>
<component>color1</component>
<buffer>aerial-transmittance</buffer>
</attachment>
</pass>
<!--
Environment capture passes
Render to a cubemap using forward rendering. Only render the skydome and
very bare terrain since we want to make as little draw calls as possible.
We also want to avoid doing an OSG cull traversal on many nodes as our
scene graph structure isn't too well optimized.
-->
<pass include="env-capture-pass.xml">
<name>env-capture0</name>
<cubemap-face>0</cubemap-face>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>0</face>
<level>0</level>
</attachment>
</pass>
<pass include="env-capture-pass.xml">
<name>env-capture1</name>
<cubemap-face>1</cubemap-face>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>1</face>
<level>0</level>
</attachment>
</pass>
<pass include="env-capture-pass.xml">
<name>env-capture2</name>
<cubemap-face>2</cubemap-face>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>2</face>
<level>0</level>
</attachment>
</pass>
<pass include="env-capture-pass.xml">
<name>env-capture3</name>
<cubemap-face>3</cubemap-face>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>3</face>
<level>0</level>
</attachment>
</pass>
<pass include="env-capture-pass.xml">
<name>env-capture4</name>
<cubemap-face>4</cubemap-face>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>4</face>
<level>0</level>
</attachment>
</pass>
<pass include="env-capture-pass.xml">
<name>env-capture5</name>
<cubemap-face>5</cubemap-face>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>5</face>
<level>0</level>
</attachment>
</pass>
<!--
Pre-filter the environment map
We convolve the cubemap for five roughness values and store the results
on the mipmap levels of the cubemap. Later passes will choose which mipmap
level to use for reflections based on the roughness of the surface that's
being lighted/rendered.
Diffuse lighting is approximated by using the highest mipmap level
(roughness=1).
-->
<pass include="env-prefilter-pass.xml">
<name>env-prefilter1</name>
<effect>Effects/HDR/envmap-prefilter1</effect>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>0</face>
<level>1</level>
</attachment>
<attachment>
<component>color1</component>
<buffer>envmap</buffer>
<face>1</face>
<level>1</level>
</attachment>
<attachment>
<component>color2</component>
<buffer>envmap</buffer>
<face>2</face>
<level>1</level>
</attachment>
<attachment>
<component>color3</component>
<buffer>envmap</buffer>
<face>3</face>
<level>1</level>
</attachment>
<attachment>
<component>color4</component>
<buffer>envmap</buffer>
<face>4</face>
<level>1</level>
</attachment>
<attachment>
<component>color5</component>
<buffer>envmap</buffer>
<face>5</face>
<level>1</level>
</attachment>
</pass>
<pass include="env-prefilter-pass.xml">
<name>env-prefilter2</name>
<effect>Effects/HDR/envmap-prefilter2</effect>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>0</face>
<level>2</level>
</attachment>
<attachment>
<component>color1</component>
<buffer>envmap</buffer>
<face>1</face>
<level>2</level>
</attachment>
<attachment>
<component>color2</component>
<buffer>envmap</buffer>
<face>2</face>
<level>2</level>
</attachment>
<attachment>
<component>color3</component>
<buffer>envmap</buffer>
<face>3</face>
<level>2</level>
</attachment>
<attachment>
<component>color4</component>
<buffer>envmap</buffer>
<face>4</face>
<level>2</level>
</attachment>
<attachment>
<component>color5</component>
<buffer>envmap</buffer>
<face>5</face>
<level>2</level>
</attachment>
</pass>
<pass include="env-prefilter-pass.xml">
<name>env-prefilter3</name>
<effect>Effects/HDR/envmap-prefilter3</effect>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>0</face>
<level>3</level>
</attachment>
<attachment>
<component>color1</component>
<buffer>envmap</buffer>
<face>1</face>
<level>3</level>
</attachment>
<attachment>
<component>color2</component>
<buffer>envmap</buffer>
<face>2</face>
<level>3</level>
</attachment>
<attachment>
<component>color3</component>
<buffer>envmap</buffer>
<face>3</face>
<level>3</level>
</attachment>
<attachment>
<component>color4</component>
<buffer>envmap</buffer>
<face>4</face>
<level>3</level>
</attachment>
<attachment>
<component>color5</component>
<buffer>envmap</buffer>
<face>5</face>
<level>3</level>
</attachment>
</pass>
<pass include="env-prefilter-pass.xml">
<name>env-prefilter4</name>
<effect>Effects/HDR/envmap-prefilter4</effect>
<attachment>
<component>color0</component>
<buffer>envmap</buffer>
<face>0</face>
<level>4</level>
</attachment>
<attachment>
<component>color1</component>
<buffer>envmap</buffer>
<face>1</face>
<level>4</level>
</attachment>
<attachment>
<component>color2</component>
<buffer>envmap</buffer>
<face>2</face>
<level>4</level>
</attachment>
<attachment>
<component>color3</component>
<buffer>envmap</buffer>
<face>3</face>
<level>4</level>
</attachment>
<attachment>
<component>color4</component>
<buffer>envmap</buffer>
<face>4</face>
<level>4</level>
</attachment>
<attachment>
<component>color5</component>
<buffer>envmap</buffer>
<face>5</face>
<level>4</level>
</attachment>
</pass>
<!--
G-Buffer pass
This is the main forward pass. Here we skip the rendering of transparent
objects and other geometry that should be forward rendered later (like the
skydome, clouds, etc.)
-->
<pass>
<name>geometry</name>
<type>scene</type>
<effect-scheme>hdr-geometry</effect-scheme>
<clear-mask>depth</clear-mask>
<cull-mask>0xfffff7ff</cull-mask>
<attachment>
<component>color0</component>
<buffer>gbuffer0</buffer>
</attachment>
<attachment>
<component>color1</component>
<buffer>gbuffer1</buffer>
</attachment>
<attachment>
<component>color2</component>
<buffer>gbuffer2</buffer>
</attachment>
<attachment>
<component>depth</component>
<buffer>depth</buffer>
</attachment>
</pass>
<!-- Shadow mapping pre-passes -->
<pass include="csm-pass.xml">
<name>csm0</name>
<near-m>0.1</near-m>
<far-m>3.0</far-m>
<viewport>
<x>0.0</x>
<y>0.0</y>
<width>0.5</width>
<height>0.5</height>
</viewport>
</pass>
<pass include="csm-pass.xml">
<name>csm1</name>
<near-m>3.0</near-m>
<far-m>70.0</far-m>
<viewport>
<x>0.5</x>
<y>0.0</y>
<width>0.5</width>
<height>0.5</height>
</viewport>
</pass>
<pass include="csm-pass.xml">
<name>csm2</name>
<near-m>70.0</near-m>
<far-m>300.0</far-m>
<viewport>
<x>0.0</x>
<y>0.5</y>
<width>0.5</width>
<height>0.5</height>
</viewport>
</pass>
<pass include="csm-pass.xml">
<name>csm3</name>
<near-m>300.0</near-m>
<far-m>1000.0</far-m>
<viewport>
<x>0.5</x>
<y>0.5</y>
<width>0.5</width>
<height>0.5</height>
</viewport>
</pass>
<!-- SSAO (Screen Space Ambient Occlusion) -->
<pass>
<name>ao</name>
<type>quad</type>
<effect>Effects/HDR/ao</effect>
<binding>
<unit>0</unit>
<buffer>depth</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>gbuffer1</buffer>
</binding>
<attachment>
<component>color0</component>
<buffer>ao0</buffer>
</attachment>
</pass>
<!--
Main lighting pass
Combine the G-Buffer and other buffers to compute the final shading value
of the pixel in HDR.
-->
<pass>
<name>lighting</name>
<type>quad</type>
<effect>Effects/HDR/lighting</effect>
<use-shadow-pass>csm0</use-shadow-pass>
<use-shadow-pass>csm1</use-shadow-pass>
<use-shadow-pass>csm2</use-shadow-pass>
<use-shadow-pass>csm3</use-shadow-pass>
<binding>
<unit>0</unit>
<buffer>gbuffer0</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>gbuffer1</buffer>
</binding>
<binding>
<unit>2</unit>
<buffer>gbuffer2</buffer>
</binding>
<binding>
<unit>3</unit>
<buffer>depth</buffer>
</binding>
<binding>
<unit>8</unit>
<buffer>ao0</buffer>
</binding>
<binding>
<unit>9</unit>
<buffer>envmap</buffer>
</binding>
<binding>
<unit>10</unit>
<buffer>sun-shadowmap-atlas</buffer>
</binding>
<binding>
<unit>11</unit>
<buffer>aerial-inscatter</buffer>
</binding>
<binding>
<unit>12</unit>
<buffer>aerial-transmittance</buffer>
</binding>
<attachment>
<component>color0</component>
<buffer>hdr-result</buffer>
</attachment>
</pass>
<!--
Forward pass
Render all objects that couldn't be rendered on the G-Buffer, mainly
transparent objects. This is also done in HDR.
We reuse the depth buffer from the G-Buffer stage so we can take advantage
of early depth testing.
-->
<pass>
<name>forward</name>
<type>scene</type>
<effect-scheme>hdr-forward</effect-scheme>
<binding>
<unit>9</unit>
<buffer>envmap</buffer>
</binding>
<binding>
<unit>11</unit>
<buffer>sky-view</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>hdr-result</buffer>
</attachment>
<attachment>
<component>depth</component>
<buffer>depth</buffer>
</attachment>
</pass>
<!--
Average luminance calculation
1. Convert the RGB values to luminance values and store them on a fixed
size texture.
2. Generate mipmaps for this texture until we are left with a 1x1 texture
at the highest mipmap level. This downsampling process effectively
calculates the geometric mean of luminance.
3. Simulate eye adaptation by smoothing out the transition between
different exposures.
4. Update the previous frame average luminance value for next frame.
-->
<pass>
<name>luminance</name>
<type>quad</type>
<effect>Effects/HDR/luminance</effect>
<binding>
<unit>0</unit>
<buffer>hdr-result</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>luminance</buffer>
<mipmap-generation>true</mipmap-generation>
</attachment>
</pass>
<pass>
<name>adapt-luminance</name>
<type>quad</type>
<effect>Effects/HDR/adapt-luminance</effect>
<binding>
<unit>0</unit>
<buffer>prev-luminance</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>luminance</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>adapted-luminance</buffer>
</attachment>
</pass>
<pass>
<name>copy-prev-luminance</name>
<type>quad</type>
<effect>Effects/HDR/copy-prev-luminance</effect>
<binding>
<unit>0</unit>
<buffer>adapted-luminance</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>prev-luminance</buffer>
</attachment>
</pass>
<!--
Generate a threshold texture for bloom
The HDR lighting buffer is filtered so we are left with an image that only
contains the brightest spots. This image is then progressively
downscaled, blurred and upscaled until we are left with the final bloom
to be applied.
-->
<pass>
<name>bloom-threshold</name>
<type>quad</type>
<effect>Effects/HDR/bloom-threshold</effect>
<binding>
<unit>0</unit>
<buffer>hdr-result</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>adapted-luminance</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom0</buffer>
</attachment>
</pass>
<pass include="bloom-copy-pass.xml">
<name>bloom-copy1</name>
<binding>
<unit>0</unit>
<buffer>bloom0</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom1</buffer>
</attachment>
</pass>
<pass include="bloom-copy-pass.xml">
<name>bloom-copy2</name>
<binding>
<unit>0</unit>
<buffer>bloom1</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom2</buffer>
</attachment>
</pass>
<pass include="bloom-copy-pass.xml">
<name>bloom-copy3</name>
<binding>
<unit>0</unit>
<buffer>bloom2</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom3</buffer>
</attachment>
</pass>
<pass include="bloom-horizontal-blur-pass.xml">
<name>bloom-hblur3</name>
<binding>
<unit>0</unit>
<buffer>bloom3</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom3-tmp</buffer>
</attachment>
</pass>
<pass include="bloom-vertical-blur-pass.xml">
<name>bloom-vblur3</name>
<binding>
<unit>0</unit>
<buffer>bloom3-tmp</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom3</buffer>
</attachment>
</pass>
<pass include="bloom-horizontal-blur-pass.xml">
<name>bloom-hblur2</name>
<binding>
<unit>0</unit>
<buffer>bloom2</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>bloom3</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom2-tmp</buffer>
</attachment>
</pass>
<pass include="bloom-vertical-blur-pass.xml">
<name>bloom-vblur2</name>
<binding>
<unit>0</unit>
<buffer>bloom2-tmp</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom2</buffer>
</attachment>
</pass>
<pass include="bloom-horizontal-blur-pass.xml">
<name>bloom-hblur1</name>
<binding>
<unit>0</unit>
<buffer>bloom1</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>bloom2</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom1-tmp</buffer>
</attachment>
</pass>
<pass include="bloom-vertical-blur-pass.xml">
<name>bloom-vblur1</name>
<binding>
<unit>0</unit>
<buffer>bloom1-tmp</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom1</buffer>
</attachment>
</pass>
<pass include="bloom-horizontal-blur-pass.xml">
<name>bloom-hblur0</name>
<binding>
<unit>0</unit>
<buffer>bloom0</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>bloom1</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom0-tmp</buffer>
</attachment>
</pass>
<pass include="bloom-vertical-blur-pass.xml">
<name>bloom-vblur0</name>
<binding>
<unit>0</unit>
<buffer>bloom0-tmp</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>bloom0</buffer>
</attachment>
</pass>
<!--
Post-processing
Perform miscellaneous post-processing operations, namely tonemapping
and exposure compensation. This process converts the HDR buffer into an
LDR texture ready to be displayed on a screen.
-->
<pass>
<name>post</name>
<type>quad</type>
<effect>Effects/HDR/postprocess</effect>
<binding>
<unit>0</unit>
<buffer>hdr-result</buffer>
</binding>
<binding>
<unit>1</unit>
<buffer>adapted-luminance</buffer>
</binding>
<binding>
<unit>4</unit>
<buffer>bloom0</buffer>
</binding>
<attachment>
<component>color</component>
<buffer>final</buffer>
</attachment>
</pass>
<!--
Final display pass
Perform any post-processing that has to be done in LDR space.
-->
<pass>
<name>display</name>
<type>quad</type>
<effect>Effects/HDR/display</effect>
<binding>
<unit>0</unit>
<buffer>final</buffer>
</binding>
</pass>
<!-- DEBUG PASSES -->
<!--
<pass>
<name>debug-albedo</name>
<type>quad</type>
<effect>Effects/HDR/trivial</effect>
<clear-mask>depth</clear-mask>
<geometry>
<left>0.0</left>
<bottom>0.0</bottom>
<width>0.2</width>
<height>0.2</height>
</geometry>
<binding>
<unit>0</unit>
<buffer>gbuffer0</buffer>
</binding>
</pass>
<pass>
<name>debug-normals</name>
<type>quad</type>
<effect>Effects/HDR/trivial</effect>
<clear-mask>depth</clear-mask>
<geometry>
<left>0.8</left>
<bottom>0.0</bottom>
<width>0.2</width>
<height>0.2</height>
</geometry>
<binding>
<unit>0</unit>
<buffer>gbuffer1</buffer>
</binding>
</pass>
<pass>
<name>debug-materials</name>
<type>quad</type>
<effect>Effects/HDR/trivial</effect>
<clear-mask>depth</clear-mask>
<geometry>
<left>0.0</left>
<bottom>0.8</bottom>
<width>0.2</width>
<height>0.2</height>
</geometry>
<binding>
<unit>0</unit>
<buffer>gbuffer2</buffer>
</binding>
</pass>
<pass>
<name>debug-depth</name>
<type>quad</type>
<effect>Effects/HDR/trivial</effect>
<clear-mask>depth</clear-mask>
<geometry>
<left>0.8</left>
<bottom>0.8</bottom>
<width>0.2</width>
<height>0.2</height>
</geometry>
<binding>
<unit>0</unit>
<buffer>depth</buffer>
</binding>
</pass>
-->
</PropertyList>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/Fallback/hdr-geometry</name>
<technique n="110">
<scheme>hdr-geometry</scheme>
<pass>
<texture-unit>
<unit>0</unit>
<type><use>texture[0]/type</use></type>
<image><use>texture[0]/image</use></image>
<filter><use>texture[0]/filter</use></filter>
<wrap-s><use>texture[0]/wrap-s</use></wrap-s>
<wrap-t><use>texture[0]/wrap-t</use></wrap-t>
</texture-unit>
<cull-face>back</cull-face>
<program>
<vertex-shader>Shaders/HDR/geometry.vert</vertex-shader>
<fragment-shader>Shaders/HDR/geometry.frag</fragment-shader>
<fragment-shader>Shaders/HDR/gbuffer-include.frag</fragment-shader>
</program>
<uniform>
<name>color_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/Fallback/hdr-shadow</name>
<technique n="120">
<scheme>hdr-shadow</scheme>
<pass>
<texture-unit>
<unit>0</unit>
<type><use>texture[0]/type</use></type>
<image><use>texture[0]/image</use></image>
<filter><use>texture[0]/filter</use></filter>
<wrap-s><use>texture[0]/wrap-s</use></wrap-s>
<wrap-t><use>texture[0]/wrap-t</use></wrap-t>
</texture-unit>
<color-mask type="vec4d">0 0 0 0</color-mask>
<cull-face>back</cull-face>
<blend>
<active>false</active>
</blend>
<program>
<vertex-shader>Shaders/HDR/geometry-shadow.vert</vertex-shader>
<fragment-shader>Shaders/HDR/geometry-shadow.frag</fragment-shader>
</program>
<uniform>
<name>color_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/adapt-luminance</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/adapt-luminance.vert</vertex-shader>
<fragment-shader>Shaders/HDR/adapt-luminance.frag</fragment-shader>
</program>
<uniform>
<name>prev_lum_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>current_lum_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
</pass>
</technique>
</PropertyList>

23
Effects/HDR/ao.eff Normal file
View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/ao</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/ao.frag</fragment-shader>
<fragment-shader>Shaders/HDR/gbuffer-include.frag</fragment-shader>
</program>
<uniform>
<name>depth_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>normal_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/atmos-aerial-perspective</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/atmos-aerial-perspective.frag</fragment-shader>
<fragment-shader>Shaders/HDR/atmosphere-include.frag</fragment-shader>
<fragment-shader>Shaders/HDR/gbuffer-include.frag</fragment-shader>
</program>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/atmos-sky-view</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/atmos-sky-view.frag</fragment-shader>
<fragment-shader>Shaders/HDR/atmosphere-include.frag</fragment-shader>
</program>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/bloom-threshold</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/bloom-threshold.frag</fragment-shader>
</program>
<uniform>
<name>hdr_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>lum_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
</pass>
</technique>
</PropertyList>

30
Effects/HDR/blur.eff Normal file
View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/blur</name>
<parameters>
<is-vertical>false</is-vertical>
</parameters>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/blur.frag</fragment-shader>
</program>
<uniform>
<name>tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>prev_pass_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
<uniform>
<name>vertical</name>
<type>bool</type>
<value type="bool"><use>is-vertical</use></value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/copy-prev-luminance</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/adapt-luminance.vert</vertex-shader>
<fragment-shader>Shaders/HDR/copy-prev-luminance.frag</fragment-shader>
</program>
<uniform>
<name>lum_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
</pass>
</technique>
</PropertyList>

17
Effects/HDR/display.eff Normal file
View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/display</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/display.vert</vertex-shader>
<fragment-shader>Shaders/HDR/display.frag</fragment-shader>
</program>
<uniform>
<name>tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/envmap-prefilter</name>
<parameters>
<roughness type="float">0.0</roughness>
</parameters>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/envmap-prefilter.vert</vertex-shader>
<fragment-shader>Shaders/HDR/envmap-prefilter.frag</fragment-shader>
</program>
<uniform>
<name>envmap</name>
<type>sampler-cube</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>roughness</name>
<type>float</type>
<value><use>roughness</use></value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/envmap-prefilter1</name>
<inherits-from>Effects/HDR/envmap-prefilter</inherits-from>
<parameters>
<roughness type="float">0.25</roughness>
</parameters>
</PropertyList>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/envmap-prefilter2</name>
<inherits-from>Effects/HDR/envmap-prefilter</inherits-from>
<parameters>
<roughness type="float">0.5</roughness>
</parameters>
</PropertyList>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/envmap-prefilter3</name>
<inherits-from>Effects/HDR/envmap-prefilter</inherits-from>
<parameters>
<roughness type="float">0.75</roughness>
</parameters>
</PropertyList>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/envmap-prefilter4</name>
<inherits-from>Effects/HDR/envmap-prefilter</inherits-from>
<parameters>
<roughness type="float">1.0</roughness>
</parameters>
</PropertyList>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/horizontal-blur</name>
<inherits-from>Effects/HDR/blur</inherits-from>
<parameters>
<is-vertical>false</is-vertical>
</parameters>
</PropertyList>

82
Effects/HDR/lighting.eff Normal file
View file

@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/lighting</name>
<parameters>
<texture n="7">
<image>Textures/PBR/dfg_lut.png</image>
<type>2d</type>
<filter>linear</filter>
<wrap-s>clamp-to-border</wrap-s>
<wrap-t>clamp-to-border</wrap-t>
<internal-format>normalized</internal-format>
</texture>
</parameters>
<technique n="1">
<pass>
<texture-unit>
<unit>7</unit>
<image><use>texture[7]/image</use></image>
<type><use>texture[7]/type</use></type>
<filter><use>texture[7]/filter</use></filter>
<wrap-s><use>texture[7]/wrap-s</use></wrap-s>
<wrap-t><use>texture[7]/wrap-t</use></wrap-t>
<internal-format><use>texture[7]/internal-format</use></internal-format>
</texture-unit>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/lighting.frag</fragment-shader>
<fragment-shader>Shaders/HDR/gbuffer-include.frag</fragment-shader>
</program>
<uniform>
<name>gbuffer0_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>gbuffer1_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
<uniform>
<name>gbuffer2_tex</name>
<type>sampler-2d</type>
<value type="int">2</value>
</uniform>
<uniform>
<name>depth_tex</name>
<type>sampler-2d</type>
<value type="int">3</value>
</uniform>
<uniform>
<name>dfg_lut</name>
<type>sampler-2d</type>
<value type="int">7</value>
</uniform>
<uniform>
<name>ao_tex</name>
<type>sampler-2d</type>
<value type="int">8</value>
</uniform>
<uniform>
<name>prefiltered_envmap</name>
<type>sampler-cube</type>
<value type="int">9</value>
</uniform>
<uniform>
<name>shadow_tex</name>
<type>sampler-2d-shadow</type>
<value type="int">10</value>
</uniform>
<uniform>
<name>aerial_inscatter_lut</name>
<type>sampler-2d</type>
<value type="int">11</value>
</uniform>
<uniform>
<name>aerial_transmittance_lut</name>
<type>sampler-2d</type>
<value type="int">12</value>
</uniform>
</pass>
</technique>
</PropertyList>

17
Effects/HDR/luminance.eff Normal file
View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/luminance</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/luminance.frag</fragment-shader>
</program>
<uniform>
<name>hdr_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/postprocess</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/postprocess.frag</fragment-shader>
</program>
<uniform>
<name>hdr_tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
<uniform>
<name>lum_tex</name>
<type>sampler-2d</type>
<value type="int">1</value>
</uniform>
<uniform>
<name>bloom_tex</name>
<type>sampler-2d</type>
<value type="int">4</value>
</uniform>
</pass>
</technique>
</PropertyList>

17
Effects/HDR/trivial.eff Normal file
View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/trivial</name>
<technique n="1">
<pass>
<program>
<vertex-shader>Shaders/HDR/trivial.vert</vertex-shader>
<fragment-shader>Shaders/HDR/trivial.frag</fragment-shader>
</program>
<uniform>
<name>tex</name>
<type>sampler-2d</type>
<value type="int">0</value>
</uniform>
</pass>
</technique>
</PropertyList>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<PropertyList>
<name>Effects/HDR/vertical-blur</name>
<inherits-from>Effects/HDR/blur</inherits-from>
<parameters>
<is-vertical>true</is-vertical>
</parameters>
</PropertyList>

View file

@ -514,7 +514,15 @@
</pass>
</technique>
<!-- Don't use the usual scheme because model-combined requires technique
number 7. We need to place this technique before it. -->
<technique n="1">
<scheme>hdr-geometry</scheme>
</technique>
<!-- TODO: Actually implement a glass shader instead of just hiding it -->
<technique n="2">
<scheme>hdr-forward</scheme>
</technique>
</PropertyList>

View file

@ -6,4 +6,11 @@ and fallback to plain transparency when the model shader is disabled.
<PropertyList>
<name>Effects/model-combined-transparent</name>
<inherits-from>Effects/model-combined</inherits-from>
<technique n="1">
<scheme>hdr-geometry</scheme>
</technique>
<technique n="2">
<scheme>hdr-forward</scheme>
</technique>
</PropertyList>

Some files were not shown because too many files have changed in this diff Show more