diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg
index 1c1c595bb..e5d0e65c7 100644
--- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg
+++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/ai.cfg
@@ -13,7 +13,7 @@ flareAngle = 0
[STICKANDRUDDER]
rudderGroundPID = 0.035, 0.001, 0.1, 1.0, 1.0 ; Pk,Ik,Dk,I boundary, D boundary
-throttleGroundPID = 1.0,0.10,10.0,10.0,20.0
+throttleGroundPID = 10.0, 0.0, 0.0, 10.0, 20.0
brakeDifferentialPID = 2.7, 0.001,10.0,1.0, 5.0
throttleDifferentialPID = 12.0 ,0.001,25.0,10.0,40.0
throttlePID = 50.0, 1.0, 200.0, 20.0, 500.0
diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg
index fab8e2eca..44b7ae898 100644
--- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg
+++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/cameras.cfg
@@ -3,7 +3,7 @@ major =1
minor =0
[VIEWS]
-eyepoint = -18.55, -2, 11 ; (feet) longitudinal, lateral, vertical distance from reference datum
+eyepoint = -41.69, -2, 11 ; -18.55, -2, 11 ; (feet) longitudinal, lateral, vertical distance from reference datum
;===================== CAMERADEFINITION =====================
diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg
index 6a05f42f4..513fa40a4 100644
--- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg
+++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/engines.cfg
@@ -1,106 +1,129 @@
-[VERSION]
-major = 1
-minor = 0
-
-[GENERALENGINEDATA]
-engine_type = 1 ; 0=Piston, 1=Jet, 2=None, 3=Helo-Turbine, 4=Rocket, 5=Turboprop
-fuel_flow_scalar = 1.44 ; Fuel flow scalar
-min_throttle_limit = -0.25 ; Minimum percent throttle. Generally negative for turbine reverser
-master_ignition_switch = 0
-starter_type = 2 ; 0=Electric, 1=Manual, 2=Bleed Air
-max_contrail_temperature = -39.724
-Engine.0 = -119, -69.6, -7.1
-ThrustAnglesPitchHeading.0 = 0, 0
-Engine.1 = -92, -39.4, -7.5
-ThrustAnglesPitchHeading.1 = 0, 0
-Engine.2 = -92, 39.4, -7.5
-ThrustAnglesPitchHeading.2 = 0, 0
-Engine.3 = -119, 69.6, -7.1
-ThrustAnglesPitchHeading.3 = 0, 0
-
-[TURBINEENGINEDATA]
-fuel_flow_gain = 0.002 ; Gain on fuel flow
-inlet_area = 60 ; Square Feet, engine nacelle inlet area
-rated_N2_rpm = 29920 ; RPM, second stage compressor rated value
-static_thrust = 66500 ; Lbs, max rated static thrust at Sea Level
-reverser_available = 2.0
-reverser_mach_controlled = 0
-afterburner_available = 0
-afterburner_throttle_threshold = 0.011
-ThrustSpecificFuelConsumption = 0.24
-AfterBurnThrustSpecificFuelConsumption = 0.011
-mach_0_corrected_commanded_ne_table = 0.000000:1.000000:22.570000,0.000000:55.000000:82.500000,0.420000:78.800003:95.400002,0.510000:82.500000:98.500000,0.610000:87.400002:101.099998,0.700000:92.000000:103.099998,0.790000:96.199997:105.699997,0.930000:103.099998:108.059998,1.000000:107.000000:108.059998
-mach_hi_corrected_commanded_ne_table = 0.900000:1.000000:22.570000,0.000000:62.000000:82.500000,0.420000:77.000000:95.400002,0.510000:80.199997:98.500000,0.610000:84.800003:101.099998,0.700000:89.099998:103.099998,0.790000:92.199997:105.699997,0.930000:96.000000:108.059998,1.000000:98.199997:108.059998
-corrected_n2_from_ff_table = 0.000000:0.000000, 0.002940:10.000000, 0.011800:30.000000, 0.020660:40.000000, 0.033970:50.000000, 0.053170:60.000000, 0.133910:80.000000, 0.257710:90.000000, 0.540000:100.000000, 0.686860:108.000000
-n1_and_mach_on_thrust_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:0.025400:0.114000,25.000000:0.050800:0.222000,30.000000:0.079800:0.350000,35.000000:0.112500:0.451000,40.000000:0.152400:0.545000,45.000000:0.199500:0.640000,50.000000:0.254000:0.754000,55.000000:0.360000:0.869000,60.000000:0.480000:0.953000,65.000000:0.572000:1.040000,70.000000:0.653000:1.126000,75.000000:0.727000:1.210000,80.000000:0.788000:1.295000,85.000000:0.875000:1.378000,90.000000:0.985000:1.478000,95.000000:1.061000:1.578000,100.000000:1.153000:1.668000,105.000000:1.237000:1.778000,110.000000:1.338000:1.845000
-n2_to_n1_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,10.000000:1.100000:1.000000,20.000000:2.700000:2.400000,30.000000:5.700000:4.700000,40.000000:10.100000:8.400000,50.000000:17.500000:12.800000,60.000000:29.900000:21.200001,70.000000:49.400002:41.599998,80.000000:67.500000:60.400002,90.000000:90.599998:85.900002,100.000000:105.500000:102.400002,110.000000:118.000000:114.099998
-corrected_airflow_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:4.290000:14.081000,85.000000:22.000000:24.000000,90.000000:25.000000:25.000000,95.000000:27.000000:27.000000,100.000000:28.000000:28.000000,105.000000:29.000000:29.000000,110.000000:30.000000:30.000000
-epr_max = 1.4
-epr_tc = 14
-epr_tuning_constant = 1
-oil_temp_cooling_constant = 0
-oil_temp_heating_constant = 700
-oil_temp_tc = 0.07
-oil_temp_tuning_constant = 1
-oil_press_max = 12384
-oil_press_tc = 0.8
-oil_press_tuning_constant = 1
-fuel_flow_max_itt_factor = 2.0
-fuel_flow_min_itt_factor = 0.72
-n1_cooling_factor = 0.01
-itt_peak_temperature = 2141
-itt_tc = 2
-itt_tuning_constant = 1
-egt_peak_temperature = 1600
-egt_tc = 2
-egt_tuning_constant = 1
-fuel_press_max = 2376
-fuel_press_tc = 2
-fuel_press_tuning_constant = 1
-variable_inlet = 0
-primary_nozzle_available = 0
-primary_nozzle_afterburner_offset = 0.14
-primary_nozzle_n1_mach_to_nozzle_pos = 0.000000:0.000000:2.000000,53.000000:0.660000:0.100000,65.000000:0.690000:0.330000,96.000000:0.700000:0.440000
-density_on_torque_table = 0.000225:0.100000, 0.000352:0.300000, 0.000480:0.500000, 0.000607:0.700000, 0.000734:0.900000, 0.000862:1.000000, 0.001241:1.000000, 0.001620:1.000000, 0.001999:1.000000, 0.002378:1.000000
-starter_N1_max_pct = 12 ; Pct, percentage of max rpm that reached using only starter.
-starter_N1_rate = 12 ; Rate at which the starter N1 increases.
-ignition_auto_type = "Starter,Flaps,AntiIce" ; If the Ignition is set to AUTO - specifies how that is handled. 0(default) = Always on, 1 = Ignition follows starter status, 2 = Ignition enabled when Flaps are not neutral, when AntiIce is enabled, or when N1/N2 is below 50%.
-min_condition_lever_for_combustion = 0.01 ; % - Minimum position of the Condition lever to obtain a combustion. Default at 0.01.
-min_n1_for_combustion = 10 ; % - Minimum N1 required to maintain a combustion
-min_n2_for_combustion = 19.4 ; % - Minimum N2 required to maintain a combustion
-min_n1_for_starter_cutoff = 200 ; % - Minimum N1 at which the starter is automatically disabled
-min_n2_for_starter_cutoff = 50 ; % - Minimum N2 at which the starter is automatically disabled
-min_n2_for_apu_bleed_air_cutoff = 200 ; % - Minimum N2 at which the APU Bleed Air is automatically disabled
-n2_from_bleed_air_psi_table = 0:0, 4:8, 10:18, 18:25 ; Table which contains the n2 generated depending on the pression from the bleed air from the APU (in psi).
-bleed_air_on_n2_tc = 1 ; Time constant which contains the speed at which the bleed air pressure affect the N2 of the turbine.
-N1_to_oil_pressure_table = 0:0, 0.21:0.88, 0.9:0.954, 1:1 ; % of max Oil Pressure for % N1.
-n1_normal_tc = 0.5 ; Float factor changing N1 acceleration during normal use of the engine
-n1_start_max_rate = 1.0 ; Float limiting N1 acceleration during starter use
-n1_start_combustion_max_rate = 2.0 ; Float limiting N1 acceleration during startup when cumbustion has started
-idle_fuel_flow = 1364 ; pound per hour
-low_idle_n1 = 23.2
-low_idle_n2 = 60
-high_n1 = 98
-high_n2 = 102
-high_fuel_flow = 8000
-min_n2_for_fuel_flow = 22
-mach_influence_on_n1 = 10
-fuel_flow_max = 10000
-fuel_flow_controller_p = 0.5
-fuel_flow_controller_i = 0.1
-fuel_flow_controller_d = 0.5
-fuel_flow_controller_iboundary = 5
-fuel_flow_controller_dboundary = 100
-max_torque_protection = 0 ; 0 = no protection, value of the torque triggering a protection by automatically limiting the fuelflow
-max_n1_protection = 104 ; 0 = no protection, value of the n1 triggering a protection by automatically limiting the fuelflow
-max_n2_protection = 105 ; 0 = no protection, value of the n2 triggering a protection by automatically limiting the fuelflow
-max_egt_protection = 2000 ; 0 = no protection, value of the egt triggering a protection by automatically limiting the fuelflow
-
-[JET_ENGINE]
-thrust_scalar = 0.85
-
-[DISABLED_CONTROLS]
-DisableFuelValveControls = 0 ; Disable fuel valve controls
-DisableMixtureControls = 1 ; Disable mixture controls
-DisableParkingBrakeControls = 0 ; Disable parking brake controls
-DisablePropellerControls = 1 ; Disable propeller controls
+[VERSION]
+major = 1
+minor = 0
+
+[GENERALENGINEDATA]
+engine_type = 1 ; 0=Piston, 1=Jet, 2=None, 3=Helo-Turbine, 4=Rocket, 5=Turboprop
+fuel_flow_scalar = 1 ; 0.8 ; Fuel flow scalar
+min_throttle_limit = -0.25 ; Minimum percent throttle. Generally negative for turbine reverser
+master_ignition_switch = 0
+starter_type = 2 ; 0=Electric, 1=Manual, 2=Bleed Air
+max_contrail_temperature = -39.724
+Engine.0 = -142.5, -69.95, -4.5 ; -97.5, 0, 0 ; -119, -69.6, -7.1
+ThrustAnglesPitchHeading.0 = 0, 0
+Engine.1 = -117, -39.35, -6.8 ; -97.5, 0, 0 ; -92, -39.4, -7.5
+ThrustAnglesPitchHeading.1 = 0, 0
+Engine.2 = -117, 39.35, -6.8 ; -97.5, 0, 0 ; -92, 39.4, -7.5
+ThrustAnglesPitchHeading.2 = 0, 0
+Engine.3 = -142.5, 69.95, -4.5 ; -97.5, 0, 0 ; -119, 69.6, -7.1
+ThrustAnglesPitchHeading.3 = 0, 0
+
+[TURBINEENGINEDATA]
+use_old_fuelflow_simvar = 0
+use_corrected_N2_from_FF_table = 0
+use_commanded_Ne_table = 0
+use_n2_to_n1_table = 0
+fuel_flow_gain = 0.002 ; Gain on fuel flow
+inlet_area = 60 ; Square Feet, engine nacelle inlet area
+rated_N1_rpm = 2835 ; RPM ; fan
+rated_N2_rpm = 11377 ; 29920 ; RPM, second stage compressor rated value
+static_thrust = 67425 ; 67400 ; 67400 ; 66500 ; Lbs, max rated static thrust at Sea Level
+reverser_available = 2.0
+reverser_mach_controlled = 0
+afterburner_available = 0
+afterburner_throttle_threshold = 0.011
+ThrustSpecificFuelConsumption = 0.27
+AfterBurnThrustSpecificFuelConsumption = 0.011
+mach_0_corrected_commanded_ne_table = 0:1:4.4593:18.5238,0.00:68.00:78.42:78.42,0.14:75.15:86.67:86.67,0.29:82.30:94.91:94.91,0.43:89.45:103.16:103.16,0.57:96.60:111.41:111.41,0.72:103.75:119.65:119.65,0.86:110.90:127.90:127.90,1.00:118.00:136.09:136.09
+mach_hi_corrected_commanded_ne_table = 0.999:1:4.4593:18.5238,0.00:62.09:71.60:71.60,0.14:68.61:79.13:79.13,0.29:75.14:86.66:86.66,0.43:81.67:94.19:94.19,0.57:88.20:101.72:101.72,0.72:94.73:109.24:109.24,0.86:101.25:116.77:116.77,1.00:107.74:124.25:124.25
+;corrected_n2_from_ff_table = 0.000000:0.000000, 0.002940:10.000000, 0.011800:30.000000, 0.020660:40.000000, 0.033970:50.000000, 0.053170:60.000000, 0.133910:80.000000, 0.257710:90.000000, 0.540000:100.000000, 0.686860:108.000000
+;corrected_n2_from_ff_table = 0.0:0.0, 0.0254:68.0, 0.0825:81.0, 0.2369:94.0, 0.2886:100.0
+;corrected_n2_from_ff_table = 0.0:0.0, 0.0254:68.0, 0.0825:88.4, 0.2369:110.5, 0.2886:118.0
+;corrected_n2_from_ff_table = 0.0:0.0, 0.0254:68.0, 0.3:118.0
+;n1_and_mach_on_thrust_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:0.025400:0.114000,25.000000:0.050800:0.222000,30.000000:0.079800:0.350000,35.000000:0.112500:0.451000,40.000000:0.152400:0.545000,45.000000:0.199500:0.640000,50.000000:0.254000:0.754000,55.000000:0.360000:0.869000,60.000000:0.480000:0.953000,65.000000:0.572000:1.040000,70.000000:0.653000:1.126000,75.000000:0.727000:1.210000,80.000000:0.788000:1.295000,85.000000:0.875000:1.378000,90.000000:0.985000:1.478000,95.000000:1.061000:1.578000,100.000000:1.153000:1.668000,105.000000:1.237000:1.778000,110.000000:1.338000:1.845000
+;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9,0.0:0:0:0:0:0:0:0:0:0:0,28.0:0.070:0.059:0.055:0.052:0.050:0.048:0.046:0.044:0.042:0.039,30.0:0.072:0.061:0.057:0.054:0.051:0.049:0.048:0.046:0.043:0.041,40.0:0.095:0.080:0.075:0.071:0.068:0.065:0.063:0.060:0.057:0.053,50.0:0.155:0.131:0.122:0.116:0.111:0.106:0.102:0.098:0.093:0.087,60.0:0.260:0.220:0.205:0.194:0.186:0.178:0.172:0.165:0.156:0.146,70.0:0.400:0.339:0.315:0.299:0.286:0.274:0.264:0.253:0.241:0.225,80.0:0.580:0.491:0.457:0.433:0.414:0.398:0.383:0.367:0.349:0.326,85.0:0.700:0.593:0.552:0.523:0.500:0.480:0.462:0.443:0.421:0.394,89.4:0.800:0.678:0.631:0.597:0.571:0.549:0.528:0.506:0.481:0.450,91.8:0.850:0.720:0.670:0.635:0.607:0.583:0.561:0.538:0.512:0.478,93.6:0.900:0.762:0.710:0.672:0.643:0.618:0.594:0.570:0.542:0.506,97.9:1.000:0.847:0.788:0.747:0.714:0.686:0.660:0.633:0.602:0.563
+;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0:0:0:0:0:0:0:0:0:0:0,28.0:0.070:0.060:0.056:0.055:0.054:0.054:0.053:0.051:0.049:0.047:0.044,30.0:0.073:0.062:0.059:0.057:0.056:0.057:0.055:0.053:0.051:0.049:0.046,40.0:0.110:0.094:0.088:0.086:0.085:0.085:0.083:0.080:0.078:0.074:0.069,50.0:0.190:0.162:0.153:0.148:0.146:0.147:0.143:0.139:0.134:0.128:0.120,60.0:0.300:0.255:0.241:0.234:0.231:0.233:0.226:0.219:0.212:0.202:0.189,70.0:0.450:0.383:0.361:0.350:0.347:0.349:0.340:0.329:0.317:0.303:0.283,80.0:0.645:0.549:0.518:0.502:0.497:0.500:0.487:0.472:0.455:0.434:0.406,85.0:0.755:0.642:0.606:0.588:0.582:0.585:0.570:0.552:0.532:0.508:0.475,87.0:0.800:0.681:0.642:0.623:0.616:0.620:0.604:0.585:0.564:0.538:0.503,91.2:0.900:0.766:0.723:0.701:0.693:0.698:0.679:0.658:0.635:0.605:0.566,95.3:1.000:0.851:0.803:0.779:0.771:0.775:0.755:0.731:0.705:0.673:0.629
+;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0:0:0:0:0:0:0:0:0:0:0,27.3:0.046:0.039:0.037:0.036:0.035:0.036:0.035:0.034:0.032:0.031:0.029,29.2:0.054:0.046:0.043:0.042:0.042:0.042:0.041:0.039:0.038:0.036:0.034,39.0:0.108:0.092:0.087:0.084:0.084:0.084:0.082:0.079:0.076:0.073:0.068,48.7:0.185:0.158:0.149:0.144:0.143:0.144:0.140:0.136:0.131:0.125:0.117,58.5:0.289:0.246:0.232:0.225:0.222:0.224:0.218:0.211:0.203:0.194:0.182,68.2:0.418:0.356:0.336:0.325:0.322:0.324:0.315:0.306:0.295:0.281:0.263,78.0:0.578:0.492:0.464:0.450:0.445:0.448:0.436:0.423:0.407:0.389:0.364,82.9:0.669:0.570:0.537:0.521:0.516:0.519:0.505:0.490:0.472:0.450:0.421,89.4:0.803:0.683:0.645:0.625:0.619:0.623:0.606:0.587:0.566:0.540:0.505,93.6:0.897:0.764:0.720:0.699:0.691:0.696:0.677:0.656:0.633:0.603:0.565,97.9:1.000:0.851:0.803:0.779:0.771:0.775:0.755:0.731:0.705:0.673:0.629
+;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.032:0.030:0.028:0.027:0.024:0.022:0.019:0.016:0.014,69.4:0.319:0.270:0.249:0.233:0.220:0.208:0.189:0.169:0.148:0.127:0.106,70.0:0.332:0.281:0.260:0.243:0.229:0.217:0.197:0.176:0.154:0.133:0.111,75.0:0.424:0.359:0.331:0.310:0.293:0.277:0.252:0.224:0.197:0.169:0.142,80.0:0.533:0.451:0.416:0.390:0.368:0.348:0.316:0.282:0.247:0.213:0.178,85.0:0.661:0.559:0.516:0.483:0.456:0.432:0.392:0.349:0.307:0.264:0.221,89.4:0.795:0.672:0.621:0.582:0.549:0.520:0.472:0.420:0.369:0.317:0.265,97.9:1.000:0.845:0.781:0.732:0.690:0.654:0.593:0.529:0.464:0.399:0.334
+;TABLE n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.032:0.030:0.028:0.027:0.025:0.024:0.023:0.022:0.021,69.4:0.319:0.270:0.249:0.233:0.220:0.208:0.198:0.188:0.179:0.171:0.163,70.0:0.332:0.281:0.260:0.243:0.229:0.217:0.206:0.196:0.187:0.178:0.170,75.0:0.424:0.359:0.331:0.310:0.293:0.277:0.263:0.250:0.238:0.227:0.216,80.0:0.533:0.451:0.416:0.390:0.368:0.348:0.331:0.315:0.300:0.285:0.272,85.0:0.661:0.559:0.516:0.483:0.456:0.432:0.410:0.390:0.371:0.354:0.337,89.4:0.795:0.672:0.621:0.582:0.549:0.520:0.493:0.469:0.447:0.426:0.405,97.9:1.000:0.845:0.781:0.732:0.690:0.654:0.620:0.590:0.562:0.535:0.510
+;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.035:0.033:0.032:0.031:0.032:0.031:0.030:0.029:0.027:0.026,69.4:0.319:0.271:0.256:0.248:0.246:0.247:0.241:0.233:0.225:0.215:0.201,70.0:0.332:0.283:0.267:0.259:0.256:0.258:0.251:0.243:0.234:0.224:0.209,75.0:0.424:0.361:0.341:0.330:0.327:0.329:0.320:0.310:0.299:0.285:0.267,80.0:0.533:0.454:0.428:0.415:0.411:0.413:0.402:0.390:0.376:0.359:0.335,85.0:0.661:0.562:0.531:0.515:0.509:0.512:0.499:0.483:0.466:0.444:0.416,89.4:0.795:0.677:0.639:0.619:0.613:0.616:0.600:0.582:0.561:0.535:0.500,97.9:1.000:0.851:0.803:0.779:0.771:0.775:0.755:0.731:0.705:0.673:0.629
+;n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.031:0.029:0.027:0.026:0.024:0.023:0.022:0.021:0.020,30.0:0.048:0.041:0.037:0.035:0.033:0.031:0.029:0.027:0.026:0.025:0.023,35.0:0.071:0.059:0.054:0.051:0.048:0.045:0.042:0.040:0.038:0.036:0.034,40.0:0.098:0.082:0.076:0.070:0.066:0.062:0.059:0.056:0.053:0.050:0.047,45.0:0.132:0.110:0.101:0.094:0.088:0.083:0.079:0.074:0.071:0.067:0.063,50.0:0.171:0.143:0.131:0.122:0.115:0.108:0.102:0.097:0.091:0.087:0.082,55.0:0.216:0.180:0.166:0.154:0.145:0.137:0.129:0.122:0.116:0.110:0.104,60.0:0.267:0.224:0.205:0.191:0.180:0.169:0.160:0.151:0.143:0.136:0.129,65.0:0.326:0.272:0.250:0.233:0.219:0.206:0.195:0.184:0.175:0.165:0.157,70.0:0.391:0.327:0.300:0.280:0.263:0.248:0.234:0.221:0.209:0.198:0.188,74.1:0.450:0.376:0.345:0.322:0.302:0.285:0.269:0.255:0.241:0.228:0.216,97.9:1.000:0.836:0.768:0.716:0.672:0.633:0.598:0.566:0.536:0.508:0.481
+n1_and_mach_on_thrust_table = 0.0:0:0.1:0.2:0.3:0.4:0.5:0.6:0.7:0.8:0.9:1.0,0.0:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000:0.000,28.0:0.041:0.034:0.031:0.029:0.027:0.026:0.024:0.023:0.022:0.021:0.020,30.0:0.048:0.041:0.037:0.035:0.033:0.031:0.029:0.027:0.026:0.025:0.023,35.0:0.071:0.059:0.054:0.051:0.048:0.045:0.042:0.040:0.038:0.036:0.034,40.0:0.098:0.082:0.076:0.070:0.066:0.062:0.059:0.056:0.053:0.050:0.047,45.0:0.132:0.110:0.101:0.094:0.088:0.083:0.079:0.074:0.071:0.067:0.063,50.0:0.171:0.143:0.131:0.122:0.115:0.108:0.102:0.097:0.091:0.087:0.082,55.0:0.216:0.180:0.166:0.154:0.145:0.137:0.129:0.122:0.116:0.110:0.104,60.0:0.267:0.224:0.205:0.191:0.180:0.169:0.160:0.151:0.143:0.136:0.129,65.0:0.326:0.272:0.250:0.233:0.219:0.206:0.195:0.184:0.175:0.165:0.157,70.0:0.391:0.327:0.300:0.280:0.263:0.248:0.234:0.221:0.209:0.198:0.188,74.1:0.450:0.376:0.345:0.322:0.302:0.285:0.269:0.255:0.241:0.228:0.216,97.9:1.000:0.836:0.768:0.716:0.672:0.633:0.598:0.566:0.536:0.508:0.481,110.0:1.285:1.074:0.986:0.919:0.863:0.813:0.768:0.727:0.688:0.652:0.618
+;n2_to_n1_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,10.000000:1.100000:1.000000,20.000000:2.700000:2.400000,30.000000:5.700000:4.700000,40.000000:10.100000:8.400000,50.000000:17.500000:12.800000,60.000000:29.900000:21.200001,70.000000:49.400002:41.599998,80.000000:67.500000:60.400002,90.000000:90.599998:85.900002,100.000000:105.500000:102.400002,110.000000:118.000000:114.099998
+n2_to_n1_table = 0:0:0.999,0.00:0.00:0.00,10.00:0.86:0.94,20.00:2.37:2.59,30.00:4.61:5.05,40.00:7.60:8.33,50.00:11.33:12.41,60.00:15.80:17.30,70.00:22.03:24.13,80.00:32.95:36.09,90.00:47.01:51.49,100.00:64.59:70.74,120.00:111.93:122.60
+;corrected_airflow_table = 0.000000:0.000000:0.900000,0.000000:0.000000:0.000000,20.000000:4.290000:14.081000,85.000000:22.000000:24.000000,90.000000:25.000000:25.000000,95.000000:27.000000:27.000000,100.000000:28.000000:28.000000,105.000000:29.000000:29.000000,110.000000:30.000000:30.000000
+;JET_density_on_ff = 0.002378:1.0, 0.002049:0.8177, 0.001756:0.6638, 0.001496:0.5342, 0.001267:0.4271, 0.001066:0.3376, 0.000890:0.2646, 0.000737:0.2047, 0.000585:0.1575, 0.000460:0.1243
+;jet_density_on_ff_table = 0.000460:0.1243, 0.000585:0.1575, 0.000737:0.2047, 0.000890:0.2646, 0.001066:0.3376, 0.001267:0.4271, 0.001496:0.5342, 0.001756:0.6638, 0.002049:0.8177, 0.002378:1.0
+;jet_density_on_ff_table = 0.000460:0.2140, 0.000585:0.2721, 0.000737:0.3473, 0.000890:0.4483, 0.001066:0.5505, 0.001267:0.6420, 0.001496:0.7532, 0.001756:0.7786, 0.002049:0.8956, 0.002378:1.0
+jet_density_on_ff_table = 0.000460:0.3522, 0.000585:0.3847, 0.000737:0.4131, 0.000890:0.4695, 0.001066:0.5505, 0.001267:0.6420, 0.001496:0.7532, 0.001756:0.7786, 0.002049:0.8956, 0.002378:1.0
+epr_max = 1.4
+epr_tc = 14
+epr_tuning_constant = 1
+oil_temp_cooling_constant = 0
+oil_temp_heating_constant = 700
+oil_temp_tc = 0.07
+oil_temp_tuning_constant = 1
+oil_press_max = 12384
+oil_press_tc = 0.8
+oil_press_tuning_constant = 1
+fuel_flow_max_itt_factor = 1.5 ; 2.0
+fuel_flow_min_itt_factor = 0.67 ; 0.72
+n1_cooling_factor = 0 ; 0.01
+itt_peak_temperature = 3012 ; 2141
+itt_tc = 2 ; 2
+itt_tuning_constant = 1
+itt_cooling_factor = 0.01
+egt_peak_temperature = 1917 ; 1600
+egt_tc = 2 ; 2
+egt_tuning_constant = 1
+fuel_press_max = 2376
+fuel_press_tc = 2
+fuel_press_tuning_constant = 1
+variable_inlet = 0
+primary_nozzle_available = 0
+primary_nozzle_afterburner_offset = 0.14
+primary_nozzle_n1_mach_to_nozzle_pos = 0.000000:0.000000:2.000000,53.000000:0.660000:0.100000,65.000000:0.690000:0.330000,96.000000:0.700000:0.440000
+;density_on_torque_table = 0.000225:0.100000, 0.000352:0.300000, 0.000480:0.500000, 0.000607:0.700000, 0.000734:0.900000, 0.000862:1.000000, 0.001241:1.000000, 0.001620:1.000000, 0.001999:1.000000, 0.002378:1.000000
+starter_N1_max_pct = 12 ; Pct, percentage of max rpm that reached using only starter.
+starter_N1_rate = 12 ; Rate at which the starter N1 increases.
+ignition_auto_type = "Starter,Flaps,AntiIce,N2" ; If the Ignition is set to AUTO - specifies how that is handled. 0(default) = Always on, 1 = Ignition follows starter status, 2 = Ignition enabled when Flaps are not neutral, when AntiIce is enabled, or when N1/N2 is below 50%.
+min_condition_lever_for_combustion = 0.01 ; % - Minimum position of the Condition lever to obtain a combustion. Default at 0.01.
+min_n1_for_combustion = 10 ; % - Minimum N1 required to maintain a combustion
+min_n2_for_combustion = 19.4 ; % - Minimum N2 required to maintain a combustion
+min_n1_for_starter_cutoff = 200 ; % - Minimum N1 at which the starter is automatically disabled
+min_n2_for_starter_cutoff = 50 ; % - Minimum N2 at which the starter is automatically disabled
+min_n2_for_apu_bleed_air_cutoff = 200 ; % - Minimum N2 at which the APU Bleed Air is automatically disabled
+n2_from_bleed_air_psi_table = 0:0, 4:8, 10:18, 18:25 ; Table which contains the n2 generated depending on the pression from the bleed air from the APU (in psi).
+bleed_air_on_n2_tc = 1 ; Time constant which contains the speed at which the bleed air pressure affect the N2 of the turbine.
+N1_to_oil_pressure_table = 0:0, 0.21:0.88, 0.9:0.954, 1:1 ; % of max Oil Pressure for % N1.
+n1_normal_tc = 0.5 ; Float factor changing N1 acceleration during normal use of the engine
+n1_start_max_rate = 1.0 ; Float limiting N1 acceleration during starter use
+n1_start_combustion_max_rate = 2.0 ; Float limiting N1 acceleration during startup when cumbustion has started
+idle_fuel_flow = 1714 ; 3100 ; pound per hour
+low_idle_n1 = 20.2 ; 23.2
+low_idle_n2 = 68 ; 60
+high_n1 = 106.7 ; 106.7 ; 98 ; 106.7 ; 100 ; 98
+high_n2 = 118.0 ; 118.0 ; 102 ; 118.0 ; 100 ; 102
+high_fuel_flow = 20000 ; 8000
+min_n2_for_fuel_flow = 22
+mach_influence_on_n1 = 0
+fuel_flow_max = 25000 ; 10000
+fuel_flow_controller_p = 0.8 ; 0.5
+fuel_flow_controller_i = 0.1
+fuel_flow_controller_d = 0.5
+fuel_flow_controller_iboundary = 5
+fuel_flow_controller_dboundary = 100
+max_torque_protection = 0 ; 0 = no protection, value of the torque triggering a protection by automatically limiting the fuelflow
+max_n1_protection = 0 ; 104 ; 0 = no protection, value of the n1 triggering a protection by automatically limiting the fuelflow
+max_n2_protection = 0 ; 105 ; 0 = no protection, value of the n2 triggering a protection by automatically limiting the fuelflow
+max_egt_protection = 0 ; 2408.67 ; 2000 ; 0 = no protection, value of the egt triggering a protection by automatically limiting the fuelflow
+
+[JET_ENGINE]
+thrust_scalar = 1 ; 0.85
+
+[DISABLED_CONTROLS]
+DisableFuelValveControls = 0 ; Disable fuel valve controls
+DisableMixtureControls = 1 ; Disable mixture controls
+DisableParkingBrakeControls = 0 ; Disable parking brake controls
+DisablePropellerControls = 1 ; Disable propeller controls
+
diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg
index 279879080..72d0efff4 100644
--- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg
+++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/flight_model.cfg
@@ -1,579 +1,631 @@
-[VERSION]
-major = 1
-minor = 0
-
-[WEIGHT_AND_BALANCE]
-max_gross_weight = 987000 ; Empty weight, (LBS)
-empty_weight = 485300 ; Empty weight, (LBS)
-reference_datum_position = 83.5, 0, 0 ; Position of reference datum relative to FS(0,0,0) (FEET), z, x, y
-empty_weight_CG_position = -98, 0, 0 ; Position of airplane empty weight CG relative to reference datum (FEET), z, x, y
-CG_forward_limit = 0.14 ; Gravity center forward limit in %MAX (divided by 100: 0.14 = 14%MAC)
-CG_aft_limit = 0.44 ; Gravity center aft limit in %MAX (divided by 100: 0.44 = 44%MAC)
-empty_weight_pitch_MOI = 76427903; Empty pitch moment of inertia, Jxx (SLUG SQ FEET)
-empty_weight_roll_MOI = 19300696 ; Empty roll moment of inertia, Jzz (SLUG SQ FEET)
-empty_weight_yaw_MOI = 89315555 ; Empty yaw moment of inertia, Jyy (SLUG SQ FEET)
-empty_weight_coupled_MOI = 10000 ; Empty transverse moment of inertia, Jyz (SLUG SQ FEET)
-activate_mach_limit_based_on_cg = 0 ; Activate mach limitation depending on CG position (true if > 0 /false othewise). Mostly for Concorde).
-activate_cg_limit_based_on_mach = 0 ; Activate cg limitation depending on mach value (true if > 0 /false othewise). Mostly for Concorde).
-max_number_of_stations =11
-station_load.0 =170, -2.964119, -1.611132, 13.155828, TT:MENU.PAYLOAD.PILOT, 1
-station_load.1 =170, -2.923056, 1.508653, 12.5651, TT:MENU.PAYLOAD.COPILOT, 2
-station_load.2 =5000, -35.400535, -0.000003, 11.415958, TT:MENU.PAYLOAD.BUSINESS_UPPER
-station_load.3 =1000, 0.04913, -0.000002, -0.000001, TT:MENU.PAYLOAD.FIRST_CLASS
-station_load.4 =5400, -44.383345, -0.000001, -0.000001, TT:MENU.PAYLOAD.BUSINESS_MAIN
-station_load.5 =6000, -100.362841, 0.000004, 2.013768, TT:MENU.PAYLOAD.PREMIUM_ECONOMY
-station_load.6 =5000, -81.274814, -0, -0, TT:MENU.PAYLOAD.FORWARD_ECONOMY
-station_load.7 =36000, -148.319361, 0.000004, 0.000002, TT:MENU.PAYLOAD.REAR_ECONOMY
-station_load.8 =8000, -28.56284, -0.000005, -3.566868, TT:MENU.PAYLOAD.FORWARD_BAGGAGE
-station_load.9 =8000, -138.077047, -0.000003, -3.834466, TT:MENU.PAYLOAD.REAR_BAGGAGE
-station_load.10 =1800, -81.274814, -0, -0, TT:MENU.PAYLOAD.CREW
-
-[CONTACT_POINTS]
-static_pitch = 0.2 ; degrees, pitch when at rest on the ground (+=Up, -=Dn)
-static_cg_height = 15.13 ; feet, altitude of CG when at rest on the ground
-gear_system_type = 1 ; gear system type (betweeen 0 and 4) 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none, 5 = undefined
-tailwheel_lock = 0 ; Is tailwheel lock available TRUE/FALSE
-max_number_of_points = 16 ; Number of contact points
-gear_locked_on_ground = 1 ; Defines whether or not the landing gear handle is locked to down when the plane is on the ground.
-gear_locked_above_speed = 270 ; Defines the speed at which the landing gear handle becomes locked in the up position. (-1 = Disabled)
-max_speed_full_steering = 8 ; Defines the speed under which the full angle of steering is available (in feet/second).
-max_speed_decreasing_steering = 50 ; Defines the speed above which the angle of steering stops decreasing (in feet/second).
-min_available_steering_angle_pct = 0.2 ; Defines the percentage of steering which will always be available even above max_speed_decreasing_steering (in percent over 100).
-max_speed_full_steering_castering = 20 ; Defines the speed under which the full angle of steering is available for free castering wheels (in feet/second).
-max_speed_decreasing_steering_castering = 40 ; Defines the speed above which the angle of steering stops decreasing for free castering wheels (in feet/second).
-min_castering_angle = 0.05236 ; Defines the minimum angle a free castering wheel can take (in radians).
-max_castering_angle = 3.14159265358979 ; Defines the maximum angle a free castering wheel can take (in radians).
-; NOSE GEAR
-point.0 = 1, -5.0, 0.0, -15.7, 720, 0, 2, 60.0, 0.90, 2.0, 0.5, 9, 8, 0, 220, 250, 2
-; OUTBD L BODY GEAR
-point.1 = 1, -102.5, -18.0, -16.9, 1500, 1, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 2, 220, 250, 2
-point.2 = 1, -102.5, -16.0, -16.9, 1500, 1, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 2, 220, 250, 2
-; OUTBD R BODY GEAR
-point.3 = 1, -102.5, 16.0, -16.9, 1500, 2, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 3, 220, 250, 2
-point.4 = 1, -102.5, 18.0, -16.9, 1500, 2, 2, 0.0, 1.36, 3.0, 0.5, 11, 9, 3, 220, 250, 2
-; INBD L BODY GEAR
-point.5 = 1, -113.0, -9.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2
-point.6 = 1, -113.0, -7.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2
-; INBD R BODY GEAR
-point.7 = 1, -113.0, 7.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2
-point.8 = 1, -113.0, 9.0, -16.9, 1500, 2, 2, 10.0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2
-; MISC. PTS
-point.9 = 2, -161.5, -114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 1
-point.10 = 2, -161.5, 114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1
-point.11 = 2, 12, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 1
-point.12 = 2, -180, 0, -0.8, 720, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
-point.13 = 2, -220, 0, 48, 500, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 1
-point.14 = 2, -30, 0, -7.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
-point.15 = 2, -150, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
-
-[FUEL]
-LeftMain = -96, -28, -4, 12546, 0 ; For each tank: Tank position (z longitudinal, x lateral, y vertical) (FEET), total fuel capacity (GALLONS), unusable fuel capacity (GALLONS)
-RightMain = -96, 28, -4, 12546, 0
-Center1 = -83.5, 0, -7, 17164, 0
-Center2 = -193.5, 0, 6, 3300, 0
-Center3 = -3.6, 0, 0, 0, 0
-LeftAux = -112, -48, -3, 4482, 0
-LeftTip = -130, -73, 0, 1322, 0
-RightAux = -112, 48, -3, 4482, 0
-RightTip = -130, 73, 0, 1322, 0
-External1 = -3.6, 0, 0, 0, 0
-External2 = -3.6, 0, 0, 0, 0
-fuel_type = 2 ; 1 = OCTANE 100, 2 = JET_A, 3 = OCTANE 80, 4 = AUTO GAS, 5 = JET B
-number_of_tank_selectors = 1 ; Max 4
-electric_pump = 1
-engine_driven_pump = 1
-manual_transfer_pump = 0
-manual_pump = 0
-anemometer_pump = 0
-fuel_dump_rate = 0.0167
-default_fuel_tank_selector.1 = 1 ; Default fuel selector used in case of autostart for engine 1, default is ALL.
-default_fuel_tank_selector.2 = 1 ; Default fuel selector used in case of autostart for engine 2, default is ALL.
-default_fuel_tank_selector.3 = 1 ; Default fuel selector used in case of autostart for engine 3, default is ALL.
-default_fuel_tank_selector.4 = 1 ; Default fuel selector used in case of autostart for engine 4, default is ALL.
-
-[FUEL_SYSTEM]
-APU.1 = Name:APU#FuelBurnRate:10
-Engine.1 = Name:LeftTipEngine#Index:1
-Engine.2 = Name:LeftInnerEngine#Index:2
-Engine.3 = Name:RightInnerEngine#Index:3
-Engine.4 = Name:RightTipEngine#Index:4
-Tank.1 = Name:CenterWingTank#Title:TT:MENU.FUEL.CENTER_WING_TANK#Capacity:17000#UnusableCapacity:0#Position:-83.5,0,-7#Priority:1#OutputOnlyLines:CenterTankToCenterPumpFwd,CenterTankToCenterPumpAft#InputOnlyLines:StabTransferValve1ToCenterWingTank,StabTransferValve2ToCenterWingTank
-Tank.2 = Name:MainTank1#Title:TT:MENU.FUEL.MAIN_TANK_1#Capacity:5320#UnusableCapacity:0#Position:-112,-48,-3#Priority:3#OutputOnlyLines:MainTank1ToMainTank1PumpFwd,MainTank1ToMainTank1PumpAft#InputOnlyLines:ReserveTank2JunctionToMainTank2
-Tank.3 = Name:MainTank2#Title:TT:MENU.FUEL.MAIN_TANK_2#Capacity:14430#UnusableCapacity:0#Position:-96,-28,-4#Priority:3#OutputOnlyLines:MainTank2ToMainTank2PumpFwd,MainTank2ToMainTank2PumpAft,MainTank2ToMainTank2OvrdPumpFwd,MainTank2ToMainTank2OvrdPumpAft
-Tank.4 = Name:MainTank3#Title:TT:MENU.FUEL.MAIN_TANK_3#Capacity:14430#UnusableCapacity:0#Position:-96,28,-4#Priority:3#OutputOnlyLines:MainTank3ToMainTank3PumpFwd,MainTank3ToMainTank3PumpAft,MainTank3ToMainTank3OvrdPumpFwd,MainTank3ToMainTank3OvrdPumpAft
-Tank.5 = Name:MainTank4#Title:TT:MENU.FUEL.MAIN_TANK_4#Capacity:5320#UnusableCapacity:0#Position:-112,48,-3#Priority:3#OutputOnlyLines:MainTank4ToMainTank4PumpFwd,MainTank4ToMainTank4PumpAft#InputOnlyLines:ReserveTank3JunctionToMainTank3
-Tank.6 = Name:ReserveTank2#Title:TT:MENU.FUEL.RESERVE_TANK_2#Capacity:1534#UnusableCapacity:0#Position:-130,-73,0#Priority:2#OutputOnlyLines:ReserveTank2ToReservePump1Fwd,ReserveTank2ToReservePump1Aft
-Tank.7 = Name:ReserveTank3#Title:TT:MENU.FUEL.RESERVE_TANK_3#Capacity:1534#UnusableCapacity:0#Position:-130,73,0#Priority:2#OutputOnlyLines:ReserveTank3ToReservePumpFwd,ReserveTank3ToReservePumpAft
-Tank.8 = Name:StabTank#Title:TT:MENU.FUEL.STAB_TANK#Capacity:3300#UnusableCapacity:0#Position:-193.5,0,6#Priority:0#OutputOnlyLines:StabTankToStabTankPumpFwd,StabTankToStabTankPumpAft
-Line.1 = Name:CenterTankToCenterPumpFwd#Source:CenterWingTank#Destination:CenterWingTankPumpFwd
-Line.2 = Name:CenterTankToCenterPumpAft#Source:CenterWingTank#Destination:CenterWingTankPumpAft
-Line.3 = Name:CenterPumpFwdToCenterLeftJunc#Source:CenterWingTankPumpFwd#Destination:CenterLeftJunction
-Line.4 = Name:CenterPumpAftToCenterRightJunc#Source:CenterWingTankPumpAft#Destination:CenterRightJunction
-Line.5 = Name:MainTank1ToMainTank1PumpFwd#Source:MainTank1#Destination:MainTank1PumpFwd
-Line.6 = Name:MainTank1ToMainTank1PumpAft#Source:MainTank1#Destination:MainTank1PumpAft
-Line.7 = Name:MainTank1PumpFwdToMainTank1Junc#Source:MainTank1PumpFwd#Destination:MainTank1Junction
-Line.8 = Name:MainTank1PumpAftToMainTank1Junc#Source:MainTank1PumpAft#Destination:MainTank1Junction
-Line.9 = Name:MainTank1JuncToEng1Junc#Source:MainTank1Junction#Destination:Eng1Junction
-Line.10 = Name:Eng1JuncToEng1Pump#Source:Eng1Junction#Destination:Eng1Pump
-Line.11 = Name:LeftTipEngineValveToLeftTipEngine#Source:LeftTipEngineValve#Destination:LeftTipEngine
-Line.12 = Name:Eng1JuncToEng1XFeedValve#Source:Eng1Junction#Destination:LeftTipCrossFeedValve
-Line.13 = Name:Eng1XFeedValveToLeftSideJunc#Source:LeftTipCrossFeedValve#Destination:LeftSideJunction
-Line.14 = Name:MainTank2ToMainTank2PumpFwd#Source:MainTank2#Destination:MainTank2PumpFwd
-Line.15 = Name:MainTank2ToMainTank2PumpAft#Source:MainTank2#Destination:MainTank2PumpAft
-Line.16 = Name:MainTank2PumpFwdToMainTank2Junc#Source:MainTank2PumpFwd#Destination:MainTank2Junction
-Line.17 = Name:MainTank2PumpAftToMainTank2ToAPUJunc#Source:MainTank2PumpAft#Destination:MainTank2ToAPUJunction
-Line.18 = Name:MainTank2ToAPUJuncToMainTank2Junc#Source:MainTank2ToAPUJunction#Destination:MainTank2Junction
-Line.19 = Name:MainTank2ToAPUJuncToMainTank2AftToAPUJunc#Source:MainTank2ToAPUJunction#Destination:MainTank2AftToAPUJunction
-Line.20 = Name:MainTank2ToAPUDCPump#Source:MainTank2#Destination:APUDCPump
-Line.21 = Name:APUDCPumpToMainTank2AftToAPUJunction#Source:APUDCPump#Destination:MainTank2AftToAPUJunction
-Line.22 = Name:MainTank2AftToAPUValve#Source:MainTank2AftToAPUJunction#Destination:APUValve
-Line.23 = Name:APUValveToAPU#Source:APUValve#Destination:APU
-Line.24 = Name:MainTank2JuncToEng2Junc#Source:MainTank2Junction#Destination:Eng2Junction
-Line.25 = Name:Eng2JuncToEng2Pump#Source:Eng2Junction#Destination:Eng2Pump
-Line.26 = Name:LeftInnerEngineValveToLeftInnerEngine#Source:LeftInnerEngineValve#Destination:LeftInnerEngine
-Line.27 = Name:Eng2JuncToEng2XFeedValve#Source:Eng2Junction#Destination:LeftInnerCrossFeedValve
-Line.28 = Name:Eng2XFeedValveToLeftSideJunc#Source:LeftInnerCrossFeedValve#Destination:LeftSideJunction
-Line.29 = Name:LeftSideJuncToCenterLeftJunc#Source:LeftSideJunction#Destination:CenterLeftJunction
-Line.30 = Name:MainTank3ToMainTank3PumpFwd#Source:MainTank3#Destination:MainTank3PumpFwd
-Line.31 = Name:MainTank3ToMainTank3PumpAft#Source:MainTank3#Destination:MainTank3PumpAft
-Line.32 = Name:MainTank3PumpFwdToMainTank3Junc#Source:MainTank3PumpFwd#Destination:MainTank3Junction
-Line.33 = Name:MainTank3PumpAftToMainTank3Junc#Source:MainTank3PumpAft#Destination:MainTank3Junction
-Line.34 = Name:MainTank3JuncToEng3Junc#Source:MainTank3Junction#Destination:Eng3Junction
-Line.35 = Name:Eng3JuncToEng3Pump#Source:Eng3Junction#Destination:Eng3Pump
-Line.36 = Name:RightInnerEngineValveToRightInnerEngine#Source:RightInnerEngineValve#Destination:RightInnerEngine
-Line.37 = Name:Eng3JuncToEng3XFeedValve#Source:Eng3Junction#Destination:RightInnerCrossFeedValve
-Line.38 = Name:Eng3XFeedValveToRightSideJunc#Source:RightInnerCrossFeedValve#Destination:RightSideJunction
-Line.39 = Name:RightSideJuncToCenterRightJunc#Source:RightSideJunction#Destination:CenterRightJunction
-Line.40 = Name:CenterLeftJuncToCenterRightJunc#Source:CenterLeftJunction#Destination:CenterRightJunction
-Line.41 = Name:MainTank4ToMainTank4PumpFwd#Source:MainTank4#Destination:MainTank4PumpFwd
-Line.42 = Name:MainTank4ToMainTank4PumpAft#Source:MainTank4#Destination:MainTank4PumpAft
-Line.43 = Name:MainTank4PumpFwdToMainTank4Junc#Source:MainTank4PumpFwd#Destination:MainTank4Junction
-Line.44 = Name:MainTank4PumpAftToMainTank4Junc#Source:MainTank4PumpAft#Destination:MainTank4Junction
-Line.45 = Name:MainTank4JuncToEng4Junc#Source:MainTank4Junction#Destination:Eng4Junction
-Line.46 = Name:Eng4JuncToEng4Pump#Source:Eng4Junction#Destination:Eng4Pump
-Line.47 = Name:RightTipEngineValveToRightTipEngine#Source:RightTipEngineValve#Destination:RightTipEngine
-Line.48 = Name:Eng4JuncToEng4XFeedValve#Source:Eng4Junction#Destination:RightTipCrossFeedValve
-Line.49 = Name:Eng4XFeedValveToRightSideJunc#Source:RightTipCrossFeedValve#Destination:RightSideJunction
-Line.50 = Name:MainTank2ToMainTank2OvrdPumpFwd#Source:MainTank2#Destination:MainTank2OvrdPumpFwd
-Line.51 = Name:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#Source:MainTank2OvrdPumpFwd#Destination:MainTank2OverrideJunction
-Line.52 = Name:MainTank2ToMainTank2OvrdPumpAft#Source:MainTank2#Destination:MainTank2OvrdPumpAft
-Line.53 = Name:MainTank2OvrdPumpAftToMainTank2OvrdJunc#Source:MainTank2OvrdPumpAft#Destination:MainTank2OverrideJunction
-Line.54 = Name:MainTank2OvrdJuncToLeftSideJunc#Source:MainTank2OverrideJunction#Destination:LeftSideJunction
-Line.55 = Name:MainTank3ToMainTank3OvrdPumpFwd#Source:MainTank3#Destination:MainTank3OvrdPumpFwd
-Line.56 = Name:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#Source:MainTank3OvrdPumpFwd#Destination:MainTank3OverrideJunction
-Line.57 = Name:MainTank3ToMainTank3OvrdPumpAft#Source:MainTank3#Destination:MainTank3OvrdPumpAft
-Line.58 = Name:MainTank3OvrdPumpAftToMainTank3OvrdJunc#Source:MainTank3OvrdPumpAft#Destination:MainTank3OverrideJunction
-Line.59 = Name:MainTank3OvrdJuncToRightSideJunc#Source:MainTank3OverrideJunction#Destination:RightSideJunction
-Line.60 = Name:StabTankToStabTankPumpFwd#Source:StabTank#Destination:StabTankPumpFwd
-Line.61 = Name:StabTankPumpFwdToStabTankJuncAft#Source:StabTankPumpFwd#Destination:StabTankJunctionAft
-Line.62 = Name:StabTankToStabTankPumpAft#Source:StabTank#Destination:StabTankPumpAft
-Line.63 = Name:StabTankPumpAftToStabTankJuncAft#Source:StabTankPumpAft#Destination:StabTankJunctionAft
-Line.64 = Name:StabTankJuncAftToStabTankJuncMid#Source:StabTankJunctionAft#Destination:StabTankJuncMid
-Line.65 = Name:StabTankJuncMidToStabTankValve1#Source:StabTankJuncMid#Destination:StabTankValve1
-Line.66 = Name:StabTankJuncMidToStabTankValve2#Source:StabTankJuncMid#Destination:StabTankValve2
-Line.67 = Name:StabTankValve1ToStabTankJuncFwd#Source:StabTankValve1#Destination:StabTankJuncFwd
-Line.68 = Name:StabTankValve2ToStabTankJuncFwd#Source:StabTankValve2#Destination:StabTankJuncFwd
-Line.69 = Name:StabTankJuncFwdToCenterWingStabJunc#Source:StabTankJuncFwd#Destination:CenterWingStabJunc
-Line.70 = Name:CenterWingStabJuncToCenterWingStabJuncValve1#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve1
-Line.71 = Name:CenterWingStabJuncToCenterWingStabJuncValve2#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve2
-Line.72 = Name:CenterWingStabJuncValve1ToMainJettisonJunc#Source:CenterWingStabJuncValve1#Destination:StabTransferValve1
-Line.73 = Name:CenterWingStabJuncValve2ToMainJettisonJunc#Source:CenterWingStabJuncValve2#Destination:StabTransferValve2
-Line.74 = Name:StabTransferValve1ToCenterWingTank#Source:StabTransferValve1#Destination:CenterWingTank
-Line.75 = Name:StabTransferValve2ToCenterWingTank#Source:StabTransferValve2#Destination:CenterWingTank
-Line.76 = Name:ReserveTank2ToReservePump1Fwd#Source:ReserveTank2#Destination:ReservePump1Fwd
-Line.77 = Name:ReserveTank2ValveFwdToReserveTank2Junction#Source:ReserveTank2ValveFwd#Destination:ReserveTank2Junction
-Line.78 = Name:ReserveTank2ToReservePump1Aft#Source:ReserveTank2#Destination:ReservePump1Aft
-Line.79 = Name:ReserveTank2ValveAftToReserveTank2Junction#Source:ReserveTank2ValveAft#Destination:ReserveTank2Junction
-Line.80 = Name:ReserveTank2JunctionToMainTank2#Source:ReserveTank2Junction#Destination:MainTank1
-Line.81 = Name:ReserveTank3ToReservePump4Fwd#Source:ReserveTank3#Destination:ReservePump4Fwd
-Line.82 = Name:ReserveTank3ValveFwdToReserveTank3Junction#Source:ReserveTank3ValveFwd#Destination:ReserveTank3Junction
-Line.83 = Name:ReserveTank3ToReservePump4Aft#Source:ReserveTank3#Destination:ReservePump4Aft
-Line.84 = Name:ReserveTank3ValveAftToReserveTank3Junction#Source:ReserveTank3ValveAft#Destination:ReserveTank3Junction
-Line.85 = Name:ReserveTank3JunctionToMainTank3#Source:ReserveTank3Junction#Destination:MainTank4
-Line.86 = Name:MainTank2OverrideJunctionToMainTank2JettisonValve#Source:MainTank2OverrideJunction#Destination:MainTank2JettisonValve
-Line.87 = Name:MainTank2JettisonValveToMainJettisonJunc#Source:MainTank2JettisonValve#Destination:MainJettisonJunction
-Line.88 = Name:MainTank2OvrdJuncToCenterLeftAftJettisonValve#Source:MainTank2OverrideJunction#Destination:CenterLeftAftJettisonValve
-Line.89 = Name:CenterLeftAftJettisonValveToMainJettisonJunc#Source:CenterLeftAftJettisonValve#Destination:MainJettisonJunction
-Line.90 = Name:MainTank3OverrideJunctionToMainTank3JettisonValve#Source:MainTank3OverrideJunction#Destination:MainTank3JettisonValve
-Line.91 = Name:MainTank3JettisonValveToMainJettisonJunc#Source:MainTank3JettisonValve#Destination:MainJettisonJunction
-Line.92 = Name:MainTank3OvrdJuncToCenterRightAftJettisonValve#Source:MainTank3OverrideJunction#Destination:CenterRightAftJettisonValve
-Line.93 = Name:CenterRightAftJettisonValveToMainJettisonJunc#Source:CenterRightAftJettisonValve#Destination:MainJettisonJunction
-Line.94 = Name:MainJettisonJuncToJettisonNozzleValve1#Source:MainJettisonJunction#Destination:JettisonNozzleValve1
-Line.95 = Name:MainJettisonJuncToJettisonNozzleValve2#Source:MainJettisonJunction#Destination:JettisonNozzleValve2
-Line.96 = Name:MainTank1ToLeftTanksTransferValve#Source:MainTank1#Destination:LeftTanksTransferValve#GravityBasedFuelFlow:100
-Line.97 = Name:LeftTanksTransferValveToMainTank2#Source:LeftTanksTransferValve#Destination:MainTank2#GravityBasedFuelFlow:100
-Line.98 = Name:MainTank4ToRightTanksTransferValve#Source:MainTank4#Destination:RightTanksTransferValve#GravityBasedFuelFlow:100
-Line.99 = Name:RightTanksTransferValveToMainTank3#Source:RightTanksTransferValve#Destination:MainTank3#GravityBasedFuelFlow:100
-Line.100 = Name:Eng1PumpToEng1Valve#Source:Eng1Pump#Destination:LeftTipEngineValve
-Line.101 = Name:Eng2PumpToEng2Valve#Source:Eng2Pump#Destination:LeftInnerEngineValve
-Line.102 = Name:Eng3PumpToEng3Valve#Source:Eng3Pump#Destination:RightInnerEngineValve
-Line.103 = Name:Eng4PumpToEng4Valve#Source:Eng4Pump#Destination:RightTipEngineValve
-Line.104 = Name:ReservePump1FwdToReserveTank2ValveFwd#Source:ReservePump1Fwd#Destination:ReserveTank2ValveFwd
-Line.105 = Name:ReservePump1AftToReserveTank2ValveAft#Source:ReservePump1Aft#Destination:ReserveTank2ValveAft
-Line.106 = Name:ReservePump4FwdToReserveTank3ValveFwd#Source:ReservePump4Fwd#Destination:ReserveTank3ValveFwd
-Line.107 = Name:ReservePump4AftToReserveTank3ValveAft#Source:ReservePump4Aft#Destination:ReserveTank3ValveAft
-Junction.1 = Name:MainTank1Junction#InputOnlyLines:MainTank1PumpFwdToMainTank1Junc,MainTank1PumpAftToMainTank1Junc#OutputOnlyLines:MainTank1JuncToEng1Junc
-Junction.2 = Name:Eng1Junction#InputOnlyLines:MainTank1JuncToEng1Junc#OutputOnlyLines:Eng1JuncToEng1Pump
-Junction.3 = Name:MainTank2Junction#InputOnlyLines:MainTank2PumpFwdToMainTank2Junc,MainTank2PumpAftToMainTank2Junc#OutputOnlyLines:MainTank2JuncToEng2Junc
-Junction.4 = Name:Eng2Junction#InputOnlyLines:MainTank2JuncToEng2Junc#OutputOnlyLines:Eng2JuncToEng2Pump
-Junction.5 = Name:MainTank3Junction#InputOnlyLines:MainTank3PumpFwdToMainTank3Junc,MainTank3PumpAftToMainTank3Junc#OutputOnlyLines:MainTank3JuncToEng3Junc
-Junction.6 = Name:Eng3Junction#InputOnlyLines:MainTank3JuncToEng3Junc#OutputOnlyLines:Eng3JuncToEng3Pump
-Junction.7 = Name:MainTank4Junction#InputOnlyLines:MainTank4PumpFwdToMainTank4Junc,MainTank4PumpAftToMainTank4Junc#OutputOnlyLines:MainTank4JuncToEng4Junc
-Junction.8 = Name:Eng4Junction#InputOnlyLines:MainTank4JuncToEng4Junc#OutputOnlyLines:Eng4JuncToEng4Pump
-Junction.9 = Name:MainTank2OverrideJunction#InputOnlyLines:MainTank2OvrdPumpFwdToMainTank2OvrdJunc,MainTank2OvrdPumpAftToMainTank2OvrdJunc#OutputOnlyLines:MainTank2OvrdJuncToCenterLeftAftJettisonValve
-Junction.10 = Name:MainTank3OverrideJunction#InputOnlyLines:MainTank3OvrdPumpFwdToMainTank3OvrdJunc,MainTank3OvrdPumpAftToMainTank3OvrdJunc#OutputOnlyLines:MainTank3OvrdJuncToCenterRightAftJettisonValve
-Junction.11 = Name:LeftSideJunction#InputOnlyLines:MainTank2OvrdJuncToLeftSideJunc
-Junction.12 = Name:RightSideJunction#InputOnlyLines:MainTank3OvrdJuncToRightSideJunc
-Junction.13 = Name:CenterLeftJunction#InputOnlyLines:CenterPumpFwdToCenterLeftJunc
-Junction.14 = Name:CenterRightJunction#InputOnlyLines:CenterPumpAftToCenterRightJunc
-Junction.15 = Name:MainTank2ToAPUJunction#OutputOnlyLines:MainTank2ToAPUJuncToMainTank2Junc,MainTank2ToAPUJuncToMainTank2AftToAPUJunc
-Junction.16 = Name:MainTank2AftToAPUJunction#InputOnlyLines:MainTank2ToAPUJuncToMainTank2AftToAPUJunc,APUDCPumpToMainTank2AftToAPUJunction
-Junction.17 = Name:ReserveTank2Junction#OutputOnlyLines:ReserveTank2JunctionToMainTank2
-Junction.18 = Name:ReserveTank3Junction#OutputOnlyLines:ReserveTank3JunctionToMainTank3
-Junction.19 = Name:StabTankJunctionAft#InputOnlyLines:StabTankPumpAftToStabTankJuncFwd,StabTankPumpAftToStabTankJuncAft
-Junction.20 = Name:StabTankJuncMid
-Junction.21 = Name:StabTankJuncFwd
-Junction.22 = Name:CenterWingStabJunc
-Junction.23 = Name:MainJettisonJunction
-Valve.1 = Name:LeftTipCrossFeedValve#Circuit:1
-Valve.2 = Name:LeftInnerCrossFeedValve#Circuit:2
-Valve.3 = Name:RightInnerCrossFeedValve#Circuit:3
-Valve.4 = Name:RightTipCrossFeedValve#Circuit:4
-Valve.5 = Name:LeftTipEngineValve#Circuit:5
-Valve.6 = Name:LeftInnerEngineValve#Circuit:6
-Valve.7 = Name:RightInnerEngineValve#Circuit:7
-Valve.8 = Name:RightTipEngineValve#Circuit:8
-Valve.9 = Name:APUValve#Circuit:9
-Valve.10 = Name:ReserveTank2ValveFwd#Circuit:10
-Valve.11 = Name:ReserveTank2ValveAft#Circuit:11
-Valve.12 = Name:ReserveTank3ValveFwd#Circuit:12
-Valve.13 = Name:ReserveTank3ValveAft#Circuit:13
-Valve.14 = Name:StabTankValve1#Circuit:14
-Valve.15 = Name:StabTankValve2#Circuit:15
-Valve.16 = Name:CenterWingStabJuncValve1#Circuit:16
-Valve.17 = Name:CenterWingStabJuncValve2#Circuit:17
-Valve.18 = Name:StabTransferValve1#Circuit:18
-Valve.19 = Name:StabTransferValve2#Circuit:19
-Valve.20 = Name:MainTank2JettisonValve#Circuit:20
-Valve.21 = Name:CenterLeftAftJettisonValve#Circuit:21
-Valve.22 = Name:MainTank3JettisonValve#Circuit:22
-Valve.23 = Name:CenterRightAftJettisonValve#Circuit:23
-Valve.24 = Name:JettisonNozzleValve1#Circuit:24
-Valve.25 = Name:JettisonNozzleValve2#Circuit:25
-Valve.26 = Name:LeftTanksTransferValve#Circuit:26
-Valve.27 = Name:RightTanksTransferValve#Circuit:27
-Pump.1 = Name:CenterWingTankPumpFwd#Pressure:45#DestinationLine:CenterPumpFwdToCenterLeftJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:13
-Pump.2 = Name:CenterWingTankPumpAft#Pressure:45#DestinationLine:CenterPumpAftToCenterRightJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:14
-Pump.3 = Name:MainTank1PumpFwd#Pressure:20#DestinationLine:MainTank1PumpFwdToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:1
-Pump.4 = Name:MainTank1PumpAft#Pressure:20#DestinationLine:MainTank1PumpAftToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:2
-Pump.5 = Name:MainTank2PumpFwd#Pressure:20#DestinationLine:MainTank2PumpFwdToMainTank2Junc#TankFuelRequired:MainTank2#Type:Electric#Index:3
-Pump.6 = Name:MainTank2PumpAft#Pressure:20#DestinationLine:MainTank2PumpAftToMainTank2ToAPUJunc#TankFuelRequired:MainTank2#Type:Electric#Index:4
-Pump.7 = Name:MainTank2OvrdPumpFwd#Pressure:35#DestinationLine:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:5
-Pump.8 = Name:MainTank2OvrdPumpAft#Pressure:35#DestinationLine:MainTank2OvrdPumpAftToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:6
-Pump.9 = Name:MainTank3PumpFwd#Pressure:20#DestinationLine:MainTank3PumpFwdToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:7
-Pump.10 = Name:MainTank3PumpAft#Pressure:20#DestinationLine:MainTank3PumpAftToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:8
-Pump.11 = Name:MainTank3OvrdPumpFwd#Pressure:35#DestinationLine:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:9
-Pump.12 = Name:MainTank3OvrdPumpAft#Pressure:35#DestinationLine:MainTank3OvrdPumpAftToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:10
-Pump.13 = Name:MainTank4PumpFwd#Pressure:20#DestinationLine:MainTank4PumpFwdToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:11
-Pump.14 = Name:MainTank4PumpAft#Pressure:20#DestinationLine:MainTank4PumpAftToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:12
-Pump.15 = Name:StabTankPumpFwd#Pressure:10#DestinationLine:StabTankPumpFwdToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:15
-Pump.16 = Name:StabTankPumpAft#Pressure:10#DestinationLine:StabTankPumpAftToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:16
-Pump.17 = Name:APUDCPump#Pressure:10#DestinationLine:APUDCPumpToMainTank2AftToAPUJunction#TankFuelRequired:MainTank2#Type:Electric#Index:17
-Pump.18 = Name:Eng1Pump#Pressure:10#DestinationLine:Eng1PumpToEng1Valve#Type:EngineDriven#Index:1
-Pump.19 = Name:Eng2Pump#Pressure:10#DestinationLine:Eng2PumpToEng2Valve#Type:EngineDriven#Index:2
-Pump.20 = Name:Eng3Pump#Pressure:10#DestinationLine:Eng3PumpToEng3Valve#Type:EngineDriven#Index:3
-Pump.21 = Name:Eng4Pump#Pressure:10#DestinationLine:Eng4PumpToEng4Valve#Type:EngineDriven#Index:4
-Pump.22 = Name:ReservePump1Fwd#Pressure:10#DestinationLine:ReservePump1FwdToReserveTank2ValveFwd#Type:EngineDriven#Index:1
-Pump.23 = Name:ReservePump1Aft#Pressure:10#DestinationLine:ReservePump1AftToReserveTank2ValveAft#Type:EngineDriven#Index:2
-Pump.24 = Name:ReservePump4Fwd#Pressure:10#DestinationLine:ReservePump4FwdToReserveTank3ValveFwd#Type:EngineDriven#Index:3
-Pump.25 = Name:ReservePump4Aft#Pressure:10#DestinationLine:ReservePump4AftToReserveTank3ValveAft#Type:EngineDriven#Index:4
-Trigger.1 = Condition:Autostart_Enabled#EffectTrue:OpenValve.LeftTipEngineValve,OpenValve.LeftInnerEngineValve,OpenValve.RightInnerEngineValve,OpenValve.RightTipEngineValve,OpenValve.LeftTipCrossFeedValve,OpenValve.LeftInnerCrossFeedValve,OpenValve.RightInnerCrossFeedValve,OpenValve.RightTipCrossFeedValve,StartPump.CenterWingTankPumpFwd,StartPump.CenterWingTankPumpAft,StartPump.MainTank1PumpFwd,StartPump.MainTank1PumpAft,StartPump.MainTank2PumpFwd,StartPump.MainTank2PumpAft,StartPump.MainTank3PumpFwd,StartPump.MainTank3PumpAft,StartPump.MainTank4PumpFwd,StartPump.MainTank4PumpAft,StartPump.MainTank2OvrdPumpFwd,StartPump.MainTank2OvrdPumpAft,StartPump.MainTank3OvrdPumpFwd,StartPump.MainTank3OvrdPumpAft,StartPump.StabTankPumpFwd,StartPump.StabTankPumpAft,StartPump.Eng1Pump,StartPump.Eng2Pump,StartPump.Eng3Pump,StartPump.Eng4Pump
-Trigger.2 = Condition:Autoshutdown_Enabled#EffectTrue:CloseValve.LeftTipEngineValve,CloseValve.LeftInnerEngineValve,CloseValve.RightInnerEngineValve,CloseValve.RightTipEngineValve,CloseValve.LeftTipCrossFeedValve,CloseValve.LeftInnerCrossFeedValve,CloseValve.RightInnerCrossFeedValve,CloseValve.RightTipCrossFeedValve,StopPump.CenterWingTankPumpFwd,StopPump.CenterWingTankPumpAft,StopPump.MainTank1PumpFwd,StopPump.MainTank1PumpAft,StopPump.MainTank2PumpFwd,StopPump.MainTank2PumpAft,StopPump.MainTank3PumpFwd,StopPump.MainTank3PumpAft,StopPump.MainTank4PumpFwd,StopPump.MainTank4PumpAft,StopPump.MainTank2OvrdPumpFwd,StopPump.MainTank2OvrdPumpAft,StopPump.MainTank3OvrdPumpFwd,StopPump.MainTank3OvrdPumpAft,StopPump.StabTankPumpFwd,StopPump.StabTankPumpAft
-Trigger.3 = Target:CenterWingTank#Threshold:11940#Condition:TankQuantityBelow#EffectTrue:OpenValve.StabTankValve1,OpenValve.StabTankValve2,OpenValve.CenterWingStabJuncValve1,OpenValve.CenterWingStabJuncValve2,OpenValve.StabTransferValve1,OpenValve.StabTransferValve2
-Trigger.4 = Target:StabTank#Threshold:1#Condition:TankQuantityBelow#EffectTrue:CloseValve.StabTankValve1,CloseValve.StabTankValve2,CloseValve.CenterWingStabJuncValve1,CloseValve.CenterWingStabJuncValve2,CloseValve.StabTransferValve1,CloseValve.StabTransferValve2
-Trigger.5 = Target:MainTank1#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank2ValveFwd,OpenValve.ReserveTank2ValveAft,StartPump.ReservePump1Fwd,StartPump.ReservePump1Aft
-Trigger.6 = Target:MainTank4#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank3ValveFwd,OpenValve.ReserveTank3ValveAft,StartPump.ReservePump4Fwd,StartPump.ReservePump4Aft
-Trigger.7 = Target:ReserveTank2#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump1Fwd,StopPump.ReservePump1Aft,CloseValve.ReserveTank2ValveFwd,CloseValve.ReserveTank2ValveAft
-Trigger.8 = Target:ReserveTank3#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump4Fwd,StopPump.ReservePump4Aft,CloseValve.ReserveTank3ValveFwd,CloseValve.ReserveTank3ValveAft
-
-[AIRPLANE_GEOMETRY]
-wing_area = 5960 ; Wing area S (SQUARE FEET)
-wing_span = 224.57 ; Wing span b (FEET)
-wing_root_chord = 55; Wing root chord croot (FEET)
-wing_camber = 1 ; (DEGREES)
-wing_thickness_ratio = 0.02 ; Local thickness is local_chord(x)*wing_thickness_ratio, x = lateral coord
-wing_dihedral = 7 ; Dihedral angle Lambda (DEGREES)
-wing_incidence = 2 ; Wing incidence (DEGREES)
-wing_twist = -5 ; Wing twist epsilon (DEGREES)
-oswald_efficiency_factor = 0.75 ; Wing Oswald efficiency factor e (non dimensional)
-wing_winglets_flag = 0 ; Has winglets true/false
-wing_sweep = 41.0 ; Wing sweep (DEGREES)
-wing_pos_apex_lon = -80 ; Longitudinal (z) position of wing apex w.r.t reference datum (FEET)
-wing_pos_apex_vert = -4 ; Vertical (y) position of wing apex w.r.t reference datum (FEET)
-htail_area = 800 ; Horizontal tail area (SQUARE FEET)
-htail_span = 70 ; Horizontal tail span (FEET)
-htail_pos_lon = -207 ; Longitudinal (z) position of horizontal tail w.r.t reference datum (FEET)
-htail_pos_vert = 11 ; Vertical (y) position of horizontal tail w.r.t reference datum (FEET)
-htail_incidence = 0 ; Horizontal tail incidence (DEGREES)
-htail_sweep = 45 ; Horizontal tail sweep angle (DEGREES)
-htail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*htail_thickness_ratio, x = lateral coord
-vtail_area = 800 ; Vertical tail area (SQUARE FEET)
-vtail_span = 35 ; Vertical tail span (FEET)
-vtail_sweep = 45 ; Vertical tail sweep angle (DEGREES)
-vtail_pos_lon = -192 ; Longitudinal (z) position of vertical tail w.r.t reference datum (FEET)
-vtail_pos_vert = 29 ; Vertical (y) position of vertical tail w.r.t reference datum (FEET)
-vtail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*vtail_thickness_ratio, x = lateral coord
-fuselage_length = 240 ; Nose to tail (FEET)
-fuselage_diameter = 25.56
-fuselage_center_pos = -88.0, 0, 5
-elevator_area = 700 ; Elevator area (SQUARE FEET)
-aileron_area = 210 ; Elevator area (SQUARE FEET)
-rudder_area = 550 ; Elevator area (SQUARE FEET)
-elevator_up_limit = 25 ; Elevator max deflection up angle (DEGREES)
-elevator_down_limit = 20 ; Elevator max deflection down angle (absolute value) (DEGREES)
-aileron_up_limit = 25 ; Aileron max deflection angle (DEGREES)
-aileron_down_limit = 15 ; Aileron max deflection down angle (absolute value) (DEGREES)
-rudder_limit = 35 ; Rudder max deflection angle (absolute value) (DEGREES)
-rudder_trim_limit = 10 ; Rudder trim max deflection angle (absolute value) (DEGREES)
-elevator_trim_limit = 15 ; Elevator trim max angle (absolute value) (DEGREES)
-spoiler_limit = 45 ; Spoiler max deflection angle (absolute value) (DEGREES)
-spoilerons_available = 1 ; Aircraft has spoilerons true/false
-aileron_to_spoileron_gain = 3 ; Aileron influence on spoileron angle (non-dimensional)
-min_ailerons_for_spoilerons = 10 ; Minimum aileron deflection (absolute value) in which spoilerons are active (DEGREES)
-min_flaps_for_spoilerons = 0 ; Minimum flaps deflection (absolute value) in which spoilerons are active (DEGREES)
-spoiler_extension_time = 2 ; Spoilers extension time (SECONDS)
-spoiler_handle_available = 1 ; Spoiler handles available true/false
-auto_spoiler_available = 1 ; Auto spoilers available true/false
-auto_spoiler_min_speed = 80 ; Auto spoilers minimum trigger speed
-auto_spoiler_auto_retracts = 1
-positive_g_limit_flaps_up = 4 ; Flap positive load limit when up. Same dimension as gravity vector FEET/SECONDS^2
-positive_g_limit_flaps_down = 3 ; Flap positive load limit when down. Same dimension as gravity vector FEET/SECONDS^2
-negative_g_limit_flaps_up = -3 ; Flap negative load limit when up. Same dimension as gravity vector FEET/SECONDS^2
-negative_g_limit_flaps_down = -2 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2
-load_safety_factor = 1.5 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2
-elevator_trim_neutral = 0 ; Elevator trim max angle (absolute value) (DEGREES), for indicators only (no influence on flight model)
-aileron_to_rudder_scale = 0 ; non-dimensional
-flap_to_aileron_scale = 0 ; non-dimensional
-fly_by_wire = 0 ; Fly-by-wire available true/false
-aileron_span_outboard = 0.7
-elevator_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25
-aileron_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25
-rudder_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25
-elevator_trim_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25
-controls_reactivity_scalar = 0.5
-
-[AERODYNAMICS]
-lift_coef_pitch_rate = -109.70206 ; The change in lift per change in pitch rate
-lift_coef_daoa = 0.0
-lift_coef_delta_elevator = -1.80648 ; The change in lift per change in elevator deflection
-lift_coef_horizontal_incidence = 0.0
-lift_coef_flaps = 1.11620
-lift_coef_spoilers = -0.20000
-drag_coef_zero_lift = 0.02300
-drag_coef_flaps = 0.11860
-drag_coef_gear = 0.01000
-drag_coef_spoilers = 0.10000
-side_force_slip_angle = -2.96232 ; (yaw angle) The change in side force per change in side slip angle
-side_force_roll_rate = 2.35547 ; (roll velocity) The change in side force per change in roll rate
-side_force_yaw_rate = 31.35555 ; (yaw velocity) The change in side force per change in yaw rate
-side_force_delta_rudder = -3.04370 ; The change in side force per change in rudder deflection
-pitch_moment_horizontal_incidence = 0.0
-pitch_moment_delta_elevator = -7.30733 ; The change in pitch moment per change in elevator deflection
-pitch_moment_delta_trim = -7.30733 ; The change in pitch moment per change in trim
-pitch_moment_pitch_damping = -877.85809 ; The change in pitch moment per change in pitch rate(PRIMARY PITCH STABILITY FACTOR). deg/s
-pitch_moment_aoa_0 = -0.06566 ; Pitch moment at zero angle - of - attack
-pitch_moment_daoa = 0.0
-pitch_moment_flaps = 0.15282 ; The pitch moment due to flaps
-pitch_moment_gear = 0.00395 ; The pitch moment due to gear
-pitch_moment_spoilers = -0.08202 ; The pitch moment due to spoilers
-pitch_moment_delta_elevator_propwash = -1.82683
-pitch_moment_pitch_propwash = 0.0
-roll_moment_slip_angle = 0.39912 ; The change in roll moment per sideslip angle(DIHEDRAL EFFECT)
-roll_moment_roll_damping = -1.50166
-roll_moment_yaw_rate = -3.51870
-roll_moment_spoilers = 0.0
-roll_moment_delta_aileron = -0.30568 ; (control)The change in roll moment per change in aileron deflection
-roll_moment_delta_rudder = 0.25999 ; (control)The change in roll moment per change rudder deflection
-roll_moment_delta_aileron_trim_scalar = -0.30568 ; Change in roll moment due to aileron trim
-yaw_moment_slip_angle = 1.30053 ; The change in yaw moment per change sideslip angle(WEATHER VANING EFFECT)
-yaw_moment_roll = 0.53921 ; (adverse yaw) The change in yaw moment per change in roll rate deg/s
-yaw_moment_yaw_damping = -38.36003 ; (damping)The change in yaw moment per change in yaw rate(PRIMARY YAW STABILITY FACTOR deg/s)
-yaw_moment_yaw_propwash = 0.0
-yaw_moment_delta_aileron = -0.01319 ; (adverse yaw) The change in yaw moment per change aileron deflection
-yaw_moment_delta_rudder = 0.95632 ; (control)The change in yaw moment per change in rudder deflection PRIMARY YAW POWER FACTOR
-yaw_moment_delta_rudder_propwash = 0.23908 ; (control)
-yaw_moment_delta_rudder_trim_scalar = 0.95632 ; Change in yaw moment due to rudder trim
-compute_aero_center = 0
-aero_center_lift = -14.00000
-lift_coef_aoa_table = -3.15:0, -0.8:-1.154, -0.4:-0.928, -0.2:-0.781, -0.1:-0.372, 0:0.250, 0.20:1.215, 0.23:1.293, 0.26:1.314, 0.29:1.117, 0.31:1.049, 0.4:0.941, 0.8:1.183, 3.15:0
-lift_coef_ground_effect_mach_table = 0.054:1.05
-lift_coef_mach_table = 0:1
-lift_coef_delta_elevator_mach_table = 0:0
-lift_coef_daoa_mach_table = 0:0
-lift_coef_pitch_rate_mach_table = 0:0
-lift_coef_horizontal_incidence_mach_table = 0:0
-drag_coef_zero_lift_mach_tab = 0:0.000, 0.5:0.000, 0.55:0.000, 0.6:0.000, 0.65:0.000, 0.7:0.000, 0.75:0.000, 0.8:0.000, 0.85:0.000, 0.9:0.000, 0.95:0.100, 1.0:1.000, 1.1:0.532, 1.5:0.046
-side_force_slip_angle_mach_table = 0:0
-side_force_delta_rudder_mach_table = 0:0
-side_force_yaw_rate_mach_table = 0:0
-side_force_roll_rate_mach_table = 0:0
-pitch_moment_aoa_table = -3.15:0, -0.8:-1.767, -0.4:-0.918, -0.2:-0.833, -0.1:-0.555, 0:0, 0.20:0.964, 0.23:1.003, 0.26:1.024, 0.29:1.116, 0.31:1.080, 0.4:1.046, 0.8:1.745, 3.15:0
-pitch_moment_delta_elevator_aoa_table = -180:-1, -40:0.154, -20:0.528, -14:0.912, -7:0.887, 0:1, 7:0.873, 14:0.955, 20:0.592, 40:0.147, 180:-1 ; AoA(alpha) is given in DEGREES
-pitch_moment_horizontal_incidence_aoa_table = 0:1
-pitch_moment_daoa_aoa_table = 0:1
-pitch_moment_pitch_alpha_table = 0:1
-pitch_moment_delta_elevator_mach_table = 0:0
-pitch_moment_daoa_mach_table = 0:0
-pitch_moment_pitch_rate_mach_table = 0:0
-pitch_moment_horizontal_incidence_mach_table = 0:0
-pitch_moment_aoa_0_mach_table = 0:0
-roll_moment_aoa_table = 0:0
-roll_moment_slip_angle_aoa_table = 0:1
-roll_moment_roll_rate_aoa_table = 0:1
-roll_moment_delta_aileron_aoa_table = 0:1
-roll_moment_slip_angle_mach_table = 0:0
-roll_moment_delta_rudder_mach_table = 0:0
-roll_moment_delta_aileron_mach_table = 0:0
-roll_moment_yaw_rate_mach_table = 0:0
-roll_moment_roll_rate_mach_table = 0:0
-yaw_moment_aoa_table = 0:0
-yaw_moment_slip_angle_aoa_table = 0:1
-yaw_moment_yaw_rate_aoa_table = 0:1
-yaw_moment_delta_rudder_aoa_table = 0:1
-yaw_moment_slip_angle_mach_table = 0:0
-yaw_moment_delta_rudder_mach_table = 0:0
-yaw_moment_delta_aileron_mach_table = 0:0
-yaw_moment_yaw_rate_mach_table = 0:0
-yaw_moment_roll_rate_mach_table = 0:0
-elevator_scaling_table = 0:1
-aileron_scaling_table = 0:1
-rudder_scaling_table = 0:1
-aileron_load_factor_effectiveness_table = 0:1
-lift_coef_at_drag_zero = 0.10000
-lift_coef_at_drag_zero_flaps = 0.10000
-
-[FLIGHT_TUNING]
-modern_fm_only = 1
-cruise_lift_scalar = 1
-parasite_drag_scalar = 1
-induced_drag_scalar = 1
-flap_induced_drag_scalar = 1
-elevator_effectiveness = 0.75
-elevator_maxangle_scalar = 0.66
-aileron_effectiveness = 1.0
-rudder_effectiveness = 0.66
-rudder_maxangle_scalar = 0.5
-pitch_stability = 0.1
-roll_stability = 0.1
-yaw_stability = 0.1
-pitch_gyro_stability = 1
-roll_gyro_stability = 1
-yaw_gyro_stability = 1
-elevator_trim_effectiveness = 1
-aileron_trim_effectiveness = 1
-rudder_trim_effectiveness = 1
-hi_alpha_on_roll = 0
-hi_alpha_on_yaw = 0
-p_factor_on_yaw = 0
-torque_on_roll = 0
-gyro_precession_on_roll = 0
-gyro_precession_on_yaw = 0
-engine_wash_on_roll = 0 ; Torque effect
-wingflex_scalar = 1.3
-wingflex_offset = 0.425
-stall_coef_at_min_weight = 0.72
-
-[REFERENCE SPEEDS]
-full_flaps_stall_speed = 130 ; Knots True (KTAS)
-flaps_up_stall_speed = 205 ; Knots True (KTAS)
-cruise_speed = 493 ; Knots True (KTAS)
-cruise_mach = 0.90
-crossover_speed = 310 ; Knots Indicated (KIAS)
-max_mach = 0.92
-max_indicated_speed = 450 ; Red line (KIAS)
-max_flaps_extended = 274.030126
-normal_operating_speed = 360
-airspeed_indicator_max = 562.5
-rotation_speed_min = 140 ; Min speed required (Kts)
-climb_speed = 250 ; Climb speed (Kts)
-cruise_alt = 36000 ; (ft)
-takeoff_speed = 155 ; Takeoff Speed (Kts)
-spawn_cruise_altitude = 5000 ; Spawn Cruise Altitude (ft)
-spawn_descent_altitude = 500 ; Spawn Descent Altitude (ft)
-best_angle_climb_speed = 267 ; Best angle climb speed (Kts)
-approach_speed = 195 ; Approach speed (Kts)
-best_glide = 267 ; Best Glide (Kts)
-max_gear_extended = 280 ; (Kts)
-fly_assistant_use_dynamic_speeds = 1 ; 0 to display only POH values, 1 to display an estimated value with current flaps / weight
-
-[INTERACTIVE POINTS]
-number_of_interactive_points = 17
-interactive_point.0 = 0.4, 150, -9.6, 1.3, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0
-interactive_point.1 = 0.4, -177.2, 7.4, 1.3, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0
-interactive_point.2 = 0.4, -32.2, -8.1, 11.2, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
-interactive_point.3 = 0.4, -32.2, 8.1, 11.2, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
-interactive_point.4 = 0.4, -57, -10.3, 1.3, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
-interactive_point.5 = 0.4, -56, 10.3, 1.3, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
-interactive_point.6 = 0.4, -94.6, -11, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
-interactive_point.7 = 0.4, -93.4, 11, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
-interactive_point.8 = 0.4, -132, -10, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
-interactive_point.9 = 0.4, -131, 10, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
-interactive_point.10 = 0.4, -15, -9.2, 1.3, 0, 0, 0, -85, 25, 4, 35, 1.5, 0, 0
-interactive_point.11 = 0.4, -15, 9.2, 1.3, 0, 0, 0, 85, 35, 1.5, 25, 4, 0, 0
-interactive_point.12 = 0.4, -26.3, 7, -5.4, 1, 0, 0, 90, 0, 0, 0, 0, 0, 0
-interactive_point.13 = 0.4, -145, 6.4, -6, 1, 0, 0, 95, 0, 0, 0, 0, 0, 0
-interactive_point.14 = 0.4, -87.98, -58.25, -12.6, 3, 0, 0, -45, 0, 0, 0, 0, 0, 0
-interactive_point.15 = 0, 1.9, 10.8, -10.5, 4, 0, 0, 45, 0, 0, 0, 0, 0, 0
-interactive_point.16 = 0, -96, 0, -8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0
-
-[STALL PROTECTION]
-stall_protection = 1 ; Stick Shaker
-off_limit = 11.5 ; Stick Shaker Min
-on_limit = 14.5 ; Stick Shaker Max
-
-;===================== FLAPS =====================
-
-[FLAPS.0]
-type = 1 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge
-system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none
-system_type_index = 120
-span-outboard = 0.55 ; Outboard span area (added area) (percentage, non dimensional)
-extending-time = 55 ; Flap extension time (SECONDS)
-damaging-speed = 285 ; Speed above which flap is damaged (Kts)
-blowout-speed = 350 ; Speed above which flap is blown out (Kts)
-maneuvering_flaps = 0
-lift_scalar = 1.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned)
-drag_scalar = 1.0 ; Scalar coefficient to ponderate global flap drag coef (non dimensioned)
-pitch_scalar = 1.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned)
-max_on_ground_position = 6 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found.
-flaps-sequence-increasing = 1
-flaps-position.0 = 0, -1, 0
-flaps-position.1 = 0, 285, 0.1
-flaps-position.2 = 5, 265, 0.2
-flaps-position.3 = 10, 245, 0.4
-flaps-position.4 = 20, 235, 0.6
-flaps-position.5 = 25, 210, 0.8
-flaps-position.6 = 30, 185, 1
-
-[FLAPS.1]
-type = 2 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge
-system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none
-system_type_index = 119
-span-outboard = 0.8 ; Outboard span area (added area) (percentage, non dimensional)
-extending-time = 8 ; Flap extension time (SECONDS)
-damaging-speed = 285 ; Speed above which flap is damaged (Kts)
-blowout-speed = 350 ; Speed above which flap is blown out (Kts)
-maneuvering_flaps = 0
-lift_scalar = 1.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned)
-drag_scalar = 1.0; Scalar coefficient to ponderate global flap drag coef (non dimensioned)
-pitch_scalar = 1.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned)
-max_on_ground_position = 1 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found.
-flaps-sequence-decreasing = 0
-flaps-position.0 = 0, -1, 0
-flaps-position.1 = 21, 285, 0.1
-flaps-position.2 = 21, 265, 0.2
-flaps-position.3 = 21, 245, 0.4
-flaps-position.4 = 21, 235, 0.6
-flaps-position.5 = 21, 215, 0.8
-flaps-position.6 = 21, 185, 1.0
-
+
+[VERSION]
+major = 1
+minor = 0
+
+[WEIGHT_AND_BALANCE]
+max_gross_weight = 992080.2 ; 987000 ; Empty weight, (LBS)
+empty_weight = 440924.5 ; 992080.2 ; 881849 ; 771617.9 ; 661386.8 ; 551155.7 ; 440924.5 ; 485300 ; Empty weight, (LBS)
+reference_datum_position = 106.64, 0, 0 ; 83.5, 0, 0 ; Position of reference datum relative to FS(0,0,0) (FEET), z, x, y
+empty_weight_CG_position = -117.68357, 0, 0 ; -123.64, 0, 0 ; -120.64, 0, 0 ; -98, 0, 0 ; Position of airplane empty weight CG relative to reference datum (FEET), z, x, y
+CG_forward_limit = 0.11 ; 0.14 ; Gravity center forward limit in %MAX (divided by 100: 0.14 = 14%MAC)
+CG_aft_limit = 0.33 ; 0.44 ; Gravity center aft limit in %MAX (divided by 100: 0.44 = 44%MAC)
+empty_weight_pitch_MOI = 76427903; Empty pitch moment of inertia, Jxx (SLUG SQ FEET)
+empty_weight_roll_MOI = 19300696 ; Empty roll moment of inertia, Jzz (SLUG SQ FEET)
+empty_weight_yaw_MOI = 89315555 ; Empty yaw moment of inertia, Jyy (SLUG SQ FEET)
+empty_weight_coupled_MOI = 10000 ; Empty transverse moment of inertia, Jyz (SLUG SQ FEET)
+activate_mach_limit_based_on_cg = 0 ; Activate mach limitation depending on CG position (true if > 0 /false othewise). Mostly for Concorde).
+activate_cg_limit_based_on_mach = 0 ; Activate cg limitation depending on mach value (true if > 0 /false othewise). Mostly for Concorde).
+max_number_of_stations =11
+station_load.0 =170, -26.5, -1.5, 13, TT:MENU.PAYLOAD.PILOT, 1 ; station_load.0 =170, -2.964119, -1.611132, 13.155828, TT:MENU.PAYLOAD.PILOT, 1
+station_load.1 =170, -26.5, 1.5, 13, TT:MENU.PAYLOAD.COPILOT, 2 ; station_load.1 =170, -2.923056, 1.508653, 12.5651, TT:MENU.PAYLOAD.COPILOT, 2
+station_load.2 =5000, -62.5, 0, 13, TT:MENU.PAYLOAD.BUSINESS_UPPER ; station_load.2 =5000, -35.400535, -0.000003, 11.415958, TT:MENU.PAYLOAD.BUSINESS_UPPER
+station_load.3 =1000, -20, 0, 4, TT:MENU.PAYLOAD.FIRST_CLASS ; station_load.3 =1000, 0.04913, -0.000002, -0.000001, TT:MENU.PAYLOAD.FIRST_CLASS
+station_load.4 =5400, -60, 0, 4, TT:MENU.PAYLOAD.BUSINESS_MAIN ; station_load.4 =5400, -44.383345, -0.000001, -0.000001, TT:MENU.PAYLOAD.BUSINESS_MAIN
+station_load.5 =6000, -125, 0, 4, TT:MENU.PAYLOAD.PREMIUM_ECONOMY ; station_load.5 =6000, -100.362841, 0.000004, 2.013768, TT:MENU.PAYLOAD.PREMIUM_ECONOMY
+station_load.6 =5000, -100, 0, 4, TT:MENU.PAYLOAD.FORWARD_ECONOMY ; station_load.6 =5000, -81.274814, -0, -0, TT:MENU.PAYLOAD.FORWARD_ECONOMY
+station_load.7 =36000, -180, 0, 4, TT:MENU.PAYLOAD.REAR_ECONOMY ; station_load.7 =36000, -148.319361, 0.000004, 0.000002, TT:MENU.PAYLOAD.REAR_ECONOMY
+station_load.8 =8000, -55, 0, -3, TT:MENU.PAYLOAD.FORWARD_BAGGAGE ; station_load.8 =8000, -28.56284, -0.000005, -3.566868, TT:MENU.PAYLOAD.FORWARD_BAGGAGE
+station_load.9 =8000, -160, 0, -3, TT:MENU.PAYLOAD.REAR_BAGGAGE ; station_load.9 =8000, -138.077047, -0.000003, -3.834466, TT:MENU.PAYLOAD.REAR_BAGGAGE
+station_load.10 =1800, -106.64, 0, 4, TT:MENU.PAYLOAD.CREW ; station_load.10 =1800, -81.274814, -0, -0, TT:MENU.PAYLOAD.CREW
+
+[CONTACT_POINTS]
+static_pitch = 0.2 ; degrees, pitch when at rest on the ground (+=Up, -=Dn)
+static_cg_height = 15.13 ; feet, altitude of CG when at rest on the ground
+gear_system_type = 1 ; gear system type (betweeen 0 and 4) 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none, 5 = undefined
+tailwheel_lock = 0 ; Is tailwheel lock available TRUE/FALSE
+max_number_of_points = 100 ; 11 ; Number of contact points
+gear_locked_on_ground = 1 ; Defines whether or not the landing gear handle is locked to down when the plane is on the ground.
+gear_locked_above_speed = 270 ; Defines the speed at which the landing gear handle becomes locked in the up position. (-1 = Disabled)
+max_speed_full_steering = 8 ; Defines the speed under which the full angle of steering is available (in feet/second).
+max_speed_decreasing_steering = 50 ; Defines the speed above which the angle of steering stops decreasing (in feet/second).
+min_available_steering_angle_pct = 0.1 ; 0.2 ; Defines the percentage of steering which will always be available even above max_speed_decreasing_steering (in percent over 100).
+max_speed_full_steering_castering = 20 ; Defines the speed under which the full angle of steering is available for free castering wheels (in feet/second).
+max_speed_decreasing_steering_castering = 40 ; Defines the speed above which the angle of steering stops decreasing for free castering wheels (in feet/second).
+min_castering_angle = 0.05236 ; Defines the minimum angle a free castering wheel can take (in radians).
+max_castering_angle = 3.14159265358979 ; Defines the maximum angle a free castering wheel can take (in radians).
+
+;point.0 = 1, -9, -2.0, -16.5, 720, 0, 2, 70, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 ; point.0 = 1, -5, 0, -15.7, 720, 0, 2, 60, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2
+;point.1 = 1, -9, 2.0, -16.5, 720, 0, 2, 70, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 ; new nose wheel #2
+;point.2 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L ; point.1 = 1, -102.5, -17, -16.9, 1500, 1, 2, 6.5, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2
+;point.3 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L
+;point.4 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L
+;point.5 = 1, -102.5, -17, -16.9, 1500, 1, 2, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; main gear L
+;point.3 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R ; point.2 = 1, -102.5, 17, -16.9, 1500, 2, 2, 6.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2
+;point.7 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R
+;point.8 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R
+;point.9 = 1, -102.5, 17, -16.9, 1500, 2, 2, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; main gear R
+;point.4 = 1, -106.7, -7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L
+;point.5 = 1, -106.7, -4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L #2
+;point.6 = 1, -111.6, -7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L #3
+;point.7 = 1, -111.6, -4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear L #4
+;point.8 = 1, -106.7, 7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R
+;point.9 = 1, -106.7, 4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R #2
+;point.10 = 1, -111.6, 7.9, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R #3
+;point.11 = 1, -111.6, 4.3, -16.9, 1500, 2, 2, 13.5, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; new main body gear R #4
+;point.8 = 1, -113, 0, -16.9, 1500, 2, 2, 0, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2
+;point.12 = 2, -161.5, -114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 1
+;point.13 = 2, -161.5, 114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1
+;point.14 = 2, 12, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 1
+;point.15 = 2, -180, 0, -0.8, 720, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
+;point.16 = 2, -220, 0, 48, 500, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 1
+;point.17 = 2, -30, 0, -7.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
+;point.18 = 2, -150, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
+
+;nose wheel
+point.0 = 1, -32.64, 0, -15.7, 720, 0, 4.16, 60, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2 ; point.0 = 1, -5, 0, -15.7, 720, 0, 2, 60, 0.9, 2, 0.5, 9, 8, 0, 220, 250, 2
+;wing gear
+point.1 = 1, -121.64,-17, -16.2, 1500, 1, 4.33, 0, 1.36, 3, 0.5, 11, 9, 2, 220, 250, 2 ; left
+point.2 = 1, -121.64, 17, -16.2, 1500, 1, 4.33, 0, 1.36, 3, 0.5, 11, 9, 3, 220, 250, 2 ; right
+;body gear
+point.3 = 1, -132.14, 6.2, -16.2, 1500, 2, 4.33, 13.5, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 ; left
+point.4 = 1, -132.14,-6.2, -16.2, 1500, 2, 4.33, 13.5, 1.36, 3.5, 0.8, 11, 9, 3, 220, 250, 2 ; right
+;scrape points
+point.5 = 2, -184.64, -114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 1
+point.6 = 2, -184.64, 114.3, 2, 100, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 1
+point.7 = 2, -11.14, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 1
+point.8 = 2, -203.14, 0, -0.8, 720, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
+point.9 = 2, -243.14, 0, 48, 500, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 1
+point.10 = 2, -53.14, 0, -7.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
+point.11 = 2, -173.14, 0, -7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 1
+
+[FUEL]
+;LeftMain = -119.14, -28, -4, 12546, 0 ; -96, -28, -4, 12546, 0 ; For each tank: Tank position (z longitudinal, x lateral, y vertical) (FEET), total fuel capacity (GALLONS), unusable fuel capacity (GALLONS)
+;RightMain = -150, 28, -4, 12546, 0 ; remove 23.14 from 1st coordinate for all fuel tanks to retrieve default
+;Center1 = -106.64, 0, -7, 17164, 0
+;Center2 = -216.64, 0, 6, 3300, 0
+;Center3 = -26.74, 0, 0, 0, 0
+;LeftAux = -135.14, -48, -3, 4482, 0
+;LeftTip = -153.14, -73, 0, 1322, 0
+;RightAux = -135.14, 48, -3, 4482, 0
+;RightTip = -153.14, 73, 0, 1322, 0
+;External1 = -26.74, 0, 0, 0, 0
+;External2 = -26.74, 0, 0, 0, 0
+fuel_type = 2 ; 1 = OCTANE 100, 2 = JET_A, 3 = OCTANE 80, 4 = AUTO GAS, 5 = JET B
+;number_of_tank_selectors = 1 ; Max 4
+;electric_pump = 1
+;engine_driven_pump = 1
+;manual_transfer_pump = 0
+;manual_pump = 0
+;anemometer_pump = 0
+;fuel_dump_rate = 0.0167
+;default_fuel_tank_selector.1 = 1 ; Default fuel selector used in case of autostart for engine 1, default is ALL.
+;default_fuel_tank_selector.2 = 1 ; Default fuel selector used in case of autostart for engine 2, default is ALL.
+;default_fuel_tank_selector.3 = 1 ; Default fuel selector used in case of autostart for engine 3, default is ALL.
+;default_fuel_tank_selector.4 = 1 ; Default fuel selector used in case of autostart for engine 4, default is ALL.
+
+[FUEL_SYSTEM]
+APU.1 = Name:APU#FuelBurnRate:10
+Engine.1 = Name:LeftTipEngine#Index:1
+Engine.2 = Name:LeftInnerEngine#Index:2
+Engine.3 = Name:RightInnerEngine#Index:3
+Engine.4 = Name:RightTipEngine#Index:4
+Tank.1 = Name:CenterWingTank#Title:TT:MENU.FUEL.CENTER_WING_TANK#Capacity:17000#UnusableCapacity:0#Position:-106.64,0,-7#Priority:1#OutputOnlyLines:CenterTankToCenterPumpFwd,CenterTankToCenterPumpAft#InputOnlyLines:StabTransferValve1ToCenterWingTank,StabTransferValve2ToCenterWingTank
+Tank.2 = Name:MainTank1#Title:TT:MENU.FUEL.MAIN_TANK_1#Capacity:5320#UnusableCapacity:0#Position:-135.14,-48,-3#Priority:3#OutputOnlyLines:MainTank1ToMainTank1PumpFwd,MainTank1ToMainTank1PumpAft#InputOnlyLines:ReserveTank2JunctionToMainTank2
+Tank.3 = Name:MainTank2#Title:TT:MENU.FUEL.MAIN_TANK_2#Capacity:14430#UnusableCapacity:0#Position:-119.14,-28,-4#Priority:3#OutputOnlyLines:MainTank2ToMainTank2PumpFwd,MainTank2ToMainTank2PumpAft,MainTank2ToMainTank2OvrdPumpFwd,MainTank2ToMainTank2OvrdPumpAft
+Tank.4 = Name:MainTank3#Title:TT:MENU.FUEL.MAIN_TANK_3#Capacity:14430#UnusableCapacity:0#Position:-119.14,28,-4#Priority:3#OutputOnlyLines:MainTank3ToMainTank3PumpFwd,MainTank3ToMainTank3PumpAft,MainTank3ToMainTank3OvrdPumpFwd,MainTank3ToMainTank3OvrdPumpAft#InputOnlyLines:ReserveTank3ValveToMainTank3
+Tank.5 = Name:MainTank4#Title:TT:MENU.FUEL.MAIN_TANK_4#Capacity:5320#UnusableCapacity:0#Position:-135.14,48,-3#Priority:3#OutputOnlyLines:MainTank4ToMainTank4PumpFwd,MainTank4ToMainTank4PumpAft#InputOnlyLines:ReserveTank3JunctionToMainTank3
+Tank.6 = Name:ReserveTank2#Title:TT:MENU.FUEL.RESERVE_TANK_2#Capacity:1534#UnusableCapacity:0#Position:-153.14,-73,0#Priority:2#OutputOnlyLines:ReserveTank2ToReservePump1Fwd,ReserveTank2ToReservePump1Aft
+Tank.7 = Name:ReserveTank3#Title:TT:MENU.FUEL.RESERVE_TANK_3#Capacity:1534#UnusableCapacity:0#Position:-153.14,73,0#Priority:2#OutputOnlyLines:ReserveTank3ToReservePumpFwd,ReserveTank3ToReservePumpAft
+Tank.8 = Name:StabTank#Title:TT:MENU.FUEL.STAB_TANK#Capacity:3300#UnusableCapacity:0#Position:-216.64,0,6#Priority:0#OutputOnlyLines:StabTankToStabTankPumpFwd,StabTankToStabTankPumpAft
+Line.1 = Name:CenterTankToCenterPumpFwd#Source:CenterWingTank#Destination:CenterWingTankPumpFwd
+Line.2 = Name:CenterTankToCenterPumpAft#Source:CenterWingTank#Destination:CenterWingTankPumpAft
+Line.3 = Name:CenterPumpFwdToCenterLeftJunc#Source:CenterWingTankPumpFwd#Destination:CenterLeftJunction
+Line.4 = Name:CenterPumpAftToCenterRightJunc#Source:CenterWingTankPumpAft#Destination:CenterRightJunction
+Line.5 = Name:MainTank1ToMainTank1PumpFwd#Source:MainTank1#Destination:MainTank1PumpFwd
+Line.6 = Name:MainTank1ToMainTank1PumpAft#Source:MainTank1#Destination:MainTank1PumpAft
+Line.7 = Name:MainTank1PumpFwdToMainTank1Junc#Source:MainTank1PumpFwd#Destination:MainTank1Junction
+Line.8 = Name:MainTank1PumpAftToMainTank1Junc#Source:MainTank1PumpAft#Destination:MainTank1Junction
+Line.9 = Name:MainTank1JuncToEng1Junc#Source:MainTank1Junction#Destination:Eng1Junction
+Line.10 = Name:Eng1JuncToEng1Pump#Source:Eng1Junction#Destination:Eng1Pump
+Line.11 = Name:LeftTipEngineValveToLeftTipEngine#Source:LeftTipEngineValve#Destination:LeftTipEngine
+Line.12 = Name:Eng1JuncToEng1XFeedValve#Source:Eng1Junction#Destination:LeftTipCrossFeedValve
+Line.13 = Name:Eng1XFeedValveToLeftSideJunc#Source:LeftTipCrossFeedValve#Destination:LeftSideJunction
+Line.14 = Name:MainTank2ToMainTank2PumpFwd#Source:MainTank2#Destination:MainTank2PumpFwd
+Line.15 = Name:MainTank2ToMainTank2PumpAft#Source:MainTank2#Destination:MainTank2PumpAft
+Line.16 = Name:MainTank2PumpFwdToMainTank2Junc#Source:MainTank2PumpFwd#Destination:MainTank2Junction
+Line.17 = Name:MainTank2PumpAftToMainTank2ToAPUJunc#Source:MainTank2PumpAft#Destination:MainTank2ToAPUJunction
+Line.18 = Name:MainTank2ToAPUJuncToMainTank2Junc#Source:MainTank2ToAPUJunction#Destination:MainTank2Junction
+Line.19 = Name:MainTank2ToAPUJuncToMainTank2AftToAPUJunc#Source:MainTank2ToAPUJunction#Destination:MainTank2AftToAPUJunction
+Line.20 = Name:MainTank2ToAPUDCPump#Source:MainTank2#Destination:APUDCPump
+Line.21 = Name:APUDCPumpToMainTank2AftToAPUJunction#Source:APUDCPump#Destination:MainTank2AftToAPUJunction
+Line.22 = Name:MainTank2AftToAPUValve#Source:MainTank2AftToAPUJunction#Destination:APUValve
+Line.23 = Name:APUValveToAPU#Source:APUValve#Destination:APU
+Line.24 = Name:MainTank2JuncToEng2Junc#Source:MainTank2Junction#Destination:Eng2Junction
+Line.25 = Name:Eng2JuncToEng2Pump#Source:Eng2Junction#Destination:Eng2Pump
+Line.26 = Name:LeftInnerEngineValveToLeftInnerEngine#Source:LeftInnerEngineValve#Destination:LeftInnerEngine
+Line.27 = Name:Eng2JuncToEng2XFeedValve#Source:Eng2Junction#Destination:LeftInnerCrossFeedValve
+Line.28 = Name:Eng2XFeedValveToLeftSideJunc#Source:LeftInnerCrossFeedValve#Destination:LeftSideJunction
+Line.29 = Name:LeftSideJuncToCenterLeftJunc#Source:LeftSideJunction#Destination:CenterLeftJunction
+Line.30 = Name:MainTank3ToMainTank3PumpFwd#Source:MainTank3#Destination:MainTank3PumpFwd
+Line.31 = Name:MainTank3ToMainTank3PumpAft#Source:MainTank3#Destination:MainTank3PumpAft
+Line.32 = Name:MainTank3PumpFwdToMainTank3Junc#Source:MainTank3PumpFwd#Destination:MainTank3Junction
+Line.33 = Name:MainTank3PumpAftToMainTank3Junc#Source:MainTank3PumpAft#Destination:MainTank3Junction
+Line.34 = Name:MainTank3JuncToEng3Junc#Source:MainTank3Junction#Destination:Eng3Junction
+Line.35 = Name:Eng3JuncToEng3Pump#Source:Eng3Junction#Destination:Eng3Pump
+Line.36 = Name:RightInnerEngineValveToRightInnerEngine#Source:RightInnerEngineValve#Destination:RightInnerEngine
+Line.37 = Name:Eng3JuncToEng3XFeedValve#Source:Eng3Junction#Destination:RightInnerCrossFeedValve
+Line.38 = Name:Eng3XFeedValveToRightSideJunc#Source:RightInnerCrossFeedValve#Destination:RightSideJunction
+Line.39 = Name:RightSideJuncToCenterRightJunc#Source:RightSideJunction#Destination:CenterRightJunction
+Line.40 = Name:CenterLeftJuncToCenterRightJunc#Source:CenterLeftJunction#Destination:CenterRightJunction
+Line.41 = Name:MainTank4ToMainTank4PumpFwd#Source:MainTank4#Destination:MainTank4PumpFwd
+Line.42 = Name:MainTank4ToMainTank4PumpAft#Source:MainTank4#Destination:MainTank4PumpAft
+Line.43 = Name:MainTank4PumpFwdToMainTank4Junc#Source:MainTank4PumpFwd#Destination:MainTank4Junction
+Line.44 = Name:MainTank4PumpAftToMainTank4Junc#Source:MainTank4PumpAft#Destination:MainTank4Junction
+Line.45 = Name:MainTank4JuncToEng4Junc#Source:MainTank4Junction#Destination:Eng4Junction
+Line.46 = Name:Eng4JuncToEng4Pump#Source:Eng4Junction#Destination:Eng4Pump
+Line.47 = Name:RightTipEngineValveToRightTipEngine#Source:RightTipEngineValve#Destination:RightTipEngine
+Line.48 = Name:Eng4JuncToEng4XFeedValve#Source:Eng4Junction#Destination:RightTipCrossFeedValve
+Line.49 = Name:Eng4XFeedValveToRightSideJunc#Source:RightTipCrossFeedValve#Destination:RightSideJunction
+Line.50 = Name:MainTank2ToMainTank2OvrdPumpFwd#Source:MainTank2#Destination:MainTank2OvrdPumpFwd
+Line.51 = Name:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#Source:MainTank2OvrdPumpFwd#Destination:MainTank2OverrideJunction
+Line.52 = Name:MainTank2ToMainTank2OvrdPumpAft#Source:MainTank2#Destination:MainTank2OvrdPumpAft
+Line.53 = Name:MainTank2OvrdPumpAftToMainTank2OvrdJunc#Source:MainTank2OvrdPumpAft#Destination:MainTank2OverrideJunction
+Line.54 = Name:MainTank2OvrdJuncToLeftSideJunc#Source:MainTank2OverrideJunction#Destination:LeftSideJunction
+Line.55 = Name:MainTank3ToMainTank3OvrdPumpFwd#Source:MainTank3#Destination:MainTank3OvrdPumpFwd
+Line.56 = Name:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#Source:MainTank3OvrdPumpFwd#Destination:MainTank3OverrideJunction
+Line.57 = Name:MainTank3ToMainTank3OvrdPumpAft#Source:MainTank3#Destination:MainTank3OvrdPumpAft
+Line.58 = Name:MainTank3OvrdPumpAftToMainTank3OvrdJunc#Source:MainTank3OvrdPumpAft#Destination:MainTank3OverrideJunction
+Line.59 = Name:MainTank3OvrdJuncToRightSideJunc#Source:MainTank3OverrideJunction#Destination:RightSideJunction
+Line.60 = Name:StabTankToStabTankPumpFwd#Source:StabTank#Destination:StabTankPumpFwd
+Line.61 = Name:StabTankPumpFwdToStabTankJuncAft#Source:StabTankPumpFwd#Destination:StabTankJunctionAft
+Line.62 = Name:StabTankToStabTankPumpAft#Source:StabTank#Destination:StabTankPumpAft
+Line.63 = Name:StabTankPumpAftToStabTankJuncAft#Source:StabTankPumpAft#Destination:StabTankJunctionAft
+Line.64 = Name:StabTankJuncAftToStabTankJuncMid#Source:StabTankJunctionAft#Destination:StabTankJuncMid
+Line.65 = Name:StabTankJuncMidToStabTankValve1#Source:StabTankJuncMid#Destination:StabTankValve1
+Line.66 = Name:StabTankJuncMidToStabTankValve2#Source:StabTankJuncMid#Destination:StabTankValve2
+Line.67 = Name:StabTankValve1ToStabTankJuncFwd#Source:StabTankValve1#Destination:StabTankJuncFwd
+Line.68 = Name:StabTankValve2ToStabTankJuncFwd#Source:StabTankValve2#Destination:StabTankJuncFwd
+Line.69 = Name:StabTankJuncFwdToCenterWingStabJunc#Source:StabTankJuncFwd#Destination:CenterWingStabJunc
+Line.70 = Name:CenterWingStabJuncToCenterWingStabJuncValve1#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve1
+Line.71 = Name:CenterWingStabJuncToCenterWingStabJuncValve2#Source:CenterWingStabJunc#Destination:CenterWingStabJuncValve2
+Line.72 = Name:CenterWingStabJuncValve1ToMainJetissonJunc#Source:CenterWingStabJuncValve1#Destination:MainJettisonJunction
+Line.73 = Name:CenterWingStabJuncValve2ToMainJetissonJunc#Source:CenterWingStabJuncValve2#Destination:MainJettisonJunction
+Line.74 = Name:MainJettisonJuncToStabTransferValve1#Source:MainJettisonJunction#Destination:StabTransferValve1
+Line.75 = Name:MainJettisonJuncToStabTransferValve2#Source:MainJettisonJunction#Destination:StabTransferValve2
+Line.76 = Name:StabTransferValve1ToCenterWingTank#Source:StabTransferValve1#Destination:CenterWingTank
+Line.77 = Name:StabTransferValve2ToCenterWingTank#Source:StabTransferValve2#Destination:CenterWingTank
+Line.78 = Name:ReserveTank2ToReservePump1Fwd#Source:ReserveTank2#Destination:ReservePump1Fwd
+Line.79 = Name:ReserveTank2ValveFwdToReserveTank2Junction#Source:ReserveTank2ValveFwd#Destination:ReserveTank2Junction
+Line.80 = Name:ReserveTank2ToReservePump1Aft#Source:ReserveTank2#Destination:ReservePump1Aft
+Line.81 = Name:ReserveTank2ValveAftToReserveTank2Junction#Source:ReserveTank2ValveAft#Destination:ReserveTank2Junction
+Line.82 = Name:ReserveTank2JunctionToMainTank2#Source:ReserveTank2Junction#Destination:MainTank1
+Line.83 = Name:ReserveTank3ToReservePump4Fwd#Source:ReserveTank3#Destination:ReservePump4Fwd
+Line.84 = Name:ReserveTank3ValveFwdToReserveTank3Junction#Source:ReserveTank3ValveFwd#Destination:ReserveTank3Junction
+Line.85 = Name:ReserveTank3ToReservePump4Aft#Source:ReserveTank3#Destination:ReservePump4Aft
+Line.86 = Name:ReserveTank3ValveAftToReserveTank3Junction#Source:ReserveTank3ValveAft#Destination:ReserveTank3Junction
+Line.87 = Name:ReserveTank3JunctionToMainTank3#Source:ReserveTank3Junction#Destination:MainTank4
+Line.88 = Name:MainTank2OverrideJunctionToMainTank2JetissonValve#Source:MainTank2OverrideJunction#Destination:MainTank2JetissonValve
+Line.89 = Name:MainTank2JetissonValveToMainJettisonJunc#Source:MainTank2JetissonValve#Destination:MainJettisonJunction
+Line.90 = Name:MainTank2OvrdJuncToCenterLeftAftJetissonValve#Source:MainTank2OverrideJunction#Destination:CenterLeftAftJetissonValve
+Line.91 = Name:CenterLeftAftJetissonValveToMainJettisonJunc#Source:CenterLeftAftJetissonValve#Destination:MainJettisonJunction
+Line.92 = Name:MainTank3OverrideJunctionToMainTank3JetissonValve#Source:MainTank3OverrideJunction#Destination:MainTank3JetissonValve
+Line.93 = Name:MainTank3JetissonValveToMainJettisonJunc#Source:MainTank3JetissonValve#Destination:MainJettisonJunction
+Line.94 = Name:MainTank3OvrdJuncToCenterRightAftJetissonValve#Source:MainTank3OverrideJunction#Destination:CenterRightAftJetissonValve
+Line.95 = Name:CenterRightAftJetissonValveToMainJettisonJunc#Source:CenterRightAftJetissonValve#Destination:MainJettisonJunction
+Line.96 = Name:MainJettisonJuncToJetissonNozzleValve1#Source:MainJettisonJunction#Destination:JetissonNozzleValve1
+Line.97 = Name:MainJettisonJuncToJetissonNozzleValve2#Source:MainJettisonJunction#Destination:JetissonNozzleValve2
+Line.98 = Name:MainTank1ToLeftTanksTransferValve#Source:MainTank1#Destination:LeftTanksTransferValve#GravityBasedFuelFlow:100
+Line.99 = Name:LeftTanksTransferValveToMainTank2#Source:LeftTanksTransferValve#Destination:MainTank2#GravityBasedFuelFlow:100
+Line.100 = Name:MainTank4ToRightTanksTransferValve#Source:MainTank4#Destination:RightTanksTransferValve#GravityBasedFuelFlow:100
+Line.101 = Name:RightTanksTransferValveToMainTank3#Source:RightTanksTransferValve#Destination:MainTank3#GravityBasedFuelFlow:100
+Line.102 = Name:Eng1PumpToEng1Valve#Source:Eng1Pump#Destination:LeftTipEngineValve
+Line.103 = Name:Eng2PumpToEng2Valve#Source:Eng2Pump#Destination:LeftInnerEngineValve
+Line.104 = Name:Eng3PumpToEng3Valve#Source:Eng3Pump#Destination:RightInnerEngineValve
+Line.105 = Name:Eng4PumpToEng4Valve#Source:Eng4Pump#Destination:RightTipEngineValve
+Line.106 = Name:ReservePump1FwdToReserveTank2ValveFwd#Source:ReservePump1Fwd#Destination:ReserveTank2ValveFwd
+Line.107 = Name:ReservePump1AftToReserveTank2ValveAft#Source:ReservePump1Aft#Destination:ReserveTank2ValveAft
+Line.108 = Name:ReservePump4FwdToReserveTank3ValveFwd#Source:ReservePump4Fwd#Destination:ReserveTank3ValveFwd
+Line.109 = Name:ReservePump4AftToReserveTank3ValveAft#Source:ReservePump4Aft#Destination:ReserveTank3ValveAft
+Junction.1 = Name:MainTank1Junction#InputOnlyLines:MainTank1PumpFwdToMainTank1Junc,MainTank1PumpAftToMainTank1Junc#OutputOnlyLines:MainTank1JuncToEng1Junc
+Junction.2 = Name:Eng1Junction#InputOnlyLines:MainTank1JuncToEng1Junc#OutputOnlyLines:Eng1JuncToEng1Pump
+Junction.3 = Name:MainTank2Junction#InputOnlyLines:MainTank2PumpFwdToMainTank2Junc,MainTank2PumpAftToMainTank2Junc#OutputOnlyLines:MainTank2JuncToEng2Junc
+Junction.4 = Name:Eng2Junction#InputOnlyLines:MainTank2JuncToEng2Junc#OutputOnlyLines:Eng2JuncToEng2Pump
+Junction.5 = Name:MainTank3Junction#InputOnlyLines:MainTank3PumpFwdToMainTank3Junc,MainTank3PumpAftToMainTank3Junc#OutputOnlyLines:MainTank3JuncToEng3Junc
+Junction.6 = Name:Eng3Junction#InputOnlyLines:MainTank3JuncToEng3Junc#OutputOnlyLines:Eng3JuncToEng3Pump
+Junction.7 = Name:MainTank4Junction#InputOnlyLines:MainTank4PumpFwdToMainTank4Junc,MainTank4PumpAftToMainTank4Junc#OutputOnlyLines:MainTank4JuncToEng4Junc
+Junction.8 = Name:Eng4Junction#InputOnlyLines:MainTank4JuncToEng4Junc#OutputOnlyLines:Eng4JuncToEng4Pump
+Junction.9 = Name:MainTank2OverrideJunction#InputOnlyLines:MainTank2OvrdPumpFwdToMainTank2OvrdJunc,MainTank2OvrdPumpAftToMainTank2OvrdJunc#OutputOnlyLines:MainTank2OvrdJuncToCenterLeftAftJetissonValve
+Junction.10 = Name:MainTank3OverrideJunction#InputOnlyLines:MainTank3OvrdPumpFwdToMainTank3OvrdJunc,MainTank3OvrdPumpAftToMainTank3OvrdJunc#OutputOnlyLines:MainTank3OvrdJuncToCenterRightAftJetissonValve
+Junction.11 = Name:LeftSideJunction#InputOnlyLines:MainTank2OvrdJuncToLeftSideJunc
+Junction.12 = Name:RightSideJunction#InputOnlyLines:MainTank3OvrdJuncToRightSideJunc
+Junction.13 = Name:CenterLeftJunction#InputOnlyLines:CenterPumpFwdToCenterLeftJunc
+Junction.14 = Name:CenterRightJunction#InputOnlyLines:CenterPumpAftToCenterRightJunc
+Junction.15 = Name:MainTank2ToAPUJunction#OutputOnlyLines:MainTank2ToAPUJuncToMainTank2Junc,MainTank2ToAPUJuncToMainTank2AftToAPUJunc
+Junction.16 = Name:MainTank2AftToAPUJunction#InputOnlyLines:MainTank2ToAPUJuncToMainTank2AftToAPUJunc,APUDCPumpToMainTank2AftToAPUJunction
+Junction.17 = Name:ReserveTank2Junction#OutputOnlyLines:ReserveTank2JunctionToMainTank2
+Junction.18 = Name:ReserveTank3Junction#OutputOnlyLines:ReserveTank3JunctionToMainTank3
+Junction.19 = Name:StabTankJunctionAft#IntputOnlyLines:StabTankPumpAftToStabTankJuncFwd,StabTankPumpAftToStabTankJuncAft
+Junction.20 = Name:StabTankJuncMid
+Junction.21 = Name:StabTankJuncFwd
+Junction.22 = Name:CenterWingStabJunc
+Junction.23 = Name:MainJettisonJunction
+Valve.1 = Name:LeftTipCrossFeedValve#Circuit:1
+Valve.2 = Name:LeftInnerCrossFeedValve#Circuit:2
+Valve.3 = Name:RightInnerCrossFeedValve#Circuit:3
+Valve.4 = Name:RightTipCrossFeedValve#Circuit:4
+Valve.5 = Name:LeftTipEngineValve#Circuit:5
+Valve.6 = Name:LeftInnerEngineValve#Circuit:6
+Valve.7 = Name:RightInnerEngineValve#Circuit:7
+Valve.8 = Name:RightTipEngineValve#Circuit:8
+Valve.9 = Name:APUValve#Circuit:9
+Valve.10 = Name:ReserveTank2ValveFwd#Circuit:10
+Valve.11 = Name:ReserveTank2ValveAft#Circuit:11
+Valve.12 = Name:ReserveTank3ValveFwd#Circuit:12
+Valve.13 = Name:ReserveTank3ValveAft#Circuit:13
+Valve.14 = Name:StabTankValve1#Circuit:14
+Valve.15 = Name:StabTankValve2#Circuit:15
+Valve.16 = Name:CenterWingStabJuncValve1#Circuit:16
+Valve.17 = Name:CenterWingStabJuncValve2#Circuit:17
+Valve.18 = Name:StabTransferValve1#Circuit:18
+Valve.19 = Name:StabTransferValve2#Circuit:19
+Valve.20 = Name:MainTank2JetissonValve#Circuit:20
+Valve.21 = Name:CenterLeftAftJetissonValve#Circuit:21
+Valve.22 = Name:MainTank3JetissonValve#Circuit:22
+Valve.23 = Name:CenterRightAftJetissonValve#Circuit:23
+Valve.24 = Name:JetissonNozzleValve1#Circuit:24
+Valve.25 = Name:JetissonNozzleValve2#Circuit:25
+Valve.26 = Name:LeftTanksTransferValve#Circuit:26
+Valve.27 = Name:RightTanksTransferValve#Circuit:27
+Pump.1 = Name:CenterWingTankPumpFwd#Pressure:45#DestinationLine:CenterPumpFwdToCenterLeftJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:13
+Pump.2 = Name:CenterWingTankPumpAft#Pressure:45#DestinationLine:CenterPumpAftToCenterRightJunc#TankFuelRequired:CenterWingTank#Type:Electric#Index:14
+Pump.3 = Name:MainTank1PumpFwd#Pressure:20#DestinationLine:MainTank1PumpFwdToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:1
+Pump.4 = Name:MainTank1PumpAft#Pressure:20#DestinationLine:MainTank1PumpAftToMainTank1Junc#TankFuelRequired:MainTank1#Type:Electric#Index:2
+Pump.5 = Name:MainTank2PumpFwd#Pressure:20#DestinationLine:MainTank2PumpFwdToMainTank2Junc#TankFuelRequired:MainTank2#Type:Electric#Index:3
+Pump.6 = Name:MainTank2PumpAft#Pressure:20#DestinationLine:MainTank2PumpAftToMainTank2ToAPUJunc#TankFuelRequired:MainTank2#Type:Electric#Index:4
+Pump.7 = Name:MainTank2OvrdPumpFwd#Pressure:35#DestinationLine:MainTank2OvrdPumpFwdToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:5
+Pump.8 = Name:MainTank2OvrdPumpAft#Pressure:35#DestinationLine:MainTank2OvrdPumpAftToMainTank2OvrdJunc#TankFuelRequired:MainTank2#Type:Electric#Index:6
+Pump.9 = Name:MainTank3PumpFwd#Pressure:20#DestinationLine:MainTank3PumpFwdToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:7
+Pump.10 = Name:MainTank3PumpAft#Pressure:20#DestinationLine:MainTank3PumpAftToMainTank3Junc#TankFuelRequired:MainTank3#Type:Electric#Index:8
+Pump.11 = Name:MainTank3OvrdPumpFwd#Pressure:35#DestinationLine:MainTank3OvrdPumpFwdToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:9
+Pump.12 = Name:MainTank3OvrdPumpAft#Pressure:35#DestinationLine:MainTank3OvrdPumpAftToMainTank3OvrdJunc#TankFuelRequired:MainTank3#Type:Electric#Index:10
+Pump.13 = Name:MainTank4PumpFwd#Pressure:20#DestinationLine:MainTank4PumpFwdToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:11
+Pump.14 = Name:MainTank4PumpAft#Pressure:20#DestinationLine:MainTank4PumpAftToMainTank4Junc#TankFuelRequired:MainTank4#Type:Electric#Index:12
+Pump.15 = Name:StabTankPumpFwd#Pressure:20#DestinationLine:StabTankPumpFwdToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:15
+Pump.16 = Name:StabTankPumpAft#Pressure:20#DestinationLine:StabTankPumpAftToStabTankJuncAft#TankFuelRequired:StabTank#Type:Electric#Index:16
+Pump.17 = Name:APUDCPump#Pressure:10#DestinationLine:APUDCPumpToMainTank2AftToAPUJunction#TankFuelRequired:MainTank2#Type:Electric#Index:17
+Pump.18 = Name:Eng1Pump#Pressure:10#DestinationLine:Eng1PumpToEng1Valve#Type:EngineDriven#Index:1
+Pump.19 = Name:Eng2Pump#Pressure:10#DestinationLine:Eng2PumpToEng2Valve#Type:EngineDriven#Index:2
+Pump.20 = Name:Eng3Pump#Pressure:10#DestinationLine:Eng3PumpToEng3Valve#Type:EngineDriven#Index:3
+Pump.21 = Name:Eng4Pump#Pressure:10#DestinationLine:Eng4PumpToEng4Valve#Type:EngineDriven#Index:4
+Pump.22 = Name:ReservePump1Fwd#Pressure:10#DestinationLine:ReservePump1FwdToReserveTank2ValveFwd#Type:EngineDriven#Index:1
+Pump.23 = Name:ReservePump1Aft#Pressure:10#DestinationLine:ReservePump1AftToReserveTank2ValveAft#Type:EngineDriven#Index:2
+Pump.24 = Name:ReservePump4Fwd#Pressure:10#DestinationLine:ReservePump4FwdToReserveTank3ValveFwd#Type:EngineDriven#Index:3
+Pump.25 = Name:ReservePump4Aft#Pressure:10#DestinationLine:ReservePump4AftToReserveTank3ValveAft#Type:EngineDriven#Index:4
+Trigger.1 = Condition:Autostart_Enabled#EffectTrue:OpenValve.LeftTipEngineValve,OpenValve.LeftInnerEngineValve,OpenValve.RightInnerEngineValve,OpenValve.RightTipEngineValve,OpenValve.LeftTipCrossFeedValve,OpenValve.LeftInnerCrossFeedValve,OpenValve.RightInnerCrossFeedValve,OpenValve.RightTipCrossFeedValve,StartPump.CenterWingTankPumpFwd,StartPump.CenterWingTankPumpAft,StartPump.MainTank1PumpFwd,StartPump.MainTank1PumpAft,StartPump.MainTank2PumpFwd,StartPump.MainTank2PumpAft,StartPump.MainTank3PumpFwd,StartPump.MainTank3PumpAft,StartPump.MainTank4PumpFwd,StartPump.MainTank4PumpAft,StartPump.MainTank2OvrdPumpFwd,StartPump.MainTank2OvrdPumpAft,StartPump.MainTank3OvrdPumpFwd,StartPump.MainTank3OvrdPumpAft,StartPump.StabTankPumpFwd,StartPump.StabTankPumpAft,StartPump.Eng1Pump,StartPump.Eng2Pump,StartPump.Eng3Pump,StartPump.Eng4Pump
+Trigger.2 = Condition:Autoshutdown_Enabled#EffectTrue:CloseValve.LeftTipEngineValve,CloseValve.LeftInnerEngineValve,CloseValve.RightInnerEngineValve,CloseValve.RightTipEngineValve,CloseValve.LeftTipCrossFeedValve,CloseValve.LeftInnerCrossFeedValve,CloseValve.RightInnerCrossFeedValve,CloseValve.RightTipCrossFeedValve,StopPump.CenterWingTankPumpFwd,StopPump.CenterWingTankPumpAft,StopPump.MainTank1PumpFwd,StopPump.MainTank1PumpAft,StopPump.MainTank2PumpFwd,StopPump.MainTank2PumpAft,StopPump.MainTank3PumpFwd,StopPump.MainTank3PumpAft,StopPump.MainTank4PumpFwd,StopPump.MainTank4PumpAft,StopPump.MainTank2OvrdPumpFwd,StopPump.MainTank2OvrdPumpAft,StopPump.MainTank3OvrdPumpFwd,StopPump.MainTank3OvrdPumpAft,StopPump.StabTankPumpFwd,StopPump.StabTankPumpAft
+Trigger.3 = Target:CenterWingTank#Threshold:11940#Condition:TankQuantityBelow#EffectTrue:OpenValve.StabTankValve1,OpenValve.StabTankValve2,OpenValve.CenterWingStabJuncValve1,OpenValve.CenterWingStabJuncValve2,OpenValve.StabTransferValve1,OpenValve.StabTransferValve2
+Trigger.4 = Target:StabTank#Threshold:1#Condition:TankQuantityBelow#EffectTrue:CloseValve.StabTankValve1,CloseValve.StabTankValve2,CloseValve.CenterWingStabJuncValve1,CloseValve.CenterWingStabJuncValve2,CloseValve.StabTransferValve1,CloseValve.StabTransferValve2
+Trigger.5 = Target:MainTank1#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank2ValveFwd,OpenValve.ReserveTank2ValveAft,StartPump.ReservePump1Fwd,StartPump.ReservePump1Aft
+Trigger.6 = Target:MainTank4#Threshold:2015#Condition:TankQuantityBelow#EffectTrue:OpenValve.ReserveTank3ValveFwd,OpenValve.ReserveTank3ValveAft,StartPump.ReservePump4Fwd,StartPump.ReservePump4Aft
+Trigger.7 = Target:ReserveTank2#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump1Fwd,StopPump.ReservePump1Aft,CloseValve.ReserveTank2ValveFwd,CloseValve.ReserveTank2ValveAft
+Trigger.8 = Target:ReserveTank3#Threshold:1#Condition:TankQuantityBelow#EffectTrue:StopPump.ReservePump4Fwd,StopPump.ReservePump4Aft,CloseValve.ReserveTank3ValveFwd,CloseValve.ReserveTank3ValveAft
+
+[AIRPLANE_GEOMETRY]
+wing_area = 5960 ; 5962.397 ; 5960 ; Wing area S (SQUARE FEET)
+wing_span = 224.4094 ; 224.5 ; 224.57 ; Wing span b (FEET)
+wing_root_chord = 42.66 ; 26.5396 ; 55 ; Wing root chord croot (FEET) ; 26.5396 for taper ratio of 1
+wing_camber = 1 ; (DEGREES)
+wing_thickness_ratio = 0.02 ; Local thickness is local_chord(x)*wing_thickness_ratio, x = lateral coord
+wing_dihedral = 7 ; Dihedral angle Lambda (DEGREES)
+wing_incidence = 2 ; Wing incidence (DEGREES)
+wing_twist = -3 ; -5 ; Wing twist epsilon (DEGREES)
+oswald_efficiency_factor = 0.806 ; 0.9237 ; 0.806 ; 0.806 ; 0.9205 ; 0.75 ; Wing Oswald efficiency factor e (non dimensional)
+wing_winglets_flag = 0 ; Has winglets true/false
+wing_sweep = 4.10123 ; 4.106 ; 41.0 ; Wing sweep (DEGREES)
+;wing_cg_ref_chord = 27.32 ; test
+;wing_pos_cg_ref_chord = -104.83 ; test
+wing_pos_apex_lon = -95.975 ; -104.83 ; -80 ; -83.75 ; -80 ; Longitudinal (z) position of wing apex w.r.t reference datum (FEET)
+wing_pos_apex_vert = -4 ; Vertical (y) position of wing apex w.r.t reference datum (FEET)
+htail_area = 1089.5626 ; 1470.35 ; 800 ; Horizontal tail area (SQUARE FEET)
+htail_span = 72.17848 ; 70 ; Horizontal tail span (FEET)
+htail_pos_lon = -233.14 ; -210 ; Longitudinal (z) position of horizontal tail w.r.t reference datum (FEET)
+htail_pos_vert = 11 ; Vertical (y) position of horizontal tail w.r.t reference datum (FEET)
+htail_incidence = 3 ; 0 ; Horizontal tail incidence (DEGREES)
+htail_sweep = 46 ; Horizontal tail sweep angle (DEGREES)
+htail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*htail_thickness_ratio, x = lateral coord
+vtail_area = 884.874 ; 829 ; 800 ; Vertical tail area (SQUARE FEET)
+vtail_span = 33.33 ; Vertical tail span (FEET)
+vtail_sweep = 40 ; Vertical tail sweep angle (DEGREES)
+vtail_pos_lon = -223.14 ; -200 ; Longitudinal (z) position of vertical tail w.r.t reference datum (FEET)
+vtail_pos_vert = 31 ; Vertical (y) position of vertical tail w.r.t reference datum (FEET)
+vtail_thickness_ratio = 0.04 ; Local thickness is local_chord(x)*vtail_thickness_ratio, x = lateral coord
+fuselage_length = 250 ; 231.63 ; 250 ; Nose to tail (FEET)
+fuselage_diameter = 25.56
+fuselage_center_pos = -110.64, 0, 5 ; -110.64, 0, 5 ; -87.5, 0, 5
+elevator_area = 340.488 ; 500 ; Elevator area (SQUARE FEET)
+aileron_area = 68.098 ; 210 ; Aileron area (SQUARE FEET)
+rudder_area = 238.3418 ; 500 ; Rudder area (SQUARE FEET)
+elevator_up_limit = 17 ; 25 ; Elevator max deflection up angle (DEGREES)
+elevator_down_limit = 23 ; 20 ; Elevator max deflection down angle (absolute value) (DEGREES)
+aileron_up_limit = 15 ; 25 ; Aileron max deflection angle (DEGREES)
+aileron_down_limit = 25 ; 15 ; Aileron max deflection down angle (absolute value) (DEGREES)
+rudder_limit = 32 ; 25 ; 35 ; Rudder max deflection angle (absolute value) (DEGREES)
+rudder_trim_limit = 10 ; Rudder trim max deflection angle (absolute value) (DEGREES)
+elevator_trim_limit = 7.5 ; 20 ; Elevator trim max angle (absolute value) (DEGREES)
+spoiler_limit = 45 ; Spoiler max deflection angle (absolute value) (DEGREES)
+air_spoiler_limit = 31.41 ; Spoiler max deflection angle IN THE AIR (absolute value) (DEGREES)
+spoilerons_available = 1 ; Aircraft has spoilerons true/false
+aileron_to_spoileron_gain = 3 ; Aileron influence on spoileron angle (non-dimensional)
+min_ailerons_for_spoilerons = 10 ; Minimum aileron deflection (absolute value) in which spoilerons are active (DEGREES)
+min_flaps_for_spoilerons = 0 ; Minimum flaps deflection (absolute value) in which spoilerons are active (DEGREES)
+spoiler_extension_time = 2 ; Spoilers extension time (SECONDS)
+spoiler_handle_available = 1 ; Spoiler handles available true/false
+auto_spoiler_available = 1 ; Auto spoilers available true/false
+auto_spoiler_min_speed = 80 ; Auto spoilers minimum trigger speed
+auto_spoiler_auto_retracts = 0
+positive_g_limit_flaps_up = 4 ; Flap positive load limit when up. Same dimension as gravity vector FEET/SECONDS^2
+positive_g_limit_flaps_down = 3 ; Flap positive load limit when down. Same dimension as gravity vector FEET/SECONDS^2
+negative_g_limit_flaps_up = -3 ; Flap negative load limit when up. Same dimension as gravity vector FEET/SECONDS^2
+negative_g_limit_flaps_down = -2 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2
+load_safety_factor = 1.5 ; Flap negative load limit when down. Same dimension as gravity vector FEET/SECONDS^2
+elevator_trim_neutral = -4.5 ; Elevator trim max angle (absolute value) (DEGREES), for indicators only (no influence on flight model)
+aileron_to_rudder_scale = 0 ; non-dimensional
+flap_to_aileron_scale = 0 ; non-dimensional
+fly_by_wire = 0 ; Fly-by-wire available true/false
+aileron_span_outboard = 0.7
+;elevator_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25
+;aileron_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25
+;rudder_elasticity_table = 0:1, 162:1, 209:0.625, 390:0.32, 410:0.25
+rudder_elasticity_table = 0:1, 8.135:1, 13.070:0.625, 36.14:0.32
+;elevator_trim_elasticity_table = 0:1, 100:1, 250:0.9, 400:0.33, 600:0.25
+controls_reactivity_scalar = 20.0 ; 0.25
+
+[AERODYNAMICS]
+;elevator_lift_coef = 3
+lift_coef_pitch_rate = -109.70206
+lift_coef_daoa = 0.0
+lift_coef_delta_elevator = -1.80648
+lift_coef_horizontal_incidence = 0.0
+lift_coef_flaps = 1.0 ; 1.11620
+lift_coef_spoilers = -0.20000
+drag_coef_zero_lift = 0.02300 ; 0.02300 ; 0.020500 ; 0.02300 ; 0.02300 ; 0.01790 ; 0.01600 ; 0.01600 ; 0.02100 ; 0.02300
+drag_coef_flaps = 0.10000 ; 0.11860
+drag_coef_gear = 0.01500 ; 0.01000
+drag_coef_spoilers = 0.030 ; 0.10000
+;presspt_fwd_Alpha0_pMAC = -0.5
+side_force_slip_angle = -2.96232
+side_force_roll_rate = 2.35547
+side_force_yaw_rate = 31.35555
+side_force_delta_rudder = -3.04370
+pitch_moment_horizontal_incidence = 0.0
+pitch_moment_delta_elevator = -5 ; -5.937 ; -9.0000 ; -7.30733
+pitch_moment_delta_trim = -5 ; -5.937 ; -9.00000 ; -7.30733
+pitch_moment_pitch_damping = -877.85809
+pitch_moment_aoa_0 = -0.06566
+pitch_moment_daoa = 0.0
+pitch_moment_flaps = 0.15282
+pitch_moment_gear = 0.00395
+pitch_moment_spoilers = -0.08202
+pitch_moment_delta_elevator_propwash = -1.82683
+pitch_moment_pitch_propwash = 0.0
+roll_moment_slip_angle = 0.39912
+roll_moment_roll_damping = -1.50166
+roll_moment_yaw_rate = -3.51870
+roll_moment_spoilers = 0.0
+roll_moment_delta_aileron = -0.30568
+roll_moment_delta_rudder = 0.25999
+roll_moment_delta_aileron_trim_scalar = -0.30568
+yaw_moment_slip_angle = 1.30053
+yaw_moment_roll = 0.53921
+yaw_moment_yaw_damping = -38.36003
+yaw_moment_yaw_propwash = 0.0
+yaw_moment_delta_aileron = -0.01319
+yaw_moment_delta_rudder = 0.95632
+yaw_moment_delta_rudder_propwash = 0.23908
+yaw_moment_delta_rudder_trim_scalar = 0.95632
+compute_aero_center = 0
+aero_center_lift = -13.13167 ; -2.0881 ; -1.7898 ; -4.1762 ; -2.0881 ; -0.44745 ; -14.00000 ; 0.2983 per 1%MAC
+;lift_coef_aoa_table = -3.15:0, -0.8:-1.154, -0.4:-0.928, -0.2:-0.781, -0.1:-0.372, 0:0.250, 0.20:1.215, 0.23:1.293, 0.26:1.314, 0.29:1.117, 0.31:1.049, 0.4:0.941, 0.8:1.183, 3.15:0 <--- DEFAULT
+;lift_coef_aoa_table = -3.15:0, 0:-0.080, 0.175:0.86, 0.192:0.94, 0.209:1.01, 0.227:1.07, 0.244:1.11, 0.262:1.15, 0.279:1.17, 0.297:1.195, 0.314:1.22, 0.332:1.24, 0.349:1.26, 3.15:0 <--- LOW SPEED
+lift_coef_aoa_table = -3.15:0.0315, -0.1396:-0.6606, 0:0.0945, 0.2793:1.6053, 3.15:0.0315 ; <--- GOOD ONE
+lift_coef_ground_effect_mach_table = 0.054:1.0
+;lift_coef_mach_table = 0:0.40, 0.340:0.40, 0.612:0.46, 0.806:0.50, 0.83:0.53 <---- GOOD ONE !
+;lift_coef_mach_table = 0:0.457, 0.3:0.457, 0.35:0.465, 0.4:0.475, 0.45:0.488, 0.5:0.503, 0.55:0.522, 0.6:0.545, 0.612:0.551, 0.65:0.574, 0.7:0.610, 0.75:0.659, 0.80:0.726, 0.83:0.782, 0.85:0.827, 0.9:1.0 ; <---- PRANDTL CORRECTION FOR COMPRESSIBILITY
+;lift_coef_mach_table = 0:0.457, 0.3:0.457, 0.35:0.465, 0.4:0.475, 0.45:0.488, 0.5:0.503, 0.55:0.522, 0.6:0.545, 0.612:0.841, 0.65:0.574, 0.667:0.879, 0.7:0.610, 0.75:0.659, 0.80:0.726, 0.83:0.782, 0.85:0.827, 0.9:1.0
+lift_coef_mach_table = 0:0.720, 0.308:0.720, 0.340:0.811, 0.612:1
+lift_coef_delta_elevator_mach_table = 0:0
+lift_coef_daoa_mach_table = 0:0
+lift_coef_pitch_rate_mach_table = 0:0
+lift_coef_horizontal_incidence_mach_table = 0:0
+;drag_coef_zero_lift_mach_tab = 0:0.000, 0.5:0.000, 0.55:0.000, 0.6:0.000, 0.65:0.000, 0.7:0.000, 0.75:0.000, 0.8:0.000, 0.85:0.000, 0.9:0.000, 0.95:0.100, 1.0:1.000, 1.1:0.532, 1.5:0.046
+;drag_coef_zero_lift_mach_tab = 0:0, 0.71:0.0, 0.80:0.00145, 0.85:0.01670, 0.9:0.04685
+;drag_coef_zero_lift_mach_tab = 0:0.0, 0.469:0.0009, 0.559:0.0016, 0.672:0.0002, 0.815:0.0, 0.83:0.004
+drag_coef_zero_lift_mach_tab = 0:0, 0.83:0.0, 0.86:0.001
+side_force_slip_angle_mach_table = 0:0
+side_force_delta_rudder_mach_table = 0:0
+side_force_yaw_rate_mach_table = 0:0
+side_force_roll_rate_mach_table = 0:0
+pitch_moment_aoa_table = -3.15:0, -0.8:-1.767, -0.4:-0.918, -0.2:-0.833, -0.1:-0.555, 0:0, 0.20:0.964, 0.23:1.003, 0.26:1.024, 0.29:1.116, 0.31:1.080, 0.4:1.046, 0.8:1.745, 3.15:0
+pitch_moment_delta_elevator_aoa_table = -180:-1, -40:0.154, -20:0.528, -14:0.912, -7:0.887, 0:1, 7:0.873, 14:0.955, 20:0.592, 40:0.147, 180:-1
+pitch_moment_horizontal_incidence_aoa_table = 0:1
+pitch_moment_daoa_aoa_table = 0:1
+pitch_moment_pitch_alpha_table = 0:1
+pitch_moment_delta_elevator_mach_table = 0:0
+pitch_moment_daoa_mach_table = 0:0
+pitch_moment_pitch_rate_mach_table = 0:0
+pitch_moment_horizontal_incidence_mach_table = 0:0
+pitch_moment_aoa_0_mach_table = 0:0
+roll_moment_aoa_table = 0:0
+roll_moment_slip_angle_aoa_table = 0:1
+roll_moment_roll_rate_aoa_table = 0:1
+roll_moment_delta_aileron_aoa_table = 0:1
+roll_moment_slip_angle_mach_table = 0:0
+roll_moment_delta_rudder_mach_table = 0:0
+roll_moment_delta_aileron_mach_table = 0:0
+roll_moment_yaw_rate_mach_table = 0:0
+roll_moment_roll_rate_mach_table = 0:0
+yaw_moment_aoa_table = 0:0
+yaw_moment_slip_angle_aoa_table = 0:1
+yaw_moment_yaw_rate_aoa_table = 0:1
+yaw_moment_delta_rudder_aoa_table = 0:1
+yaw_moment_slip_angle_mach_table = 0:0
+yaw_moment_delta_rudder_mach_table = 0:0
+yaw_moment_delta_aileron_mach_table = 0:0
+yaw_moment_yaw_rate_mach_table = 0:0
+yaw_moment_roll_rate_mach_table = 0:0
+elevator_scaling_table = 0:1
+aileron_scaling_table = 0:1
+rudder_scaling_table = 0:1
+aileron_load_factor_effectiveness_table = 0:1
+lift_coef_at_drag_zero = 0 ; -0.0317 ; 0.0945 ; 0.5 ; 0.150 ; 0.515 ; 0.283 ; 0.338 ; 0.378 ; 0.272 ; GOOD -0.03165 ; -0.059 ; 0.150 ; 0.162 ; 0.150 ; 0.242 ; 0.25 ; 0.15 ; 0.10000
+lift_coef_at_drag_zero_flaps = 0 ; -0.10000
+
+[FLIGHT_TUNING]
+cruise_lift_scalar = 1.0 ; 1.35 ; 2.0
+parasite_drag_scalar = 1.0
+induced_drag_scalar = 1.75 ; 1.091 ; 1.80 ; 1.75 ; 1.0 ; 0.4 ; 1.0
+flap_induced_drag_scalar = 0.922 ; 1.0
+elevator_effectiveness = 1.0
+elevator_maxangle_scalar = 1.0 ; 0.5
+aileron_effectiveness = 1.0
+rudder_effectiveness = 1.0
+rudder_maxangle_scalar = 1.0 ; 0.33
+pitch_stability = 1.0 ; 0.5
+roll_stability = 1.0; 0.5
+yaw_stability = 1.0 ; 0.5
+pitch_gyro_stability = 1.0
+roll_gyro_stability = 1.0
+yaw_gyro_stability = 1.0
+elevator_trim_effectiveness = 1.0
+aileron_trim_effectiveness = 1.0
+rudder_trim_effectiveness = 1.0
+hi_alpha_on_roll = 0
+hi_alpha_on_yaw = 0
+p_factor_on_yaw = 0
+torque_on_roll = 0
+gyro_precession_on_roll = 0
+gyro_precession_on_yaw = 0
+engine_wash_on_roll = 0 ; Torque effect
+wingflex_scalar = 1.3
+wingflex_offset = 0.425
+stall_coef_at_min_weight = 0.684 ; 0.72
+
+[REFERENCE SPEEDS]
+full_flaps_stall_speed = 0 ; 151 ; 151 ; 145 ; 150 ; 130 ; Knots True (KTAS)
+flaps_up_stall_speed = 0 ; 217 ; 217 ; 212 ; 217 ; 205 ; Knots True (KTAS)
+cruise_speed = 478 ; 493 ; Knots True (KTAS)
+cruise_mach = 0.830 ; 0.845
+crossover_speed = 310 ; Knots Indicated (KIAS)
+max_mach = 0.90 ; 0.92
+max_indicated_speed = 450 ; Red line (KIAS)
+max_flaps_extended = 275 ; 274.030126
+normal_operating_speed = 365 ; 360
+airspeed_indicator_max = 562.5
+rotation_speed_min = 140 ; Min speed required (Kts)
+climb_speed = 250 ; Climb speed (Kts)
+cruise_alt = 35000 ; 36000 ; (ft)
+takeoff_speed = 155 ; Takeoff Speed (Kts)
+spawn_cruise_altitude = 15000 ; 5000 ; Spawn Cruise Altitude (ft)
+spawn_descent_altitude = 3000 ; 500 ; Spawn Descent Altitude (ft)
+best_angle_climb_speed = 266 ; 267 ; Best angle climb speed (Kts)
+approach_speed = 191 ; 195 ; Approach speed (Kts)
+best_glide = 266 ; 0 ; 267 ; Best Glide (Kts)
+max_gear_extended = 320 ; 280 ; (Kts)
+
+[INTERACTIVE POINTS]
+number_of_interactive_points = 17
+interactive_point.0 = 0.4, 150, -9.6, 1.3, 0, 0, 0, -82, 0, 0, 0, 0, 0, 0
+interactive_point.1 = 0.4, -177.2, 7.4, 1.3, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0
+interactive_point.2 = 0.4, -32.2, -8.1, 11.2, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
+interactive_point.3 = 0.4, -32.2, 8.1, 11.2, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
+interactive_point.4 = 0.4, -57, -10.3, 1.3, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
+interactive_point.5 = 0.4, -56, 10.3, 1.3, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
+interactive_point.6 = 0.4, -94.6, -11, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
+interactive_point.7 = 0.4, -93.4, 11, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
+interactive_point.8 = 0.4, -132, -10, 1.1, 2, 0, 0, -90, 0, 0, 0, 0, 0, 0
+interactive_point.9 = 0.4, -131, 10, 1.1, 2, 0, 0, 90, 0, 0, 0, 0, 0, 0
+interactive_point.10 = 0.4, -15, -9.2, 1.3, 0, 0, 0, -85, 25, 4, 35, 1.5, 0, 0
+interactive_point.11 = 0.4, -15, 9.2, 1.3, 0, 0, 0, 85, 35, 1.5, 25, 4, 0, 0
+interactive_point.12 = 0.4, -26.3, 7, -5.4, 1, 0, 0, 90, 0, 0, 0, 0, 0, 0
+interactive_point.13 = 0.4, -145, 6.4, -6, 1, 0, 0, 95, 0, 0, 0, 0, 0, 0
+interactive_point.14 = 0.4, -87.98, -58.25, -12.6, 3, 0, 0, -45, 0, 0, 0, 0, 0, 0
+interactive_point.15 = 0, 1.9, 10.8, -10.5, 4, 0, 0, 45, 0, 0, 0, 0, 0, 0
+interactive_point.16 = 0, -96, 0, -8, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0
+
+;[STALL PROTECTION]
+;stall_protection = 0 ; 1 ; Stick Shaker
+;off_limit = 11.5 ; Stick Shaker Min
+;on_limit = 14.5 ; Stick Shaker Max
+
+
+[ALPHA PROTECTION]
+off_limit = 14
+on_limit = 15
+on_goal = 13
+timer_trigger = 3
+
+
+;===================== FLAPS =====================
+
+[FLAPS.0]
+type = 1 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge
+system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none
+system_type_index = 120
+span-outboard = 0.55 ; Outboard span area (added area) (percentage, non dimensional)
+extending-time = 55 ; Flap extension time (SECONDS)
+damaging-speed = 285 ; Speed above which flap is damaged (Kts)
+blowout-speed = 350 ; Speed above which flap is blown out (Kts)
+maneuvering_flaps = 0
+lift_scalar = 1.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned)
+drag_scalar = 0.3 ; Scalar coefficient to ponderate global flap drag coef (non dimensioned)
+pitch_scalar = 1.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned)
+max_on_ground_position = 6 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found.
+delay_between_flap_index = 1.0
+flaps-sequence-increasing = 1
+flaps-position.0 = 0, -1, 0, 0
+flaps-position.1 = 0, 285, 0.0, 0.0
+flaps-position.2 = 5, 265, 0.0, 2.5
+flaps-position.3 = 10, 245, 0.0, 2.9
+flaps-position.4 = 20, 235, 0.0, 3.2
+flaps-position.5 = 25, 210, 0.0, 4.1
+flaps-position.6 = 30, 185, 0.0, 4.1
+
+[FLAPS.1]
+type = 2 ; Flap type 0 = None, 1 = trailing edge, 2 = leading edge
+system_type = 1 ; Flap system type 0 = electrical, 1 = hydraulic, 2 = pneumatic, 3 = manual, 4 = none
+system_type_index = 119
+span-outboard = 0.8 ; Outboard span area (added area) (percentage, non dimensional)
+extending-time = 8 ; Flap extension time (SECONDS)
+damaging-speed = 285 ; Speed above which flap is damaged (Kts)
+blowout-speed = 350 ; Speed above which flap is blown out (Kts)
+maneuvering_flaps = 0
+lift_scalar = 0.0 ; Scalar coefficient to ponderate global flap lift coef (non dimensioned)
+drag_scalar = 1.0; Scalar coefficient to ponderate global flap drag coef (non dimensioned)
+pitch_scalar = 0.0 ; Scalar coefficient to ponderate global flap pitch coef (non dimensioned)
+max_on_ground_position = 1 ; Dynamically set in-tool to last flap-position index by defaut when -1 is found.
+flaps-sequence-decreasing = 0
+flaps-position.0 = 0, -1, 0
+flaps-position.1 = 21, 285, 0.30
+flaps-position.2 = 21, 265, 0.30
+flaps-position.3 = 21, 245, 0.30
+flaps-position.4 = 21, 235, 0.30
+flaps-position.5 = 21, 215, 0.30
+flaps-position.6 = 21, 185, 0.30
+;flaps-position.0 = 0, -1, 0, 0
+;flaps-position.1 = 21, 285, 0.39, 0.0
+;flaps-position.2 = 21, 265, 0.0, 0.0
+;flaps-position.3 = 21, 245, 0.0, 0.0
+;flaps-position.4 = 21, 235, 0.0, 0.0
+;flaps-position.5 = 21, 215, 0.0, 0.0
+;flaps-position.6 = 21, 185, 0.0, 0.0
diff --git a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg
index df69dd6ad..0525df06a 100644
--- a/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg
+++ b/salty-747/SimObjects/Airplanes/Asobo_B747_8i/systems.cfg
@@ -27,34 +27,34 @@ lightdef.20 = Type:5#Index:2#LocalPosition:-65.1,-13.8,-1.9#LocalRotation:0,0,10
lightdef.21 = Type:5#Index:3#LocalPosition:-65.1,13.8,-1.9#LocalRotation:0,0,-10#EffectFile:LIGHT_ASOBO_LandingLarge#Node:LIGHT_ASOBO_LandingInnerRight#PotentiometerIndex:20#EmMesh:LIGHT_ASOBO_LandingInnerRight
lightdef.22 = Type:8#Index:1#LocalPosition:0,0,0#LocalRotation:0,0,130#EffectFile:LIGHT_ASOBO_WingLarge#Node:LIGHT_ASOBO_Wing_Left#PotentiometerIndex:0#EmMesh:LIGHT_ASOBO_Wing_Left
lightdef.23 = Type:8#Index:1#LocalPosition:0,0,0#LocalRotation:0,0,-130#EffectFile:LIGHT_ASOBO_WingLarge#Node:LIGHT_ASOBO_Wing_Right#PotentiometerIndex:0#EmMesh:LIGHT_ASOBO_Wing_Right
-lightdef.24 = Type:12#Index:1#LocalPosition:-1.1,-1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.25 = Type:12#Index:1#LocalPosition:-1.1,-0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.26 = Type:12#Index:1#LocalPosition:-1.1,-0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.27 = Type:12#Index:1#LocalPosition:-1.1,-0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.28 = Type:12#Index:1#LocalPosition:-1.1,0,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.29 = Type:12#Index:1#LocalPosition:-1.1,0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.30 = Type:12#Index:1#LocalPosition:-1.1,0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.31 = Type:12#Index:1#LocalPosition:-1.1,0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.32 = Type:12#Index:1#LocalPosition:-1.1,1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
-lightdef.33 = Type:12#Index:1#LocalPosition:-1.52,0,14.96#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GaugeSmall#PotentiometerIndex:0
-lightdef.34 = Type:12#Index:2#LocalPosition:-0.8,-1.9,13.75#LocalRotation:60,0,-35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0
-lightdef.35 = Type:12#Index:3#LocalPosition:-0.8,1.9,13.75#LocalRotation:60,0,35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0
-lightdef.36 = Type:13#Index:0#LocalPosition:-0.5,-1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:40
-lightdef.37 = Type:13#Index:0#LocalPosition:-0.5,-1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:41
-lightdef.38 = Type:13#Index:0#LocalPosition:-0.5,0,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:42
-lightdef.39 = Type:13#Index:0#LocalPosition:-0.5,1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:43
-lightdef.40 = Type:13#Index:0#LocalPosition:-0.5,1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:44
-lightdef.41 = Type:10#Index:1#LocalPosition:-2.35,-1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0
-lightdef.42 = Type:13#Index:0#LocalPosition:-3.800003,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:45
-lightdef.43 = Type:10#Index:3#LocalPosition:-4.3,-1.45,15.8#LocalRotation:80,0,30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0
-lightdef.44 = Type:13#Index:0#LocalPosition:-3.8,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:22
-lightdef.45 = Type:10#Index:2#LocalPosition:-2.35,1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0
-lightdef.46 = Type:13#Index:0#LocalPosition:-3.800003,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:46
-lightdef.47 = Type:10#Index:3#LocalPosition:-4.3,1.45,15.8#LocalRotation:80,0,-30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0
-lightdef.48 = Type:13#Index:0#LocalPosition:-3.8,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:23
-lightdef.49 = Type:11#Index:1#LocalPosition:-3.3,0,14.8#LocalRotation:72,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0
-lightdef.50 = Type:13#Index:0#LocalPosition:-3.2,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:24
-lightdef.51 = Type:13#Index:0#LocalPosition:-1,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CockpitMinimalAmbiant#PotentiometerIndex:1
+lightdef.24 = Type:12#Index:1#LocalPosition:-24.24,-1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.25 = Type:12#Index:1#LocalPosition:-24.24,-0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.26 = Type:12#Index:1#LocalPosition:-24.24,-0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.27 = Type:12#Index:1#LocalPosition:-24.24,-0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.28 = Type:12#Index:1#LocalPosition:-24.24,0,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.29 = Type:12#Index:1#LocalPosition:-24.24,0.33,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.30 = Type:12#Index:1#LocalPosition:-24.24,0.65,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.31 = Type:12#Index:1#LocalPosition:-24.24,0.9,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.32 = Type:12#Index:1#LocalPosition:-24.24,1.25,14#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GlareshieldShort#PotentiometerIndex:0
+lightdef.33 = Type:12#Index:1#LocalPosition:-24.66,0,14.96#LocalRotation:-10,0,0#EffectFile:LIGHT_ASOBO_GaugeSmall#PotentiometerIndex:0
+lightdef.34 = Type:12#Index:2#LocalPosition:-23.94,-1.9,13.75#LocalRotation:60,0,-35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0
+lightdef.35 = Type:12#Index:3#LocalPosition:-23.94,1.9,13.75#LocalRotation:60,0,35#EffectFile:LIGHT_ASOBO_CockpitSpotWideShort#PotentiometerIndex:0
+lightdef.36 = Type:13#Index:0#LocalPosition:-23.64,-1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:40
+lightdef.37 = Type:13#Index:0#LocalPosition:-23.64,-1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:41
+lightdef.38 = Type:13#Index:0#LocalPosition:-23.64,0,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:42
+lightdef.39 = Type:13#Index:0#LocalPosition:-23.64,1,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:43
+lightdef.40 = Type:13#Index:0#LocalPosition:-23.64,1.7,13#LocalRotation:180,0,0#EffectFile:LIGHT_ASOBO_ScreenBlue#PotentiometerIndex:44
+lightdef.41 = Type:10#Index:1#LocalPosition:-25.49,-1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0
+lightdef.42 = Type:13#Index:0#LocalPosition:-26.94,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:45
+lightdef.43 = Type:10#Index:3#LocalPosition:-27.44,-1.45,15.8#LocalRotation:80,0,30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0
+lightdef.44 = Type:13#Index:0#LocalPosition:-26.94,-1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:22
+lightdef.45 = Type:10#Index:2#LocalPosition:-25.49,1.45,15.2#LocalRotation:100,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0
+lightdef.46 = Type:13#Index:0#LocalPosition:-26.94,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:46
+lightdef.47 = Type:10#Index:3#LocalPosition:-27.44,1.45,15.8#LocalRotation:80,0,-30#EffectFile:LIGHT_ASOBO_CockpitSpotLarge#PotentiometerIndex:0
+lightdef.48 = Type:13#Index:0#LocalPosition:-26.94,1.6,13#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounceLarge#PotentiometerIndex:23
+lightdef.49 = Type:11#Index:1#LocalPosition:-26.44,0,14.8#LocalRotation:72,0,0#EffectFile:LIGHT_ASOBO_CockpitSpot#PotentiometerIndex:0
+lightdef.50 = Type:13#Index:0#LocalPosition:-26.34,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CabinBounce#PotentiometerIndex:24
+lightdef.51 = Type:13#Index:0#LocalPosition:-24.14,0,14#LocalRotation:0,0,0#EffectFile:LIGHT_ASOBO_CockpitMinimalAmbiant#PotentiometerIndex:1
[BRAKES]
parking_brake = 1 ; BrakeTypes enum
@@ -75,8 +75,8 @@ bus.4 = Connections:bus.1#Name:AC_BUS_3
bus.5 = Connections:bus.1#Name:AC_BUS_4
bus.6 = Connections:bus.4,bus.7#Name:BATTERY_BUS
bus.7 = Name:HOT_BATTERY_BUS
-battery.1 = Connections:bus.7#Capacity:28#Voltage:curve.1#Name:Main_Battery ; Main_Battery
-battery.2 = Connections:bus.7#Capacity:28#Voltage:curve.1#Name:APU_Battery ; APU_Battery
+battery.1 = Connections:bus.7#Capacity:53#Voltage:curve.1#Name:Main_Battery ; Main_Battery 28 capacity original
+battery.2 = Connections:bus.7#Capacity:53#Voltage:curve.1#Name:APU_Battery ; APU_Battery " " "
alternator.1 = Connections:bus.2#iEng:0#RatedVoltage:28#Load:curve.2
alternator.2 = Connections:bus.3#iEng:1#RatedVoltage:28#Load:curve.2
alternator.3 = Connections:bus.4#iEng:2#RatedVoltage:28#Load:curve.2
@@ -234,9 +234,9 @@ pitot_heat = 1.0 ; Scalar on heat effectiveness, 0 = not available
max_pressure = 5.150000
vacuum_type = 2
-[STALL_WARNING]
-type = 2
-stick_shaker = 1
+;[STALL_WARNING]
+;type = 2
+;stick_shaker = 1
[DEICE_SYSTEM]
structural_deice_type = 1 ; 0 = None, 1 = Heated Leading Edge, 2 = Bleed Air Boots, 3 = Eng Pump Boots
@@ -269,7 +269,7 @@ autothrottle_available = 1
autothrottle_arming_required = 1
autothrottle_max_rpm = 106
autothrottle_takeoff_ga = 1
-autothrottle_managed_by_plane = false
+autothrottle_managed_by_plane = 0 ; false
pitch_takeoff_ga = 8
max_pitch = 25.0
max_pitch_acceleration = 1.0
@@ -284,7 +284,7 @@ auto_max_bank_min_alt = 200
auto_max_bank_min_alt_angle = 8
max_bank_acceleration = 5
max_bank_velocity = 10
-max_throttle_rate = 0.30
+max_throttle_rate = 0.01
yaw_damper_gain = 1.0
min_vertical_speed_ref = -8000
max_vertical_speed_ref = 6000
@@ -300,7 +300,7 @@ min_flight_time_for_ap = 3
english_VS_increment = 50
use_no_default_bank = 0
use_no_default_pitch = 0
-min_feet_ra_for_ap = -1000
+;min_feet_ra_for_ap = -1000
altitude_english_slow_increment = 100
altitude_english_fast_increment = 200
altitude_english_fastest_increment = 1000
diff --git a/salty-747/html_ui/Pages/Salty/SaltyADC.js b/salty-747/html_ui/Pages/Salty/SaltyADC.js
new file mode 100644
index 000000000..5dcf9370c
--- /dev/null
+++ b/salty-747/html_ui/Pages/Salty/SaltyADC.js
@@ -0,0 +1,280 @@
+class SaltyADC {
+ constructor() {
+ this.ncd = -1; //No Computed Data state
+ this.a0 = 340.294; //Speed of sound at ISA sea level (M/sec)
+ this.p0 = 101325 //Standard pressure (Pascals)
+ this.temp0 = 288.15; //ISA Temp at sea level (Kelvin)
+ this.r = 8.31446261815324; //Gas constant (J.K/mol)
+ this.g = 9.80665; //Accel due to gravity (M/sec^2)
+ this.mm = 0.0289644; //Molar mass of air (kg/mol)
+ this.mToFeet = 3.28084; //Metres to feet
+ this.mpsToKnots = 1,944012; //Metres per sec to knots
+ this.rho0 = 1.225; //Kg per cubic meter
+ this.l0 = -0.0065; //Lapse rate in °K/meter
+ this.h1 = 11000; //36089 ft of height in ISA
+ this.temp1 = 216.65; //Temperature in °K at 36089 ft
+ this.p1 = 22632; //Pressure in Pa at 36089 ft
+ this.h0 = 0;
+
+ //Alt samples for vertical speed
+ this.altSample = false;
+ this.t0 = 0;
+ this.t1 = 0;
+ this.alt0 = 0;
+ this.alt1 = 0;
+
+ console.log("Salty ADC loaded");
+ }
+ init() {
+ //this.irsTimer = -1;
+ }
+ update() {
+ //Return No Computed Data if ADC unpowered or in fault state.
+ if ((SimVar.GetSimVarValue("ELECTRICAL MAIN BUS VOLTAGE", "volts") < 20) || SimVar.GetSimVarValue("L:74S_ADC_STATE", "enum") === -1) {
+ SimVar.SetSimVarValue("L:74S_ADC_CAS", "knots", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_TAS", "knots", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_MACH", "number", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_SAT", "number", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_ALT", "feet", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_BARO_CORR_ALT", "feet", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_ALT_RATE", "feet", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_VMO", "knots", this.ncd);
+ SimVar.SetSimVarValue("L:74S_ADC_OVERSPEED_DISCREET", "boolean", this.ncd);
+ return;
+ }
+
+ //Inputs
+ const q = SimVar.GetSimVarValue("DYNAMIC PRESSURE", "pascal");
+ const p = SimVar.GetSimVarValue("AMBIENT PRESSURE", "pascal");
+ const tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin");
+ const baroSetting = SimVar.GetSimVarValue("KOHLSMAN SETTING MB:0", "pascal");
+ //const mach = SimVar.GetSimVarValue("AIRSPEED MACH", "mach");
+
+ //Intermediate Values
+ const mach = this.calculateMach(q, p);
+ const sat = this.calculateSAT(mach, tat);
+ const satC = this.SATtoCelsius(sat);
+ const alt = this.calculateAlt(p);
+ const baroCorrAlt = this.calculateBaroCorrAlt(p, baroSetting);
+ const vmo = this.getBarberPoleSpeed();
+ const eas = this.calculateEAS(mach, p);
+ const tas = this.calculateTAS(mach, sat);
+ const qc = this.calculateQC(p, mach);
+ const cas = this.calculateCAS(qc);
+ const isOverspeed = this.getIsOverspeed(vmo, cas);
+ const altRate = this.calculateAltRate();
+
+ //Outputs
+ SimVar.SetSimVarValue("L:74S_ADC_CAS", "knots", cas);
+ SimVar.SetSimVarValue("L:74S_ADC_TAS", "knots", tas);
+ SimVar.SetSimVarValue("L:74S_ADC_EAS", "knots", eas);
+ SimVar.SetSimVarValue("L:74S_ADC_MACH", "number", mach);
+ SimVar.SetSimVarValue("L:74S_ADC_SAT", "number", satC);
+ SimVar.SetSimVarValue("L:74S_ADC_ALT", "feet", alt);
+ SimVar.SetSimVarValue("L:74S_ADC_BARO_CORR_ALT", "feet", baroCorrAlt);
+ SimVar.SetSimVarValue("L:74S_ADC_ALT_RATE", "feet", altRate);
+ SimVar.SetSimVarValue("L:74S_ADC_VMO", "knots", vmo);
+ SimVar.SetSimVarValue("L:74S_ADC_OVERSPEED_DISCREET", "boolean", isOverspeed);
+ }
+
+ getBarberPoleSpeed() {
+ const vmo = Math.min(365, this.calculateMMO());
+ if (vmo < 150 || vmo > 450) {
+ return this.ncd;
+ }
+ return vmo;
+ }
+
+ calculateMMO() {
+ const mmo = 0.9;
+ const mmoInKnots = SimVar.GetGameVarValue("FROM MACH TO KIAS", "number", mmo);
+ return mmoInKnots;
+ }
+
+ getIsOverspeed(vmo, cas) {
+ const isOverspeed = cas > vmo ? true : false;
+ return isOverspeed;
+ }
+
+ calculateQC(p, mach) {
+ const qc = ((1 + 0.2 * mach ** 2) ** 3.5 - 1) * p;
+ return qc;
+ }
+
+ calculateCAS(qc) {
+ const cas = this.a0 * (5 * (((qc / this.p0) + 1) ** (2 / 7) - 1)) ** 0.5 * this.mpsToKnots;
+ if (cas < 30 || cas > 450) {
+ return this.ncd;
+ }
+ return cas;
+ }
+
+ calculateEAS(mach, p) {
+ const eas = this.a0 * mach * (p / this.p0) ** 0.5 * this.mpsToKnots;
+ return eas;
+ }
+
+ calculateTAS(mach, sat) {
+ const tas = this.a0 * mach * (sat / this.temp0) ** 0.5 * this.mpsToKnots;
+ if (tas < 100 || tas > 599) {
+ return this.ncd;
+ }
+ return tas;
+ }
+
+ calculateMach(q, p) {
+ const mach = ((2 * q) / (1.4 * p)) ** 0.5;
+ if (mach < 0.1 || mach > 1.0) {
+ return this.ncd;
+ }
+ return mach;
+ }
+
+ calculateSAT(mach, tat) {
+ const sat = tat / (1 + 0.2 * mach ** 2);
+ if (sat < -174.15 || sat > 333.15) {
+ return this.ncd;
+ }
+ return sat;
+ }
+
+ SATtoCelsius(sat) {
+ const satC = sat - 273.15;
+ return satC;
+ }
+
+ /*calculateAlt(p) {
+ //const alt = ((this.r * sat) / (this.g * this.mm)) * Math.log(this.p0 / p) * this.mToFeet;
+ const altH = this.h1 - ((this.r * this.t1) / (this.g0 * this.mm)) * Math.log(p / this.p1);
+ SimVar.SetSimVarValue ("L:74S_ADC_ALTH", "feet", altH);
+ const altL = this.h0 + ((p / this.p0) ** ((-this.r * this.l0) / (this.g0 * this.mm)) - 1) * (this.t0 / this.l0);
+ SimVar.SetSimVarValue("L:74S_ADC_ALTL", "feet", altL);
+ const alt = 15000;
+ if (!this.altSample) {
+ this.alt0 = alt;
+ this.t0 = performance.now();
+ this.altSample = true;
+ }
+ else {
+ this.alt1 = alt;
+ this.t1 = performance.now();
+ this.altSample = false;
+ }
+ if (alt < -1000 || alt > 50000) {
+ return this.ncd;
+ }
+ if (p >= 22632) {
+ if (!this.altSample) {
+ this.alt0 = altL;
+ this.t0 = performance.now();
+ this.altSample = true;
+ }
+ else {
+ this.alt1 = altL;
+ this.t1 = performance.now();
+ this.altSample = false;
+ }
+ if (altL < -1000 || altL > 50000) {
+ return this.ncd;
+ }
+ //SimVar.SetSimVarValue("L:74S_ADC_ALTL", "feet", altL);
+ const alt = altL;
+ return alt;
+ }
+ else {
+ if (!this.altSample) {
+ this.alt0 = altH;
+ this.t0 = performance.now();
+ this.altSample = true;
+ }
+ else {
+ this.alt1 = altH;
+ this.t1 = performance.now();
+ this.altSample = false;
+ }
+ if (altH < -1000 || altH > 50000) {
+ return this.ncd;
+ }
+ //SimVar.SetSimVarValue("L:74S_ADC_ALTH", "feet", altH);
+ const alt = altH;
+ return alt;
+ }
+ }*/
+
+ calculateAlt(p) {
+ //const alt = ((this.r * sat) / (this.g * this.mm)) * Math.log(this.p0 / p) * this.mToFeet;
+ const altH = (this.h1 - ((this.r * this.temp1) / (this.g * this.mm)) * Math.log(p / this.p1)) * this.mToFeet;
+ const altL = (this.h0 + ((p / this.p0) ** ((-this.r * this.l0) / (this.g * this.mm)) - 1) * (this.temp0 / this.l0)) * this.mToFeet;
+ /*if (!this.altSample) {
+ this.alt0 = alt;
+ this.t0 = performance.now();
+ this.altSample = true;
+ }
+ else {
+ this.alt1 = alt;
+ this.t1 = performance.now();
+ this.altSample = false;
+ }
+ if (alt < -1000 || alt > 50000) {
+ return this.ncd;
+ }*/
+ if (p >= 22632) {
+ if (!this.altSample) {
+ this.alt0 = altL;
+ this.t0 = performance.now();
+ this.altSample = true;
+ }
+ else {
+ this.alt1 = altL;
+ this.t1 = performance.now();
+ this.altSample = false;
+ }
+ if (altL < -1000 || altL > 50000) {
+ return this.ncd;
+ }
+ const alt = altL;
+ return alt;
+ }
+ else {
+ if (!this.altSample) {
+ this.alt0 = altH;
+ this.t0 = performance.now();
+ this.altSample = true;
+ }
+ else {
+ this.alt1 = altH;
+ this.t1 = performance.now();
+ this.altSample = false;
+ }
+ if (altH < -1000 || altH > 50000) {
+ return this.ncd;
+ }
+ const alt = altH;
+ return alt;
+ }
+ }
+
+ /*calculateBaroCorrAlt(sat, p, baroSetting) {
+ const alt = ((this.r * sat) / (this.g * this.mm)) * Math.log(baroSetting / p) * this.mToFeet;
+ if (alt < -1000 || alt > 50000) {
+ return this.ncd;
+ }
+ return alt;
+ }*/
+
+ calculateBaroCorrAlt(p, baroSetting) {
+ const altcorr = ((p / baroSetting) ** ((-this.r * this.l0) / (this.g * this.mm)) - 1) * (this.temp0 / this.l0) * this.mToFeet;
+ if (altcorr < -1000 || altcorr > 50000) {
+ return this.ncd;
+ }
+ return altcorr;
+ }
+
+ calculateAltRate() {
+ const vs = (this.alt1 - this.alt0) / (this.t1 - this.t0) * 60;
+ if (vs < -20000 || vs > 20000) {
+ return this.ncd;
+ }
+ return vs * 1000;
+ }
+}
diff --git a/salty-747/html_ui/Pages/Salty/SaltyAirGroundLogic.js b/salty-747/html_ui/Pages/Salty/SaltyAirGroundLogic.js
new file mode 100644
index 000000000..3a0148e43
--- /dev/null
+++ b/salty-747/html_ui/Pages/Salty/SaltyAirGroundLogic.js
@@ -0,0 +1,41 @@
+class SaltyAirGroundLogic {
+ constructor() {
+ console.log('Salty Air/Ground logic loaded');
+ }
+ init() {
+ return;
+ }
+ RMGisOnGround() {
+ let compression = SimVar.GetSimVarValue("CONTACT POINT COMPRESSION:1", "percent");
+ if (compression > 5) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ LMGisOnGround() {
+ let compression = SimVar.GetSimVarValue("CONTACT POINT COMPRESSION:2", "percent");
+ if (compression > 5) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ SaltyisOnGround(){
+ let RMG = this.RMGisOnGround();
+ let LMG = this.LMGisOnGround();
+ if (!RMG && !LMG) {
+ return false;
+ }
+ else {
+ return true;
+ }
+ }
+ update() {
+ let ground = this.SaltyisOnGround();
+ SimVar.SetSimVarValue("L:SALTY_GROUND", "bool", ground);
+ return ground;
+ }
+}
\ No newline at end of file
diff --git a/salty-747/html_ui/Pages/Salty/SaltyBase.js b/salty-747/html_ui/Pages/Salty/SaltyBase.js
index 6f7a43fcd..ba885c4f6 100644
--- a/salty-747/html_ui/Pages/Salty/SaltyBase.js
+++ b/salty-747/html_ui/Pages/Salty/SaltyBase.js
@@ -3,15 +3,27 @@ class SaltyBase {
this.irs = new SaltyIRS();
this.pilots = new SaltyPilots();
this.jettison = new SaltyJettison();
+ this.airground = new SaltyAirGroundLogic();
+ //this.flightphase = new SaltyFlightPhaseLogic();
+ this.adc = new SaltyADC();
+ //this.fadec = new SaltyFADEC();
}
init() {
this.irs.init();
this.pilots.init();
this.jettison.init();
+ this.airground.init();
+ //this.flightphase.init();
+ this.adc.init();
+ //this.fadec.init();
}
update(electricityIsAvail) {
// alternatively may be able to use this.isElectricityAvailable() SimVar.GetSimVarValue("CIRCUIT GENERAL PANEL ON", "Bool") to get electricity status
this.irs.update(electricityIsAvail);
this.jettison.update();
+ this.airground.update();
+ //this.flightphase.update();
+ this.adc.update();
+ //this.fadec.update();
}
}
diff --git a/salty-747/html_ui/Pages/Salty/SaltyFADEC.js b/salty-747/html_ui/Pages/Salty/SaltyFADEC.js
new file mode 100644
index 000000000..7fcef43e8
--- /dev/null
+++ b/salty-747/html_ui/Pages/Salty/SaltyFADEC.js
@@ -0,0 +1,103 @@
+class SaltyFADEC {
+ constructor() {
+ console.log('Salty FADEC loaded');
+
+ }
+ init() {
+ return;
+ }
+ getEAI(index) {
+ let eai = SimVar.GetSimVarValue(`ENGINE ANTI ICE:${index}`, "bool");
+ return eai;
+ }
+ getBleed(index) {
+ let bleed = SimVar.GetSimVarValue(`BLEED AIR ENGINE:${index}`, "bool");
+ return bleed;
+ }
+ getAlternate(index) {
+ SimVar.SetSimVarValue(`L:SALTY_ALT_ENG_MODE:${index}`, "bool", false);
+ let alternate = SimVar.GetSimVarValue(`L:SALTY_ALT_ENG_MODE:${index}`, "bool");
+ return alternate;
+ }
+ getTLA(index) {
+ let tla = SimVar.GetSimVarValue(`GENERAL ENG THROTTLE LEVER POSITION:${index}`, "percent");
+ SimVar.SetSimVarValue(`L:SALTY_TLA:${index}`, "percent", tla);
+ return tla;
+ }
+ getIdleN1(index){
+ //let flaps = this.getFlaps();
+ let eai = this.getEAI(index);
+ //let reverser = this.getReverser(index);
+ let idleN1 = 20.2;
+ if (eai /*|| flaps >= 20 || reverser*/) {
+ idleN1 = 29.2;
+ }
+ SimVar.SetSimVarValue(`L:SALTY_IDLE_N1:${index}`, "percent", idleN1);
+ return idleN1;
+ }
+ getMaxN1(index) {
+ //let eai = this.getEAI(index);
+ let bleed = this.getBleed(index);
+ let alternate = this.getAlternate(index);
+ let maxN1 = 98.5;
+ if (bleed) {
+ maxN1 -= 0.6;
+ }
+ if (alternate) {
+ maxN1 = 106.7;
+ }
+ //SimVar.SetGameVarValue(`ENG MAX N1${index}`, "percent", maxN1);
+ //let test = SimVar.GetGameVarValue(`ENG MAX N1${index}`, "percent");
+ SimVar.SetSimVarValue("L:SALTY_MAX_N1_TEST", "percent", maxN1);
+ //console.log(test);
+ return maxN1;
+ }
+ setCommandedN1(index) {
+ //let alt = SimVar.GetSimVarValue("PRESSURE ALTITUDE", "feet");
+ let tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin");
+ let theta2 = tat / 288.15;
+ let tla = this.getTLA(index);
+ let idleN1 = this.getIdleN1(index);
+ let maxN1 = this.getMaxN1(index);
+ let comN1 = Math.min(Math.max(idleN1, 20.2) + 86.5 * tla * 0.01, maxN1);
+ SimVar.SetSimVarValue(`L:SALTY_COM_N1:${index}`, "percent", comN1);
+ SimVar.SetSimVarValue(`TURB ENG COMMANDED N1:${index}`, "percent", comN1);
+ SimVar.SetSimVarValue(`TURB ENG THROTTLE COMMANDED N1:${index}`, "percent", comN1);
+ return;
+ }
+ update() {
+
+ for (let i = 1; i < 5; i++){
+ let index = i;
+ /*RegisterViewListener("JS_LISTENER_KEYEVENT");
+ this.keyListener = RegisterViewListener('JS_LISTENER_KEYEVENT', () => {
+ Coherent.call('INTERCEPT_KEY_EVENT', 'INCREASE_THROTTLE', 0);
+ Coherent.call('INTERCEPT_KEY_EVENT', 'DECREASE_THROTTLE', 0);
+ Coherent.call('INTERCEPT_KEY_EVENT', 'THROTTLE_CUT', 0);
+ this.keyListener.on('keyIntercepted', keyEventName => {
+ if (keyEventName === 'THROTTLE_CUT') {
+ if (SimVar.GetSimVarValue("GPS OBS ACTIVE", "boolean")) {
+ SimVar.SetSimVarValue("K:GPS_OBS_SET", "degrees", SimVar.GetSimVarValue("NAV OBS:1", "degree"));
+ }
+ console.log('THROTTLE CUT INTERCEPTED');
+ SimVar.SetSimVarValue("K:AXIS_THROTTLE_SET", "position 16K", 5995);
+ }
+ if (keyEventName === 'VOR1_OBI_DEC') {
+ if (SimVar.GetSimVarValue("GPS OBS ACTIVE", "boolean")) {
+ SimVar.SetSimVarValue("K:GPS_OBS_SET", "degrees", SimVar.GetSimVarValue("NAV OBS:1", "degree"));
+ }
+ }
+ });
+
+ });*/
+ //this.getEAI(index);
+ //this.getBleed(index);
+ //this.getAlternate(index);
+ //this.getTLA(index);
+ //this.getIdleN1(index);
+ //this.getMaxN1(index);
+ this.setCommandedN1(index);
+ }
+ return;
+ }
+}
\ No newline at end of file
diff --git a/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js b/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js
index 347d7620d..5424c99bc 100644
--- a/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js
+++ b/salty-747/html_ui/Pages/Salty/WT/Autopilot/SaltyNavModeSelector.js
@@ -1606,7 +1606,7 @@
return;
}
this.currentAutoThrottleStatus = AutoThrottleModeState.THR;
- SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 80);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 80);
SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1);
}
else if (mcpAlt < altitude) {
@@ -1652,7 +1652,7 @@
activateThrustRefMode() {
this.currentAutoThrottleStatus = AutoThrottleModeState.THRREF;
Coherent.call("GENERAL_ENG_THROTTLE_MANAGED_MODE_SET", ThrottleMode.CLIMB);
- SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 90);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 90);
SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1);
}
@@ -1666,8 +1666,9 @@
activateIdleMode() {
this.currentAutoThrottleStatus = AutoThrottleModeState.IDLE;
- SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 23.2);
- SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", 23.2);
+ //SimVar.SetSimVarValue("K:AP_N1_HOLD", "bool", 1);
+ SimVar.SetSimVarValue("K:THROTTLE_CUT", "bool", 1);
}
setAPSpeedHoldMode() {
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js
index 39376b3ce..a603c454d 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Boeing_Common.js
@@ -10,23 +10,74 @@ var Boeing;
getText(phase, mode) {
let text = "-";
- let alt = Simplane.getAltitude();
- let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number");
+ //let ground = SimVar.GetSimVarValue("L:SALTY_GROUND", "bool"); //Simplane.getIsGrounded();
+ //let mode = (ground ? SimVar.GetSimVarValue("L:AIRLINER_THRUST_TAKEOFF_MODE", "number") : SimVar.GetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number"));
+ //let alt = Simplane.getAltitude();
+ //let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number");
- if (phase <= FlightPhase.FLIGHT_PHASE_CLIMB)
+ /*if (phase <= FlightPhase.FLIGHT_PHASE_CLIMB)
text = `${(alt <= thrRedAlt && phase <= FlightPhase.FLIGHT_PHASE_TAKEOFF) ? "TO" : "CLB"}${(mode == 1 || mode == 2) ? " - " + mode : ""}`;
- else if (phase <= FlightPhase.FLIGHT_PHASE_CRUISE)
- text = `CRZ`;
-
- return text;
+ */
+ if (phase <= /*1*/ FlightPhase.FLIGHT_PHASE_TAKEOFF && SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool") == false) {
+ text = "-";
+ return text;
+ }
+ else if (phase <= /*1*/ FlightPhase.FLIGHT_PHASE_TAKEOFF && SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool") == true) {
+ /*let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_TAKEOFF_MODE", "number");*/
+ if (mode == 0){
+ if (SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool") == true) {
+ let AT = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number");
+ text = "D-TO " + "+" + AT + "C";
+ return text;
+ }
+ else {
+ text = "TO";
+ return text;
+ }
+ }
+ else if (mode == 1 || mode == 2){
+ if (SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool") == true) {
+ let AT = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number");
+ text = "D-TO " + mode + "+" + AT + "C";
+ return text;
+ }
+ else {
+ text = "TO - " + mode;
+ return text;
+ }
+ }
+ }
+ else {
+ /*let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number");*/
+ if (mode == 0){
+ text = "CLB";
+ return text;
+ }
+ else if (mode == 1 || mode == 2){
+ text = "CLB - " + mode;
+ return text;
+ }
+ else if (mode == 3) {
+ text = "GA";
+ return text;
+ }
+ else if (mode == 4) {
+ text = "CON";
+ return text;
+ }
+ else {
+ text = "CRZ";
+ return text;
+ }
+ }
}
-
update() {
- let phase = Simplane.getCurrentFlightPhase();
- let mode = 0;
+ let phase = Simplane.getCurrentFlightPhase(); //SimVar.GetSimVarValue("L:SALTY_PHASE", "Enum") ; //Simplane.getCurrentFlightPhase();
+ //let ground = SimVar.GetSimVarValue("L:SALTY_GROUND", "bool") ; //Simplane.getIsGrounded();
let alt = Simplane.getAltitude();
let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number");
- if (phase <= FlightPhase.FLIGHT_PHASE_TAKEOFF && alt < thrRedAlt) {
+ var mode;
+ if (phase <= /*1*/ FlightPhase.FLIGHT_PHASE_TAKEOFF && alt < thrRedAlt) {
mode = Simplane.getEngineThrustTakeOffMode(0);
}
else {
@@ -94,14 +145,13 @@ var Boeing;
this.bar = _bar;
this.gauge = _gauge;
this.cockpitSettings = SimVar.GetGameVarValue("", "GlassCockpitSettings");
- this.refreshValue(0, 0, 0, 0, true);
+ this.refreshValue(0, 0, 0, true);
}
update(_deltaTime) {
var leverPos = Simplane.getFlapsHandleIndex();
var flapsPercent = ((SimVar.GetSimVarValue("TRAILING EDGE FLAPS LEFT PERCENT", "percent") + SimVar.GetSimVarValue("TRAILING EDGE FLAPS RIGHT PERCENT", "percent")) * 0.5) * 0.01;
- var leadingEdgePercent = ((SimVar.GetSimVarValue("LEADING EDGE FLAPS LEFT PERCENT", "percent") + SimVar.GetSimVarValue("LEADING EDGE FLAPS RIGHT PERCENT", "percent")) * 0.5) * 0.01;
var flapsAngle = (SimVar.GetSimVarValue("TRAILING EDGE FLAPS LEFT ANGLE", "degrees") + SimVar.GetSimVarValue("TRAILING EDGE FLAPS RIGHT ANGLE", "degrees")) * 0.5;
- this.refreshValue(leverPos, flapsPercent, flapsAngle, leadingEdgePercent);
+ this.refreshValue(leverPos, flapsPercent, flapsAngle);
if ((this.currentAngle <= 0) && (this.timeout > 0)) {
this.timeout -= _deltaTime;
if (this.timeout <= 0) {
@@ -111,11 +161,10 @@ var Boeing;
}
}
}
- refreshValue(_leverPos, _realFlapsPercent, _realFlapsAngle, _leadingEdgeFlapsPercent, _force = false) {
- if ((_leverPos != this.currentLeverPosition) || (_realFlapsPercent != this.currentPercent) || (_realFlapsAngle != this.currentAngle) || (_leadingEdgeFlapsPercent != this.currentLeadingEdgePercent) || _force) {
+ refreshValue(_leverPos, _realFlapsPercent, _realFlapsAngle, _force = false) {
+ if ((_leverPos != this.currentLeverPosition) || (_realFlapsPercent != this.currentPercent) || (_realFlapsAngle != this.currentAngle) || _force) {
this.currentLeverPosition = _leverPos;
this.currentPercent = _realFlapsPercent;
- this.currentLeadingEdgePercent = _leadingEdgeFlapsPercent;
this.currentAngle = _realFlapsAngle;
var targetAngle = this.flapsLeverPositionToAngle(this.currentLeverPosition);
var barTop = 0;
@@ -137,25 +186,11 @@ var Boeing;
this.valueText.setAttribute("y", markerYStr - 2);
}
if (this.gauge != null) {
- //Normalises non-linear flap settings for gauge.
- const seg1 = barHeight * this.currentLeadingEdgePercent / 6;
- const seg2 = barHeight * Math.min(this.currentPercent, 0.333);
- const seg3 = Math.min(barHeight * 0.5 * Math.max(this.currentPercent - 0.333, 0), 22);
- const seg4 = barHeight * Math.max(this.currentPercent - 0.667, 0);
- var height = seg1 + seg2 + seg3 + seg4;
-
+ var height = barHeight * this.currentPercent;
this.gauge.setAttribute("height", height.toString());
}
if (this.rootElement != null) {
- if (this.currentLeverPosition == 0) {
- this.rootElement.setAttribute("class", (Math.round(_leadingEdgeFlapsPercent * 100) == Math.round(0)) ? "static" : "transit");
- }
- else if (this.currentLeverPosition == 1) {
- this.rootElement.setAttribute("class", (Math.round(_leadingEdgeFlapsPercent * 100) == Math.round(100) && Math.round(this.currentAngle) == Math.round(0)) ? "static" : "transit");
- }
- else {
- this.rootElement.setAttribute("class", (Math.round(this.currentAngle) == Math.round(targetAngle)) ? "static" : "transit");
- }
+ this.rootElement.setAttribute("class", (Math.round(this.currentAngle) == Math.round(targetAngle)) ? "static" : "transit");
}
if (this.currentAngle <= 0) {
this.timeout = Boeing.FlapsDisplay.TIMEOUT_LENGTH;
@@ -173,9 +208,9 @@ var Boeing;
flapsAngleToPercentage(_angle) {
const angToPercent = {
0: 0,
- 1: 0.167,
- 5: 0.333,
- 10: 0.5,
+ 1: 0.033,
+ 5: 0.167,
+ 10: 0.333,
20: 0.667,
25: 0.833,
30: 1
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js
index 3b18cc110..8b6575215 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Engine.js
@@ -121,12 +121,12 @@ var B747_8_LowerEICAS_Engine;
createN2GaugeDefinition() {
var definition = new B747_8_EICAS_Common.GaugeDefinition();
definition.getValue = this.eicas.getN2Value.bind(this, this.engineId);
- definition.maxValue = 1100;
+ definition.maxValue = 1180;
definition.valueBoxWidth = 70;
definition.valueTextPrecision = 0;
definition.barHeight = 40;
definition.type = 2;
- definition.addLineDefinition(1100, 32, "gaugeMarkerDanger");
+ definition.addLineDefinition(1180, 32, "gaugeMarkerDanger");
definition.addLineDefinition(0, 40, "gaugeMarkerNormal", this.eicas.getN2IdleValue.bind(this));
return definition;
}
@@ -140,10 +140,19 @@ var B747_8_LowerEICAS_Engine;
return definition;
}
getFFValue() {
+ /*var mach = SimVar.GetSimVarValue("AIRSPEED MACH", "mach");
+ var theta2 = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "rankine") / 518.67;
+ var P = SimVar.GetSimVarValue("AMBIENT PRESSURE", "hectopascal");
+ var P0 = 1013.25;
+ var delta = P / P0;
+ var delta2 = delta * ((1 + 0.2 * (mach ** 2)) ** 3.5);
+ SimVar.SetSimVarValue("L:SALTY_THETA2", "number", theta2);
+ SimVar.SetSimVarValue("L:SALTY_DELTA2", "number", delta2);
+ SimVar.SetSimVarValue("L:SALTY_DELTA", "number", delta);*/
if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) {
- return (SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "kilogram") / 100);
+ return SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "kilogram") / 100;
}
- return (SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "pounds") / 100);
+ return SimVar.GetSimVarValue("ENG FUEL FLOW GPH:" + this.engineId, "gallons per hour") * SimVar.GetSimVarValue("FUEL WEIGHT PER GALLON", "pounds") / 100;
}
getOilPValue() {
return SimVar.GetSimVarValue("ENG OIL PRESSURE:" + this.engineId, "psi");
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js
index 9988fb1dc..84a66a747 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_LowerEICAS_Fuel.js
@@ -7,6 +7,7 @@ var B747_8_LowerEICAS_Fuel;
this.allFuelComponents = new Array();
this.gallonToMegagrams = 0;
this.gallonToMegapounds = 0;
+ this.units = true;
this.isInitialised = false;
}
get templateID() { return "B747_8LowerEICASFuelTemplate"; }
@@ -136,6 +137,17 @@ var B747_8_LowerEICAS_Fuel;
}
}
update(_deltaTime) {
+ const storedUnits = SaltyDataStore.get("OPTIONS_UNITS", "KG");
+ switch (storedUnits) {
+ case "KG":
+ this.units = true;
+ break;
+ case "LBS":
+ this.units = false;
+ break;
+ default:
+ this.units = true;
+ }
if (!this.isInitialised) {
return;
}
@@ -154,7 +166,7 @@ var B747_8_LowerEICAS_Fuel;
}
}
if (this.unitTextSVG) {
- if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) {
+ if (this.units) {
this.unitTextSVG.textContent = "KGS X 1000";
}
else {
@@ -192,14 +204,14 @@ var B747_8_LowerEICAS_Fuel;
}
getTotalFuelInMegagrams() {
let factor = this.gallonToMegapounds;
- if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) {
+ if (this.units) {
factor = this.gallonToMegagrams;
}
return (SimVar.GetSimVarValue("FUEL TOTAL QUANTITY", "gallons") * factor);
}
getMainTankFuelInMegagrams(_index) {
let factor = this.gallonToMegapounds;
- if (SimVar.GetSimVarValue("L:SALTY_UNIT_IS_METRIC", "bool")) {
+ if (this.units) {
factor = this.gallonToMegagrams;
}
return (SimVar.GetSimVarValue("FUELSYSTEM TANK QUANTITY:" + _index, "gallons") * factor);
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js
index 2e5ccac73..eaff2ad69 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/EICAS/Pages/B747_8_UpperEICAS.js
@@ -138,7 +138,7 @@ var B747_8_UpperEICAS;
}
updateReferenceThrust() {
- const MAX_POSSIBLE_THRUST_DISP = 1060;
+ const MAX_POSSIBLE_THRUST_DISP = 1067;
for (var i = 1; i < 5; ++i) {
this.engRevStatus[i] = SimVar.GetSimVarValue("TURB ENG REVERSE NOZZLE PERCENT:" + i, "percent");
if (this.engRevStatus[i] > 1) {
@@ -146,8 +146,13 @@ var B747_8_UpperEICAS;
this.refThrust[i].setAttribute("x", (i * 15) - 2 + "%");
this.refThrustDecimal[i].style.visibility = "hidden";
}
+ else if (SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool")) {
+ this.refThrust[i].textContent = Math.min(SimVar.GetSimVarValue("L:SALTY_REF_N1", "percent") * 10, MAX_POSSIBLE_THRUST_DISP).toFixed(0);
+ this.refThrust[i].setAttribute("x", (i * 15) - 1 + "%");
+ this.refThrustDecimal[i].style.visibility = "visible";
+ }
else {
- this.refThrust[i].textContent = Math.min((Simplane.getEngineThrottleMaxThrust(i - 1) * 10), MAX_POSSIBLE_THRUST_DISP).toFixed(0);
+ this.refThrust[i].textContent = "----";
this.refThrust[i].setAttribute("x", (i * 15) - 1 + "%");
this.refThrustDecimal[i].style.visibility = "visible";
}
@@ -232,12 +237,18 @@ var B747_8_UpperEICAS;
return Math.abs(Simplane.getEngineThrottleCommandedN1(this.engine - 1)) * 10;
}
getN1LimitValue() {
- return Math.abs(Simplane.getEngineThrottleMaxThrust(this.engine - 1)) * 10;
+ let N1 = "--.-";
+ if (SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool")) {
+ return N1 = Math.abs(Simplane.getEngineThrottleMaxThrust(this.engine - 1)) * 10;
+ }
+ else {
+ return N1;
+ }
}
createEGTGaugeDefinition(_engine) {
var definition = new B747_8_EICAS_Common.GaugeDefinition();
definition.getValue = this.getEGTValue.bind(this);
- definition.maxValue = 1000;
+ definition.maxValue = 1060;
definition.valueBoxWidth = 70;
definition.barHeight = 40;
definition.type = 1;
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html
index 39aba467e..d8cb1e7f1 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC.html
@@ -38,6 +38,10 @@
+
+
+
+
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js
index fcce266fc..2819e792b 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_MainDisplay.js
@@ -51,7 +51,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
this._takeOffN1TempRow = [70, 60, 55, 50, 45, 40, 35, 30, 25, 20, 15, 10, 5, 0, -10, -20, -30, -40, -50];
this._thrustTakeOffMode = 0;
this._thrustCLBMode = 0;
- this._thrustTakeOffTemp = 20;
+ //this._thrustTakeOffTemp = undefined;
this._lastUpdateAPTime = NaN;
this.refreshFlightPlanCooldown = 0;
this.updateAutopilotCooldown = 0;
@@ -88,7 +88,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
this.sentMessages = [];
this.units;
this.useLbs;
- this.atcComm = {
+ this.atcComm = {
estab: false,
loggedTo: "",
nextCtr: "",
@@ -135,7 +135,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
finResFuel: "",
contFuel: "",
route_distance: "",
- rteUplinkReady: false,
+ rteUplinkReady: false,
perfUplinkReady: false
}
this.fixInfo = [];
@@ -152,7 +152,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
}
}
get templateID() { return "B747_8_FMC"; }
-
+
// Property for EXEC handling
get fpHasChanged() {
return this._fpHasChanged;
@@ -189,13 +189,14 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
// Maybe this gets rid of slowdown on first fpln mod
this.flightPlanManager.copyCurrentFlightPlanInto(1);
this.timer = 0;
- let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius");
- this._thrustTakeOffTemp = Math.ceil(oat / 10) * 10;
+ //let oat = Math.round(SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius"));
+ //this._thrustTakeOffTemp = Math.ceil(oat / 10) * 10;
+ SimVar.SetSimVarValue("L:SALTY_ASSUMED_TEMP", "number", 15);
this.aircraftType = Aircraft.B747_8;
this.maxCruiseFL = 430;
this.saltyBase = new SaltyBase();
- this.saltyModules = new SaltyModules();
this.saltyBase.init();
+ SimVar.SetSimVarValue("K:YAW_DAMPER_ON", "bool", 1);
if (SaltyDataStore.get("OPTIONS_UNITS", "KG") == "KG") {
this.units = true;
this.useLbs = false;
@@ -205,7 +206,12 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
}
this.updateVREF30();
this.onInit = () => {
- B747_8_FMC_InitRefIndexPage.ShowPage1(this);
+ if (Simplane.getCurrentFlightPhase() === FlightPhase.FLIGHT_PHASE_CLIMB) {
+ FMCThrustLimPage.ShowPage1(this);
+ }
+ else {
+ B747_8_FMC_InitRefIndexPage.ShowPage1(this);
+ }
};
this.onLegs = () => {
B747_8_FMC_LegsPage.ShowPage1(this);
@@ -235,13 +241,13 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
this.onProg = () => {
B747_8_FMC_ProgPage.ShowPage1(this);
};
- this.onAtc = () => {
+ this.onAtc = () => {
FMC_ATC_Index.ShowPage(this);
};
- this.onFmcComm = () => {
+ this.onFmcComm = () => {
FMC_COMM_Index.ShowPage(this);
};
- this.onMenu = () => {
+ this.onMenu = () => {
FMC_Menu.ShowPage(this);
};
this.onHold = () => {
@@ -277,7 +283,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
this.timer = 0;
}
this.saltyBase.update(this.isElectricityAvailable());
- this.saltyModules.update(_deltaTime);
+ //this.saltyBase.update(electricityIsAvail);
if (SaltyDataStore.get("OPTIONS_UNITS", "KG") == "KG") {
this.units = true;
this.useLbs = false;
@@ -563,7 +569,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
let machCross = SimVar.GetGameVarValue("FROM MACH TO KIAS", "number", mach);
let machMode = Simplane.getAutoPilotMachModeActive();
let isSpeedIntervention = SimVar.GetSimVarValue("L:AP_SPEED_INTERVENTION_ACTIVE", "number");
- //When flaps 1 - commands UP + 20 or speed transition, whichever higher
+ //When flaps 1 - commands UP + 20 or speed transition, whichever higher
if (flapsHandleIndex <= 1 && alt <= speedTrans) {
speed = Math.max(flapsUPmanueverSpeed + 20, 250);
}
@@ -597,7 +603,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
/* Returns VNAV cruise speed target in accordance with active VNAV mode */
getCrzManagedSpeed(cduSpeedRequest) {
- let flapsUPmanueverSpeed = SimVar.GetSimVarValue("L:SALTY_VREF30", "knots") + 80;
+ let flapsUPmanueverSpeed = SimVar.GetSimVarValue("L:SALTY_VREF30", "knots") + 80;
let mach = this.getCrzMach();
let machlimit = SimVar.GetGameVarValue("FROM MACH TO KIAS", "number", mach);
let machMode = Simplane.getAutoPilotMachModeActive();
@@ -834,8 +840,8 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
B747_8_FMC_SelectWptPage.ShowPage(this, waypoints, callback);
});
}
- getClimbThrustN1(temperature, altitude) {
- let lineIndex = 0;
+ /*getClimbThrustN1(temperature, altitude) {
+ /*let lineIndex = 0;
for (let i = 0; i < this._climbN1TempRow.length; i++) {
lineIndex = i;
if (temperature > this._climbN1TempRow[i]) {
@@ -846,6 +852,11 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
rowIndex = Math.max(0, rowIndex);
rowIndex = Math.min(rowIndex, this._climbN1Table[0].length - 1);
return this._climbN1Table[lineIndex][rowIndex];
+ let targetCN1 = 90.34;
+ let TAT = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "rankine");
+ let T0 = 518.67;
+ let theta2 = TAT / T0;
+ return targetCN1 * theta2 ** 0.5;
}
getTakeOffThrustN1(temperature, airportAltitude) {
let lineIndex = 0;
@@ -859,7 +870,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
rowIndex = Math.max(0, rowIndex);
rowIndex = Math.min(rowIndex, this._takeOffN1Table[0].length - 1);
return this._takeOffN1Table[lineIndex][rowIndex];
- }
+ }*/
getThrustTakeOffMode() {
return this._thrustTakeOffMode;
}
@@ -873,42 +884,160 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
return this._thrustCLBMode;
}
setThrustCLBMode(m) {
- if (m >= 0 && m <= 2) {
+ if (m >= 0 && m <= 5) {
this._thrustCLBMode = m;
SimVar.SetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number", this._thrustCLBMode);
}
}
getThrustTakeOffTemp() {
- return this._thrustTakeOffTemp;
+ return SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number");
}
setThrustTakeOffTemp(s) {
let v = parseFloat(s);
if (isFinite(v)) {
- let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius");
- if (v >= oat && v < 80) {
- this._thrustTakeOffTemp = v;
- return true;
+ let oat = Math.round(SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius"));
+ if (v >= oat && v < 100) {
+ SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", true);
+ return SimVar.SetSimVarValue("L:SALTY_ASSUMED_TEMP", "number", v);
}
this.showErrorMessage("OUT OF RANGE");
return false;
}
- this.showErrorMessage(this.defaultInputErrorMessage);
- return false;
- }
- getThrustTakeOffLimit() {
- /*let airport = this.flightPlanManager.getOrigin();
- if (airport) {
- let altitude = airport.infos.coordinates.alt;
- let n1 = this.getTakeOffThrustN1(this.getThrustTakeOffTemp(), altitude) - this.getThrustTakeOffMode() * 10;
- return n1;
- }*/
- return 85;
+ else if (v==FMCMainDisplay.clrValue) {
+ return SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", false);
+ }
+ //this.showErrorMessage(this.defaultInputErrorMessage);
+ //return false;
}
+
+ getThrustTakeOffLimit () {
+ let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_TAKEOFF_MODE", "number");
+ let temp = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "kelvin");
+ let alt = SimVar.GetSimVarValue("PRESSURE ALTITUDE", "feet");
+ let atm = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number");
+ let isatemp = Math.round(288.15 - 2 * (alt / 1000));
+ let theta = 288.15 / (atm + 273.15);
+ if (mode === 0) {
+ let refN1 = 97.9;
+ /*if (alt < 0) {
+ refN1 += alt * 0.00155;
+ }
+ else if (0 <= alt )*/
+ let N1 = refN1 * (temp / 288.15) ** 0.5 * (theta) ** 0.5 * (288.15 / isatemp) ** 0.5;
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ return N1;
+ }
+ if (mode === 1) {
+ let refN1 = 93.6;
+ let N1 = refN1 * (temp / 288.15) ** 0.5 * (theta) ** 0.5 * (288.15 / isatemp) ** 0.5
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ return N1;
+ }
+ if (mode === 2) {
+ let refN1 = 89.4;
+ let N1 = refN1 * (temp / 288.15) ** 0.5 * (theta) ** 0.5 * (288.15 / isatemp) ** 0.5
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ return N1;
+ }
+ }
+
getThrustClimbLimit() {
- /*let altitude = Simplane.getAltitude();
- let temperature = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius");*/
- return 80;
- }
+ let mode = SimVar.GetSimVarValue("L:AIRLINER_THRUST_CLIMB_MODE", "number");
+ let mach = SimVar.GetSimVarValue("AIRSPEED MACH", "number");
+ let tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin");
+ let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "kelvin");
+ let alt = SimVar.GetSimVarValue("PRESSURE ALTITUDE", "feet");
+ let isa = Math.max(288.15 - 2 * (alt / 1000), 216.65);
+ let thetabrk = 303.15 / 288.15;
+ let thetamax = thetabrk * (1 + 0.2 * mach ** 2);
+ let theta = (oat / isa) * (1 + 0.2 * mach ** 2);
+ //if (theta)
+ if (mode === 0) {
+ //let N1 = 90.38;
+ let refN1 = 88.00;
+ let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ return N1;
+ }
+ if (mode === 1) {
+ let refN1 = 84.74;
+ if (alt > 9999) {
+ refN1 += 0.000652 * (alt - 10000);
+ refN1 = Math.min(refN1, 88.00);
+ }
+ if (alt > 14999) {
+ refN1 = 88.00;
+ this.setThrustCLBMode(0);
+ }
+ let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ return N1;
+ }
+ if (mode === 2) {
+ let refN1 = 81.48;
+ if (alt > 9999) {
+ refN1 += 0.001304 * (alt - 10000);
+ refN1 = Math.min(refN1, 88.00);
+ }
+ if (alt > 14999) {
+ refN1 = 88.00;
+ this.setThrustCLBMode(0);
+ }
+ let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ return N1;
+ }
+ if (mode === 3) {
+ let refN1 = 91.87;
+ let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ return N1;
+ }
+ if (mode === 4) {
+ let refN1 = 92.56;
+ let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ return N1;
+ }
+ if (mode === 5) {
+ let refN1 = 90.45;
+ let N1 = Math.min(refN1 * (1 + 0.2 * mach ** 2) ** 0.5 * theta ** 0.5, 100);
+ SimVar.SetSimVarValue("L:SALTY_REF_N1", "percent", N1);
+ let tla = (N1 - 20.2) / 0.798 ;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", tla);
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ return N1;
+ }
+ }
+ /*refreshThrustLimit() {
+ let N1 = SimVar.GetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent");
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ return;
+ }*/
updateAutopilot() {
let now = performance.now();
let dt = now - this._lastUpdateAPTime;
@@ -928,14 +1057,19 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
}
this._apHasDeactivated = !currentApMasterStatus && this._previousApMasterStatus;
this._previousApMasterStatus = currentApMasterStatus;
- if (this.currentFlightPhase <= FlightPhase.FLIGHT_PHASE_TAKEOFF) {
- let n1 = this.getThrustTakeOffLimit() / 100;
- SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "number", n1);
+ /*if (this.currentFlightPhase <= FlightPhase.FLIGHT_PHASE_TAKEOFF) {
+ let N1 = this.getThrustTakeOffLimit(); //* 100;
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
}
+ else {
+ let N1 = this.getThrustClimbLimit();
+ SimVar.SetSimVarValue("K:AP_N1_REF_SET", "number", N1);
+ }*/
+ //this.refreshThrustLimit();
if (!this._navModeSelector) {
this._navModeSelector = new CJ4NavModeSelector(this.flightPlanManager);
}
-
+
//RUN VNAV ALWAYS
if (this._vnav === undefined) {
this._vnav = new WT_BaseVnav(this.flightPlanManager, this);
@@ -989,7 +1123,6 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
if (altitude > 400) {
this._pendingVNAVActivation = false;
SimVar.SetSimVarValue("L:WT_CJ4_VNAV_ON", "bool", 1);
- this._navModeSelector.currentAutoThrottleStatus = AutoThrottleModeState.THRREF;
this._navModeSelector.onNavChangedEvent('VNAV_PRESSED');
}
}
@@ -1030,10 +1163,9 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
//Sets CLB Thrust when passing thrust reduction altitude
let alt = Simplane.getAltitude();
let thrRedAlt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number");
- let n1 = 85;
- if (alt > thrRedAlt) {
- n1 = this.getThrustClimbLimit() / 100;
- SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "number", n1);
+ if (alt >= thrRedAlt) {
+ N1 = this.getThrustClimbLimit() / 100;
+ SimVar.SetSimVarValue("AUTOPILOT THROTTLE MAX THRUST", "percent", N1);
}
}
}
@@ -1047,18 +1179,21 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
if (this.getIsVNAVActive()) {
let speed = this.getCrzManagedSpeed();
this.setAPManagedSpeed(speed, Aircraft.B747_8);
+ this.setThrustCLBMode(5);
}
}
else if (this.currentFlightPhase === FlightPhase.FLIGHT_PHASE_DESCENT) {
if (this.getIsVNAVActive()) {
let speed = this.getDesManagedSpeed();
this.setAPManagedSpeed(speed, Aircraft.B747_8);
+ this.setThrustCLBMode(5);
}
}
else if (this.currentFlightPhase === FlightPhase.FLIGHT_PHASE_APPROACH) {
if (this.getIsVNAVActive()) {
let speed = this.getDesManagedSpeed();
this.setAPManagedSpeed(speed, Aircraft.B747_8);
+ this.setThrustCLBMode(3);
}
}
this.updateAutopilotCooldown = this._apCooldown;
@@ -1084,7 +1219,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
if (vSpeed > 400) {
if (mcpAlt - alt <= 900 && mcpAlt - alt >= 200) {
SimVar.SetSimVarValue("L:SALTY_ALT_ALERT", "bool", 1);
- }
+ }
}
else if (vSpeed < -400) {
if (alt - mcpAlt <= 900 && alt - mcpAlt >= 200) {
@@ -1103,7 +1238,7 @@ class B747_8_FMC_MainDisplay extends Boeing_FMC {
const m = parseInt(value.slice(2, 4));
return h.toFixed(0).padStart(2, "0") + ":" + m.toFixed(0).padStart(2, "0");
}
-
+
refreshGrossWeight(_force = false) {
let gw = 0;
let isInMetric = BaseAirliners.unitIsMetric(Aircraft.A320_NEO);
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js
index e9366a945..9c5510ec4 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_TakeOffPage.js
@@ -88,15 +88,22 @@ class FMCTakeOffPage {
};
let thrustCell = "---";
let selectedTemp = fmc.getThrustTakeOffTemp();
- let mode = Simplane.getEngineThrustTakeOffMode(0);
+ let mode = Simplane.getEngineThrustTakeOffMode();
let modeText = "";
if (mode === 1) {
- modeText = "-1";
+ modeText = "\xa01";
}
if (mode === 2) {
- modeText = "-2";
+ modeText = "\xa02";
+ }
+ if (SimVar.GetSimVarValue("L:SALTY_REF_THR_SET", "bool")) {
+ if (SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool")) {
+ thrustCell = selectedTemp.toFixed(0) + "°\xa0D-TO" + modeText;
+ }
+ else {
+ thrustCell = "---\xa0\xa0TO" + modeText;
+ }
}
- thrustCell = selectedTemp.toFixed(0) + "°\xa0\xa0\xa0TO" + modeText;
let cgCell = "--%";
if (isFinite(fmc.zeroFuelWeightMassCenter)) {
cgCell = fmc.zeroFuelWeightMassCenter.toFixed(1) + "%";
@@ -166,20 +173,24 @@ class FMCTakeOffPage {
let limitTakeoffGrossWeightCell = "";
//Acceleration Height Settable
- let accelHtCell = "";
- let airportElevation = 0;
+ let accelHtCell = ""; //SaltyDataStore.get("TO_ACC_HT", 1000);
+ /*let airportElevation = 0;
let origin = fmc.flightPlanManager.getOrigin();
- if (origin) {
- if(origin.altitudeinFP) {
- airportElevation = Math.round(origin.altitudeinFP / 10) * 10;
- }
- }
- let accelHt = SimVar.GetSimVarValue("L:AIRLINER_ACC_ALT", "number") - airportElevation;
+ if(origin) {
+ airportElevation = origin;
+ }
+ else if (Simplane.getIsGrounded()) {
+ airportElevation = SimVar.GetSimVarValue("GROUND ALTITUDE", "feet");
+ }*/
+ let accelHt = SaltyDataStore.get("TO_ACCEL_HT", 1000); //SimVar.GetSimVarValue("L:AIRLINER_ACC_ALT", "number") - airportElevation;
+ fmc.trySetAccelerationAltitude(accelHt);
if (accelHt) {
- accelHtCell = accelHt.toFixed(0) + "FT";
+ parseInt(accelHt);
+ accelHtCell = accelHt + "FT";
}
fmc.onRightInput[1] = () => {
let value = fmc.inOut;
+ SaltyDataStore.set("TO_ACCEL_HT", value);
fmc.clearUserInput();
fmc.trySetAccelerationAltitude(value, (result) => {
if (result) {
@@ -198,12 +209,15 @@ class FMCTakeOffPage {
if (mode === 2) {
armedCLBThrust += "-2";
}
- let thrRedHt = SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number") - airportElevation;
+ let thrRedHt = SaltyDataStore.get("TO_THR_REDUCTION", 1500); //SimVar.GetSimVarValue("L:AIRLINER_THR_RED_ALT", "number") - airportElevation;
+ fmc.trySetThrustReductionAltitude(thrRedHt);
if (thrRedHt) {
- thrRedCell = armedCLBThrust + "\xa0\xa0\xa0\xa0" + thrRedHt.toFixed(0) + "FT";
+ parseInt(thrRedHt);
+ thrRedCell = armedCLBThrust + "\xa0\xa0\xa0\xa0" + thrRedHt + "FT";
}
fmc.onRightInput[2] = () => {
let value = fmc.inOut;
+ SaltyDataStore.set("TO_THR_REDUCTION", value);
fmc.clearUserInput();
fmc.trySetThrustReductionAltitude(value, (result) => {
if (result) {
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js
index bf2bfaf36..4c1e908ef 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/B747_8_FMC_ThrustLimPage.js
@@ -1,63 +1,143 @@
class FMCThrustLimPage {
static ShowPage1(fmc) {
fmc.clearDisplay();
- let selectedTempCell = fmc.getThrustTakeOffTemp() + "°";
+ FMCThrustLimPage._timer = 0;
+ fmc.pageUpdate = () => {
+ FMCThrustLimPage._timer++;
+ if (FMCThrustLimPage._timer >= 50) {
+ /*if (fmc.flightPhaseHasChangedToCruise === true) {
+ fmc.flightPhaseHasChangedToCruise = false;
+ fmc.setThrustCLBMode(5);
+ }
+ else if (fmc.flightPhaseHasChangedToDescent === true) {
+ fmc.flightPhaseHasChangedToDescent = false;
+ fmc.setThrustCLBMode(5);
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+ else if (fmc.flightPhaseHasChangedToGoAround === true) {
+ fmc.setThrustCLBMode(3);
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+ else {
+ FMCThrustLimPage.ShowPage1(fmc);
+ }*/
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+ }
+ let assumedTempSet = SimVar.GetSimVarValue("L:SALTY_ATM_SET", "bool");
+ let selectedTempCell = SimVar.GetSimVarValue("L:SALTY_ASSUMED_TEMP", "number"); //fmc.getThrustTakeOffTemp();
+ if (!assumedTempSet) {
+ selectedTempCell = "--";
+ }
fmc.onLeftInput[0] = () => {
let value = fmc.inOut;
fmc.clearUserInput();
if (fmc.setThrustTakeOffTemp(value)) {
+ SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", true);
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+ else if (value==FMCMainDisplay.clrValue) {
+ SimVar.SetSimVarValue("L:SALTY_ATM_SET", "bool", false);
FMCThrustLimPage.ShowPage1(fmc);
}
};
- let toN1Cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%";
+ //let tat = SimVar.GetSimVarValue("TOTAL AIR TEMPERATURE", "kelvin");
+ //let oat = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "kelvin");
+ //let theta = tat / oat;
+ //let toN1Cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%";
+ //let clbN1Cell = fmc.getThrustClimbLimit().toFixed(1) + "%";
let oatValue = SimVar.GetSimVarValue("AMBIENT TEMPERATURE", "celsius");
let oatCell = oatValue.toFixed(0) + "°C";
let thrustTOMode = fmc.getThrustTakeOffMode();
let thrustClimbMode = fmc.getThrustCLBMode();
+ let ground = SimVar.GetSimVarValue("L:SALTY_GROUND", "bool"); //Simplane.getIsGrounded();
fmc.onLeftInput[1] = () => {
- fmc.setThrustTakeOffMode(0);
- fmc.setThrustCLBMode(0);
- FMCThrustLimPage.ShowPage1(fmc);
+ if (ground) {
+ fmc.setThrustTakeOffMode(0);
+ fmc.setThrustCLBMode(0);
+ SimVar.SetSimVarValue("L:SALTY_CLB_THR_ARMED", "bool", true);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustTakeOffMode(0));
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+ else {
+ fmc.setThrustCLBMode(3);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(0));
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+
};
fmc.onLeftInput[2] = () => {
- fmc.setThrustTakeOffMode(1);
- fmc.setThrustCLBMode(1);
- FMCThrustLimPage.ShowPage1(fmc);
+ if (ground) {
+ fmc.setThrustTakeOffMode(1);
+ fmc.setThrustCLBMode(1);
+ SimVar.SetSimVarValue("L:SALTY_CLB_THR_ARMED", "bool", true);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustTakeOffMode(1));
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+ else {
+ fmc.setThrustCLBMode(4);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(1));
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
};
fmc.onLeftInput[3] = () => {
- fmc.setThrustTakeOffMode(2);
- fmc.setThrustCLBMode(2);
- FMCThrustLimPage.ShowPage1(fmc);
+ if (ground) {
+ fmc.setThrustTakeOffMode(2);
+ fmc.setThrustCLBMode(2);
+ SimVar.SetSimVarValue("L:SALTY_CLB_THR_ARMED", "bool", true);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustTakeOffMode(2));
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
+ else {
+ fmc.setThrustCLBMode(5);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(5));
+ FMCThrustLimPage.ShowPage1(fmc);
+ }
};
fmc.onRightInput[1] = () => {
fmc.setThrustCLBMode(0);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(0));
FMCThrustLimPage.ShowPage1(fmc);
};
fmc.onRightInput[2] = () => {
fmc.setThrustCLBMode(1);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(1));
FMCThrustLimPage.ShowPage1(fmc);
};
fmc.onRightInput[3] = () => {
fmc.setThrustCLBMode(2);
+ SimVar.SetSimVarValue("L:SALTY_REF_THR_SET", "bool", true);
+ //SimVar.SetSimVarValue("K:AP_N1_REF_SET", "percent", fmc.getThrustCLBMode(2));
FMCThrustLimPage.ShowPage1(fmc);
};
+ //let toN1Cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%";
+ //let clbN1Cell = fmc.getThrustClimbLimit().toFixed(1) + "%";
+ let N1cell;
fmc.setTemplate([
["THRUST LIM"],
- ["SEL", "TO N1", "OAT"],
- [selectedTempCell, toN1Cell, oatCell],
+ [(ground ? "SEL" : ""), (ground ? "TO N1" : (thrustClimbMode === 3 ? "GA N1" : (thrustClimbMode === 4 ? "CON N1" : (thrustClimbMode === 5 ? "CRZ N1" : (thrustClimbMode === 0 ? "CLB N1" : (thrustClimbMode === 1 ? "CLB 1 N1" : "CLB 2 N1")))))), (ground ? "OAT" : "")],
+ [(ground ? selectedTempCell + "°": ""),(ground ? N1cell = fmc.getThrustTakeOffLimit().toFixed(1) + "%" : N1cell = fmc.getThrustClimbLimit().toFixed(1) + "%"), (ground ? oatCell : "")],
+ [""],
+ [(ground ? (thrustTOMode === 0 ? "<TO <SEL>" : "<TO") : (thrustClimbMode === 3 ? "<GA <SEL>" : "<GA")), (ground ? (thrustClimbMode === 0 ? "<ARM> CLB>" : "CLB>") : (thrustClimbMode === 0 ? "<SEL> CLB>" : "CLB>"))],
+ [(ground ? "TO 1" : "")],
+ [(ground ? (thrustTOMode === 1 ? "<-10% <SEL>" : "<-10%") : (thrustClimbMode === 4 ? "<CON <SEL>" : "<CON")), (ground ? (thrustClimbMode === 1 ? "<ARM> CLB 1>" : "CLB 1>") : (thrustClimbMode === 1) ? "<SEL> CLB 1>" : "CLB 1>")],
+ [(ground ? "TO 2" : "")],
+ [(ground ? (thrustTOMode === 2 ? "<-20% <SEL>" : "<-20%") : (thrustClimbMode === 5 ? "<CRZ <SEL>" : "<CRZ")), (ground ? (thrustClimbMode === 2 ? "<ARM> CLB 2>" : "CLB 2>") : (thrustClimbMode === 2) ? "<SEL> CLB 2>" : "CLB 2>")],
[""],
- ["\" : ""), (thrustClimbMode === 0 ? " " : "") + "CLB>"],
- ["TO 1"],
- ["\<-10%" + (thrustTOMode === 1 ? " " : ""), (thrustClimbMode === 1 ? " " : "") + "CLB 1>"],
- ["TO 2"],
- ["\<-20%" + (thrustTOMode === 2 ? " " : ""), (thrustClimbMode === 2 ? " " : "") + "CLB 2>"],
[""],
- ["\"]
+ ["<INDEX", (ground ? "TAKEOFF>" : "APPROACH>")]
]);
fmc.onLeftInput[5] = () => { B747_8_FMC_InitRefIndexPage.ShowPage1(fmc); };
- fmc.onRightInput[5] = () => { FMCTakeOffPage.ShowPage1(fmc); };
+ fmc.onRightInput[5] = () => { (ground ? FMCTakeOffPage.ShowPage1(fmc) : FMCApproachPage.ShowPage1(fmc)); };
}
}
-//# sourceMappingURL=B747_8_FMC_ThrustLimPage.js.map
\ No newline at end of file
+//# sourceMappingURL=B747_8_FMC_ThrustLimPage.js.map
\ No newline at end of file
diff --git a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js
index 177b9790c..53494d948 100644
--- a/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js
+++ b/salty-747/html_ui/Pages/VCockpit/Instruments/Airliners/B747_8/FMC/MAINT/B747_8_FMC_MAINT_AirlinePol.js
@@ -61,7 +61,7 @@ class FMC_MAINT_AirlinePol {
}
/* RSK3 */
- fmc.onLeftInput[2] = () => {
+ fmc.onRightInput[2] = () => {
let value = fmc.inOut;
fmc.clearUserInput();
SaltyDataStore.set("TO_CLB_AT", value);
@@ -69,7 +69,7 @@ class FMC_MAINT_AirlinePol {
}
/* LSK4 */
- fmc.onLeftInput[2] = () => {
+ fmc.onLeftInput[3] = () => {
let value = fmc.inOut;
fmc.clearUserInput();
SaltyDataStore.set("TO_THR_REDUCTION", value);
@@ -77,7 +77,7 @@ class FMC_MAINT_AirlinePol {
}
/* RSK4 */
- fmc.onLeftInput[2] = () => {
+ fmc.onRightInput[3] = () => {
let value = fmc.inOut;
fmc.clearUserInput();
SaltyDataStore.set("TO_CLB_BY", value);