]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.cxx
Turn back to default lighting when specular-highlight gets disabled
[flightgear.git] / src / Main / options.cxx
index 47b6847ad508099eb143b6175e569743f6196857..6e47f04337dd6666586a48581aed5e7e93c575ca 100644 (file)
@@ -207,6 +207,7 @@ fgSetDefaults ()
     fgSetBool("/sim/rendering/horizon-effect", false);
     fgSetBool("/sim/rendering/enhanced-lighting", false);
     fgSetBool("/sim/rendering/distance-attenuation", false);
+    fgSetBool("/sim/rendering/specular-highlight", true);
     fgSetInt("/sim/startup/xsize", 800);
     fgSetInt("/sim/startup/ysize", 600);
     fgSetInt("/sim/rendering/bits-per-pixel", 16);
@@ -1100,6 +1101,27 @@ parse_colon (const string &s, double * val1, double * val2)
 }
 
 
+static int
+fgOptFailure( const char * arg )
+{
+    string a = arg;
+    if (a == "pitot") {
+        fgSetBool("/systems/pitot/serviceable", false);
+    } else if (a == "static") {
+        fgSetBool("/systems/static/serviceable", false);
+    } else if (a == "vacuum") {
+        fgSetBool("/systems/vacuum/serviceable", false);
+    } else if (a == "electrical") {
+        fgSetBool("/systems/electrical/serviceable", false);
+    } else {
+        SG_LOG(SG_INPUT, SG_ALERT, "Unknown failure mode: " << a);
+        return FG_OPTIONS_ERROR;
+    }
+
+    return FG_OPTIONS_OK;
+}
+
+
 static int
 fgOptNAV1( const char * arg )
 {
@@ -1266,6 +1288,8 @@ struct OptionDesc {
     {"enable-enhanced-lighting",     false, OPTION_BOOL,   "/sim/rendering/enhanced-lighting", true, "", 0 },
     {"disable-distance-attenuation", false, OPTION_BOOL,   "/sim/rendering/distance-attenuation", false, "", 0 },
     {"enable-distance-attenuation",  false, OPTION_BOOL,   "/sim/rendering/distance-attenuation", true, "", 0 },
+    {"disable-specular-highlight",   false, OPTION_BOOL,   "/sim/rendering/specular-highlight", false, "", 0 },
+    {"enable-specular-highlight",    false, OPTION_BOOL,   "/sim/rendering/specular-highlight", true, "", 0 },
     {"disable-clouds",               false, OPTION_BOOL,   "/environment/clouds/status", false, "", 0 },
     {"enable-clouds",                false, OPTION_BOOL,   "/environment/clouds/status", true, "", 0 },
 #ifdef FG_USE_CLOUDS_3D
@@ -1339,6 +1363,7 @@ struct OptionDesc {
     {"flight-plan",                  true,  OPTION_FUNC,   "", false, "", fgOptFlightPlan },
     {"config",                       true,  OPTION_FUNC,   "", false, "", fgOptConfig },
     {"aircraft",                     true,  OPTION_STRING, "/sim/aircraft", false, "", 0 },
+    {"failure",                      true,  OPTION_FUNC,   "", false, "", fgOptFailure },
     {"com1",                         true,  OPTION_DOUBLE, "/radios/comm[0]/frequencies/selected-mhz", false, "", 0 },
     {"com2",                         true,  OPTION_DOUBLE, "/radios/comm[1]/frequencies/selected-mhz", false, "", 0 },
     {"nav1",                         true,  OPTION_FUNC,   "", false, "", fgOptNAV1 },