fgSetInt("/sim/log-level", SG_WARN);
// Features
+ fgSetBool("/sim/hud/antialiased", false);
+ fgSetBool("/sim/hud/enable3d", true);
fgSetBool("/sim/hud/visibility", false);
fgSetBool("/sim/panel/visibility", true);
fgSetBool("/sim/sound/audible", true);
- fgSetBool("/sim/hud/antialiased", false);
// Flight Model options
fgSetString("/sim/flight-model", "jsb");
fgSetBool("/sim/rendering/skyblend", true);
fgSetBool("/sim/rendering/textures", true);
fgSetBool("/sim/rendering/wireframe", false);
+ fgSetBool("/sim/rendering/horizon-effect", false);
+ fgSetBool("/sim/rendering/enhanced-lighting", false);
fgSetBool("/sim/rendering/distance-attenuation", false);
fgSetInt("/sim/startup/xsize", 800);
fgSetInt("/sim/startup/ysize", 600);
}
-
static bool
parse_wind (const string &wind, double * min_hdg, double * max_hdg,
double * speed, double * gust)
static void
setup_wind (double min_hdg, double max_hdg, double speed, double gust)
{
+ // Initialize to a reasonable state
fgDefaultWeatherValue("wind-from-heading-deg", min_hdg);
fgDefaultWeatherValue("wind-speed-kt", speed);
SG_LOG(SG_GENERAL, SG_INFO, "WIND: " << min_hdg << '@' <<
speed << " knots" << endl);
+ // Now, add some variety to the layers
+ min_hdg += 10;
+ if (min_hdg > 360)
+ min_hdg -= 360;
+ speed *= 1.2;
+ fgSetDouble("/environment/config/boundary/entry[1]/wind-from-heading-deg",
+ min_hdg);
+ fgSetDouble("/environment/config/boundary/entry[1]/wind-speed-kt",
+ speed);
+
+ min_hdg += 20;
+ if (min_hdg > 360)
+ min_hdg -= 360;
+ speed *= 1.5;
+ fgSetDouble("/environment/config/aloft/entry[0]/wind-from-heading-deg",
+ min_hdg);
+ fgSetDouble("/environment/config/aloft/entry[0]/wind-speed-kt",
+ speed);
+
+ min_hdg += 10;
+ if (min_hdg > 360)
+ min_hdg -= 360;
+ speed *= 1.2;
+ fgSetDouble("/environment/config/aloft/entry[1]/wind-from-heading-deg",
+ min_hdg);
+ fgSetDouble("/environment/config/aloft/entry[1]/wind-speed-kt",
+ speed);
+
+ min_hdg += 10;
+ if (min_hdg > 360)
+ min_hdg -= 360;
+ speed *= 1.2;
+ fgSetDouble("/environment/config/aloft/entry[2]/wind-from-heading-deg",
+ min_hdg);
+ fgSetDouble("/environment/config/aloft/entry[2]/wind-speed-kt",
+ speed);
+
#ifdef FG_WEATHERCM
// convert to fps
speed *= SG_NM_TO_METER * SG_METER_TO_FEET * (1.0/3600);
static int
fgOptTurbulence( const char *arg)
{
- fgDefaultWeatherValue("turbulence-norm", atof(arg));
+ fgDefaultWeatherValue("turbulence/magnitude-norm", atof(arg));
return FG_OPTIONS_OK;
}
return FG_OPTIONS_OK;
}
+static bool
+parse_colon (const string &s, double * val1, double * val2)
+{
+ string::size_type pos = s.find(':');
+ if (pos == string::npos) {
+ *val2 = atof(s);
+ return false;
+ } else {
+ *val1 = atof(s.substr(0, pos).c_str());
+ *val2 = atof(s.substr(pos+1).c_str());
+ return true;
+ }
+}
+
+
+static int
+fgOptNAV1( const char * arg )
+{
+ double radial, freq;
+ if (parse_colon(arg, &radial, &freq))
+ fgSetDouble("/radios/nav[0]/radials/selected-deg", radial);
+ fgSetDouble("/radios/nav[0]/frequencies/selected-mhz", freq);
+ return FG_OPTIONS_OK;
+}
+
+static int
+fgOptNAV2( const char * arg )
+{
+ double radial, freq;
+ if (parse_colon(arg, &radial, &freq))
+ fgSetDouble("/radios/nav[1]/radials/selected-deg", radial);
+ fgSetDouble("/radios/nav[1]/frequencies/selected-mhz", freq);
+ return FG_OPTIONS_OK;
+}
+
+static int
+fgOptADF( const char * arg )
+{
+ double rot, freq;
+ if (parse_colon(arg, &rot, &freq))
+ fgSetDouble("/radios/kr-87/inputs/rotation-deg", rot);
+ fgSetDouble("/radios/kr-87/outputs/selected-khz", freq);
+ return FG_OPTIONS_OK;
+}
+
+static int
+fgOptDME( const char *arg )
+{
+ string opt = arg;
+ if (opt == "nav1") {
+ fgSetInt("/instrumentation/dme/switch-position", 1);
+ fgSetString("/instrumentation/dme/frequencies/source",
+ "/radios/nav[0]/frequencies/selected-mhz");
+ } else if (opt == "nav2") {
+ fgSetInt("/instrumentation/dme/switch-position", 3);
+ fgSetString("/instrumentation/dme/frequencies/source",
+ "/radios/nav[1]/frequencies/selected-mhz");
+ } else {
+ fgSetInt("/instrumentation/dme/switch-position", 2);
+ fgSetString("/instrumentation/dme/frequencies/source",
+ "/instrumentation/dme/frequencies/selected-mhz");
+ fgSetString("/instrumentation/dme/frequencies/selected-mhz", arg);
+ }
+ return FG_OPTIONS_OK;
+}
+
static map<string,size_t> fgOptionMap;
/*
{"enable-fuel-freeze", false, OPTION_BOOL, "/sim/freeze/fuel", true, "", 0 },
{"disable-clock-freeze", false, OPTION_BOOL, "/sim/freeze/clock", false, "", 0 },
{"enable-clock-freeze", false, OPTION_BOOL, "/sim/freeze/clock", true, "", 0 },
+ {"disable-hud-3d", false, OPTION_BOOL, "/sim/hud/enable3d", false, "", 0 },
+ {"enable-hud-3d", false, OPTION_BOOL, "/sim/hud/enable3d", true, "", 0 },
{"disable-anti-alias-hud", false, OPTION_BOOL, "/sim/hud/antialiased", false, "", 0 },
{"enable-anti-alias-hud", false, OPTION_BOOL, "/sim/hud/antialiased", true, "", 0 },
{"control", true, OPTION_STRING, "/sim/control-mode", false, "", 0 },
{"in-air", false, OPTION_BOOL, "/sim/presets/onground", false, "", 0 },
{"fog-disable", false, OPTION_STRING, "/sim/rendering/fog", false, "disabled", 0 },
{"fog-fastest", false, OPTION_STRING, "/sim/rendering/fog", false, "fastest", 0 },
- {"fog-nicest", false, OPTION_STRING, "/sim/fog", false, "nicest", 0 },
- {"disable-distance-attenuation", false, OPTION_BOOL, "/environment/distance-attenuation", false, "", 0 },
- {"enable-distance-attenuation", false, OPTION_BOOL, "/environment/distance-attenuation", true, "", 0 },
+ {"fog-nicest", false, OPTION_STRING, "/sim/rendering/fog", false, "nicest", 0 },
+ {"disable-horizon-effect", false, OPTION_BOOL, "/sim/rendering/horizon-effect", false, "", 0 },
+ {"enable-horizon-effect", false, OPTION_BOOL, "/sim/rendering/horizon-effect", true, "", 0 },
+ {"disable-enhanced-lighting", false, OPTION_BOOL, "/sim/rendering/enhanced-lighting", false, "", 0 },
+ {"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-clouds", false, OPTION_BOOL, "/environment/clouds/status", false, "", 0 },
{"enable-clouds", false, OPTION_BOOL, "/environment/clouds/status", true, "", 0 },
#ifdef FG_USE_CLOUDS_3D
{"flight-plan", true, OPTION_FUNC, "", false, "", fgOptFlightPlan },
{"config", true, OPTION_FUNC, "", false, "", fgOptConfig },
{"aircraft", true, OPTION_STRING, "/sim/aircraft", false, "", 0 },
+ {"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 },
+ {"nav2", true, OPTION_FUNC, "", false, "", fgOptNAV2 },
+ {"adf", true, OPTION_FUNC, "", false, "", fgOptADF },
+ {"dme", true, OPTION_FUNC, "", false, "", fgOptDME },
{0}
};