1
0
Fork 0

Updates to go along with SGTime tweaks in SimGear.

This commit is contained in:
curt 2000-07-07 17:27:37 +00:00
parent 0ffa19cd32
commit f9b28c103d
7 changed files with 72 additions and 18 deletions

View file

@ -36,6 +36,7 @@ fgfs_SOURCES = \
bfi.cxx bfi.hxx \ bfi.cxx bfi.hxx \
fg_init.cxx fg_init.hxx \ fg_init.cxx fg_init.hxx \
fg_io.cxx fg_io.hxx \ fg_io.cxx fg_io.hxx \
globals.cxx globals.hxx \
keyboard.cxx keyboard.hxx \ keyboard.cxx keyboard.hxx \
options.cxx options.hxx \ options.cxx options.hxx \
save.cxx save.hxx \ save.cxx save.hxx \

View file

@ -54,6 +54,7 @@
# include <Weather/weather.hxx> # include <Weather/weather.hxx>
#endif #endif
#include "globals.hxx"
#include "options.hxx" #include "options.hxx"
#include "save.hxx" #include "save.hxx"
#include "fg_init.hxx" #include "fg_init.hxx"
@ -393,13 +394,12 @@ FGBFI::setTimeGMT (time_t time)
current_options.set_time_offset_type(SG_TIME_GMT_ABSOLUTE); current_options.set_time_offset_type(SG_TIME_GMT_ABSOLUTE);
SGTime::cur_time_params->init( cur_fdm_state->get_Longitude(), SGTime::cur_time_params->init( cur_fdm_state->get_Longitude(),
cur_fdm_state->get_Latitude(), cur_fdm_state->get_Latitude(),
current_options.get_fg_root(), current_options.get_fg_root() );
current_options.get_time_offset(),
current_options.get_time_offset_type() );
SGTime::cur_time_params->update( cur_fdm_state->get_Longitude(), SGTime::cur_time_params->update( cur_fdm_state->get_Longitude(),
cur_fdm_state->get_Latitude(), cur_fdm_state->get_Latitude(),
cur_fdm_state->get_Altitude() cur_fdm_state->get_Altitude()
* FEET_TO_METER ); * FEET_TO_METER,
globals->get_warp() );
needReinit(); needReinit();
} }

View file

@ -245,7 +245,6 @@ bool fgInitGeneral( void ) {
// Returns non-zero if a problem encountered. // Returns non-zero if a problem encountered.
bool fgInitSubsystems( void ) { bool fgInitSubsystems( void ) {
fgLIGHT *l = &cur_light_params; fgLIGHT *l = &cur_light_params;
SGTime *t = SGTime::cur_time_params;
FG_LOG( FG_GENERAL, FG_INFO, "Initialize Subsystems"); FG_LOG( FG_GENERAL, FG_INFO, "Initialize Subsystems");
FG_LOG( FG_GENERAL, FG_INFO, "========== =========="); FG_LOG( FG_GENERAL, FG_INFO, "========== ==========");

View file

@ -67,6 +67,7 @@
#endif #endif
#include "bfi.hxx" #include "bfi.hxx"
#include "globals.hxx"
#include "keyboard.hxx" #include "keyboard.hxx"
#include "options.hxx" #include "options.hxx"
#include "save.hxx" #include "save.hxx"
@ -194,14 +195,14 @@ void GLUTkey(unsigned char k, int x, int y) {
fgHUDInit2(&current_aircraft); fgHUDInit2(&current_aircraft);
return; return;
case 77: // M key case 77: // M key
t->adjust_warp(-60); globals->inc_warp( -60 );
fgUpdateSkyAndLightingParams(); fgUpdateSkyAndLightingParams();
return; return;
case 80: // P key case 80: // P key
current_options.toggle_panel(); current_options.toggle_panel();
break; break;
case 84: // T key case 84: // T key
t->adjust_warp_delta(-30); globals->inc_warp_delta( -30 );
fgUpdateSkyAndLightingParams(); fgUpdateSkyAndLightingParams();
return; return;
case 87: // W key case 87: // W key
@ -339,7 +340,7 @@ void GLUTkey(unsigned char k, int x, int y) {
fgHUDInit(&current_aircraft); // normal HUD fgHUDInit(&current_aircraft); // normal HUD
return; return;
case 109: // m key case 109: // m key
t->adjust_warp (+60); globals->inc_warp( 60 );
fgUpdateSkyAndLightingParams(); fgUpdateSkyAndLightingParams();
return; return;
case 112: // p key case 112: // p key
@ -367,7 +368,7 @@ void GLUTkey(unsigned char k, int x, int y) {
} }
return; return;
case 116: // t key case 116: // t key
t->adjust_warp_delta (+30); globals->inc_warp_delta( 30 );
fgUpdateSkyAndLightingParams(); fgUpdateSkyAndLightingParams();
return; return;
case 118: // v key case 118: // v key

View file

@ -73,6 +73,7 @@
#include <simgear/misc/fgpath.hxx> #include <simgear/misc/fgpath.hxx>
#include <simgear/sky/sky.hxx> #include <simgear/sky/sky.hxx>
#include <simgear/timing/sg_time.hxx> #include <simgear/timing/sg_time.hxx>
#include <simgear/timing/lowleveltime.h>
#include <Include/general.hxx> #include <Include/general.hxx>
@ -105,6 +106,7 @@
#include "bfi.hxx" #include "bfi.hxx"
#include "fg_init.hxx" #include "fg_init.hxx"
#include "fg_io.hxx" #include "fg_io.hxx"
#include "globals.hxx"
#include "keyboard.hxx" #include "keyboard.hxx"
#include "options.hxx" #include "options.hxx"
#include "splash.hxx" #include "splash.hxx"
@ -796,11 +798,16 @@ static void fgMainLoop( void ) {
cur_fdm_state->get_Altitude() * FEET_TO_METER); */ cur_fdm_state->get_Altitude() * FEET_TO_METER); */
// update "time" // update "time"
if ( globals->get_warp_delta() != 0 ) {
globals->inc_warp( globals->get_warp_delta() );
}
t->update( cur_fdm_state->get_Longitude(), t->update( cur_fdm_state->get_Longitude(),
cur_fdm_state->get_Latitude(), cur_fdm_state->get_Latitude(),
cur_fdm_state->get_Altitude()* FEET_TO_METER ); cur_fdm_state->get_Altitude()* FEET_TO_METER,
globals->get_warp() );
if ( t->get_warp_delta() != 0 ) { if ( globals->get_warp_delta() != 0 ) {
fgUpdateSkyAndLightingParams(); fgUpdateSkyAndLightingParams();
} }
@ -1277,6 +1284,9 @@ int main( int argc, char **argv ) {
aircraft_dir = ""; // Initialize the Aircraft directory to "" (UIUC) aircraft_dir = ""; // Initialize the Aircraft directory to "" (UIUC)
// needs to happen before we parse command line options
globals = new FGGlobals;
// Load the configuration parameters // Load the configuration parameters
if ( !fgInitConfig(argc, argv) ) { if ( !fgInitConfig(argc, argv) ) {
FG_LOG( FG_GENERAL, FG_ALERT, "Config option parsing failed ..." ); FG_LOG( FG_GENERAL, FG_ALERT, "Config option parsing failed ..." );
@ -1310,11 +1320,53 @@ int main( int argc, char **argv ) {
// SGTime::cur_time_params->init( cur_fdm_state->get_Longitude(), // SGTime::cur_time_params->init( cur_fdm_state->get_Longitude(),
// cur_fdm_state->get_Latitude() ); // cur_fdm_state->get_Latitude() );
// SGTime::cur_time_params->update( cur_fdm_state->get_Longitude() ); // SGTime::cur_time_params->update( cur_fdm_state->get_Longitude() );
SGTime::cur_time_params->init( 0.0, 0.0, SGTime::cur_time_params->init( 0.0, 0.0, current_options.get_fg_root() );
current_options.get_fg_root(),
current_options.get_time_offset(), // Handle user specified offsets
current_options.get_time_offset_type() ); // current_options.get_time_offset(),
SGTime::cur_time_params->update( 0.0, 0.0, 0.0 ); // current_options.get_time_offset_type() );
time_t cur_time = SGTime::cur_time_params->get_cur_time();
time_t currGMT = SGTime::cur_time_params->get_gmt( gmtime(&cur_time) );
time_t systemLocalTime = SGTime::cur_time_params->get_gmt( localtime(&cur_time) );
time_t aircraftLocalTime = SGTime::cur_time_params->get_gmt( fgLocaltime(&cur_time, SGTime::cur_time_params->get_zonename() ) );
// Okay, we now have six possible scenarios
switch ( current_options.get_time_offset_type() ) {
case SG_TIME_SYS_OFFSET:
globals->set_warp( current_options.get_time_offset() );
break;
case SG_TIME_GMT_OFFSET:
globals->set_warp( current_options.get_time_offset() -
(currGMT - systemLocalTime) );
break;
case SG_TIME_LAT_OFFSET:
globals->set_warp( current_options.get_time_offset() -
(aircraftLocalTime - systemLocalTime) );
break;
case SG_TIME_SYS_ABSOLUTE:
globals->set_warp( current_options.get_time_offset() - cur_time );
//printf("warp = %d\n", warp);
break;
case SG_TIME_GMT_ABSOLUTE:
globals->set_warp( current_options.get_time_offset() - currGMT );
break;
case SG_TIME_LAT_ABSOLUTE:
globals->set_warp( current_options.get_time_offset() -
(aircraftLocalTime - systemLocalTime) -
cur_time );
break;
default:
FG_LOG( FG_GENERAL, FG_ALERT, "Unsupported type" );
exit( -1 );
}
FG_LOG( FG_GENERAL, FG_INFO, "After time init, warp = "
<< globals->get_warp() );
globals->set_warp_delta( 0 );
SGTime::cur_time_params->update( 0.0, 0.0, 0.0, globals->get_warp() );
// Do some quick general initializations // Do some quick general initializations
if( !fgInitGeneral()) { if( !fgInitGeneral()) {

View file

@ -258,6 +258,7 @@ void fgUpdateSunPos( void ) {
v = &current_view; v = &current_view;
FG_LOG( FG_EVENT, FG_INFO, " Updating Sun position" ); FG_LOG( FG_EVENT, FG_INFO, " Updating Sun position" );
FG_LOG( FG_EVENT, FG_INFO, " Gst = " << t->getGst() );
fgSunPositionGST(t->getGst(), &l->sun_lon, &sun_gd_lat); fgSunPositionGST(t->getGst(), &l->sun_lon, &sun_gd_lat);

View file

@ -57,8 +57,8 @@ typedef float WeatherPrecision;
#define MINIMUM_WEATHER_VISIBILITY 10.0 /* metres */ #define MINIMUM_WEATHER_VISIBILITY 10.0 /* metres */
#define DEFAULT_WEATHER_VISIBILITY 32000.0 /* metres */ #define DEFAULT_WEATHER_VISIBILITY 32000.0 /* metres */
//prefered way the database is working //prefered way the database is working
// #define PREFERED_WORKING_TYPE default_mode #define PREFERED_WORKING_TYPE default_mode
#define PREFERED_WORKING_TYPE use_internet // #define PREFERED_WORKING_TYPE use_internet
#define FG_WEATHER_DEFAULT_TEMPERATURE (15.0+273.16) /*15°C or 288.16°K*/ #define FG_WEATHER_DEFAULT_TEMPERATURE (15.0+273.16) /*15°C or 288.16°K*/
#define FG_WEATHER_DEFAULT_VAPORPRESSURE (0.0) /*in Pascal 1 Pa = N/m^2*/ #define FG_WEATHER_DEFAULT_VAPORPRESSURE (0.0) /*in Pascal 1 Pa = N/m^2*/