Moved sky code over to simgear.
Added David Megginsons property manager.
This commit is contained in:
parent
8842829571
commit
efe5654b8b
8 changed files with 157 additions and 7 deletions
4
Thanks
4
Thanks
|
@ -76,6 +76,10 @@ Didier Chauveau <chauveau@math.univ-mlv.fr>
|
||||||
http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html
|
http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html
|
||||||
|
|
||||||
|
|
||||||
|
John Check <j4strngs@rockfish.net>
|
||||||
|
Cloud textures
|
||||||
|
|
||||||
|
|
||||||
Oliver Delise <delise@mail.isis.de>
|
Oliver Delise <delise@mail.isis.de>
|
||||||
FAQ Maintainer, Documentation, Public Relations.
|
FAQ Maintainer, Documentation, Public Relations.
|
||||||
Working on adding some networking / multi-user support.
|
Working on adding some networking / multi-user support.
|
||||||
|
|
|
@ -64,10 +64,9 @@ fgfs_LDADD = \
|
||||||
$(top_builddir)/src/Objects/libObjects.a \
|
$(top_builddir)/src/Objects/libObjects.a \
|
||||||
$(top_builddir)/src/Time/libTime.a \
|
$(top_builddir)/src/Time/libTime.a \
|
||||||
$(WEATHER_LIBS) \
|
$(WEATHER_LIBS) \
|
||||||
$(top_builddir)/src/Sky/libSky.a \
|
|
||||||
$(top_builddir)/src/Joystick/libJoystick.a \
|
$(top_builddir)/src/Joystick/libJoystick.a \
|
||||||
$(SERIAL_LIBS) \
|
$(SERIAL_LIBS) \
|
||||||
-lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \
|
-lsgsky -lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \
|
||||||
-lplibpu -lplibfnt -lplibssg -lplibsg \
|
-lplibpu -lplibfnt -lplibssg -lplibsg \
|
||||||
-lmk4 -lz \
|
-lmk4 -lz \
|
||||||
$(opengl_LIBS) \
|
$(opengl_LIBS) \
|
||||||
|
|
134
src/Main/bfi.cxx
134
src/Main/bfi.cxx
|
@ -34,6 +34,7 @@
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/math/fg_types.hxx>
|
#include <simgear/math/fg_types.hxx>
|
||||||
|
#include <simgear/misc/props.hxx>
|
||||||
|
|
||||||
#include <Aircraft/aircraft.hxx>
|
#include <Aircraft/aircraft.hxx>
|
||||||
#include <FDM/UIUCModel/uiuc_aircraftdir.h>
|
#include <FDM/UIUCModel/uiuc_aircraftdir.h>
|
||||||
|
@ -76,6 +77,131 @@ bool FGBFI::_needReinit = false;
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialize the BFI by binding its functions to properties.
|
||||||
|
*
|
||||||
|
* TODO: perhaps these should migrate into the individual modules
|
||||||
|
* (i.e. they should register themselves).
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
FGBFI::init ()
|
||||||
|
{
|
||||||
|
FG_LOG(FG_GENERAL, FG_INFO, "Starting BFI init");
|
||||||
|
// Simulation
|
||||||
|
current_properties.tieInt("/sim/flight-model",
|
||||||
|
getFlightModel, setFlightModel);
|
||||||
|
// current_properties.tieString("/sim/aircraft",
|
||||||
|
// getAircraft, setAircraft);
|
||||||
|
// TODO: timeGMT
|
||||||
|
current_properties.tieBool("/sim/hud/visibility",
|
||||||
|
getHUDVisible, setHUDVisible);
|
||||||
|
current_properties.tieBool("/sim/panel/visibility",
|
||||||
|
getPanelVisible, setPanelVisible);
|
||||||
|
|
||||||
|
// Position
|
||||||
|
current_properties.tieDouble("/position/latitude",
|
||||||
|
getLatitude, setLatitude);
|
||||||
|
current_properties.tieDouble("/position/longitude",
|
||||||
|
getLongitude, setLongitude);
|
||||||
|
current_properties.tieDouble("/position/altitude",
|
||||||
|
getAltitude, setAltitude);
|
||||||
|
current_properties.tieDouble("/position/altitude-agl",
|
||||||
|
getAGL, 0);
|
||||||
|
|
||||||
|
// Orientation
|
||||||
|
current_properties.tieDouble("/orientation/heading",
|
||||||
|
getHeading, setHeading);
|
||||||
|
current_properties.tieDouble("/orientation/heading-magnetic",
|
||||||
|
getHeadingMag, 0);
|
||||||
|
current_properties.tieDouble("/orientation/pitch",
|
||||||
|
getPitch, setPitch);
|
||||||
|
current_properties.tieDouble("/orientation/roll",
|
||||||
|
getRoll, setRoll);
|
||||||
|
|
||||||
|
// Velocities
|
||||||
|
current_properties.tieDouble("/velocities/airspeed",
|
||||||
|
getAirspeed, 0);
|
||||||
|
current_properties.tieDouble("/velocities/side-slip",
|
||||||
|
getSideSlip, 0);
|
||||||
|
current_properties.tieDouble("/velocities/vertical-speed",
|
||||||
|
getVerticalSpeed, 0);
|
||||||
|
current_properties.tieDouble("/velocities/speed-north",
|
||||||
|
getSpeedNorth, setSpeedNorth);
|
||||||
|
current_properties.tieDouble("/velocities/speed-east",
|
||||||
|
getSpeedEast, setSpeedEast);
|
||||||
|
current_properties.tieDouble("/velocities/speed-down",
|
||||||
|
getSpeedDown, setSpeedDown);
|
||||||
|
|
||||||
|
// Controls
|
||||||
|
current_properties.tieDouble("/controls/throttle",
|
||||||
|
getThrottle, setThrottle);
|
||||||
|
current_properties.tieDouble("/controls/flaps",
|
||||||
|
getFlaps, setFlaps);
|
||||||
|
current_properties.tieDouble("/controls/aileron",
|
||||||
|
getAileron, setAileron);
|
||||||
|
current_properties.tieDouble("/controls/rudder",
|
||||||
|
getRudder, setRudder);
|
||||||
|
current_properties.tieDouble("/controls/elevator",
|
||||||
|
getElevator, setElevator);
|
||||||
|
current_properties.tieDouble("/controls/elevator-trim",
|
||||||
|
getElevatorTrim, setElevatorTrim);
|
||||||
|
current_properties.tieDouble("/controls/brake",
|
||||||
|
getBrake, setBrake);
|
||||||
|
|
||||||
|
// Autopilot
|
||||||
|
current_properties.tieBool("/autopilot/locks/altitude",
|
||||||
|
getAPAltitudeLock, setAPAltitudeLock);
|
||||||
|
current_properties.tieDouble("/autopilot/settings/altitude",
|
||||||
|
getAPAltitude, setAPAltitude);
|
||||||
|
current_properties.tieBool("/autopilot/locks/heading",
|
||||||
|
getAPHeadingLock, setAPHeadingLock);
|
||||||
|
current_properties.tieDouble("/autopilot/settings/heading-magnetic",
|
||||||
|
getAPHeadingMag, setAPHeadingMag);
|
||||||
|
current_properties.tieBool("/autopilot/locks/nav1",
|
||||||
|
getAPNAV1Lock, setAPNAV1Lock);
|
||||||
|
|
||||||
|
// Radio navigation
|
||||||
|
current_properties.tieDouble("/radios/nav1/frequencies/selected",
|
||||||
|
getNAV1Freq, setNAV1Freq);
|
||||||
|
current_properties.tieDouble("/radios/nav1/frequencies/standby",
|
||||||
|
getNAV1AltFreq, setNAV1AltFreq);
|
||||||
|
current_properties.tieDouble("/radios/nav1/radials/actual",
|
||||||
|
getNAV1Radial, 0);
|
||||||
|
current_properties.tieDouble("/radios/nav1/radials/selected",
|
||||||
|
getNAV1SelRadial, setNAV1SelRadial);
|
||||||
|
current_properties.tieDouble("/radios/nav1/dme/distance",
|
||||||
|
getNAV1DistDME, 0);
|
||||||
|
current_properties.tieBool("/radios/nav1/in-range",
|
||||||
|
getNAV1InRange, 0);
|
||||||
|
current_properties.tieBool("/radios/nav1/dme/in-range",
|
||||||
|
getNAV1DMEInRange, 0);
|
||||||
|
|
||||||
|
current_properties.tieDouble("/radios/nav2/frequencies/selected",
|
||||||
|
getNAV2Freq, setNAV2Freq);
|
||||||
|
current_properties.tieDouble("/radios/nav2/frequencies/standby",
|
||||||
|
getNAV2AltFreq, setNAV2AltFreq);
|
||||||
|
current_properties.tieDouble("/radios/nav2/radials/actual",
|
||||||
|
getNAV2Radial, 0);
|
||||||
|
current_properties.tieDouble("/radios/nav2/radials/selected",
|
||||||
|
getNAV2SelRadial, setNAV2SelRadial);
|
||||||
|
current_properties.tieDouble("/radios/nav2/dme/distance",
|
||||||
|
getNAV2DistDME, 0);
|
||||||
|
current_properties.tieBool("/radios/nav2/in-range",
|
||||||
|
getNAV2InRange, 0);
|
||||||
|
current_properties.tieBool("/radios/nav2/dme/in-range",
|
||||||
|
getNAV2DMEInRange, 0);
|
||||||
|
|
||||||
|
current_properties.tieDouble("/radios/adf/frequencies/selected",
|
||||||
|
getADFFreq, setADFFreq);
|
||||||
|
current_properties.tieDouble("/radios/adf/frequencies/standby",
|
||||||
|
getADFAltFreq, setADFAltFreq);
|
||||||
|
current_properties.tieDouble("/radios/adf/rotation",
|
||||||
|
getADFRotation, setADFRotation);
|
||||||
|
|
||||||
|
FG_LOG(FG_GENERAL, FG_INFO, "Ending BFI init");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reinitialize FGFS if required.
|
* Reinitialize FGFS if required.
|
||||||
*
|
*
|
||||||
|
@ -134,6 +260,7 @@ FGBFI::reinit ()
|
||||||
|
|
||||||
setTargetAirport("");
|
setTargetAirport("");
|
||||||
cout << "Target airport is " << current_options.get_airport_id() << endl;
|
cout << "Target airport is " << current_options.get_airport_id() << endl;
|
||||||
|
|
||||||
fgReInitSubsystems();
|
fgReInitSubsystems();
|
||||||
|
|
||||||
// FIXME: this is wrong.
|
// FIXME: this is wrong.
|
||||||
|
@ -393,9 +520,10 @@ FGBFI::getAGL ()
|
||||||
void
|
void
|
||||||
FGBFI::setAltitude (double altitude)
|
FGBFI::setAltitude (double altitude)
|
||||||
{
|
{
|
||||||
current_options.set_altitude(altitude * FEET_TO_METER);
|
fgFDMForceAltitude(getFlightModel(), altitude * FEET_TO_METER);
|
||||||
current_aircraft.fdm_state->set_Altitude(altitude);
|
// current_options.set_altitude(altitude * FEET_TO_METER);
|
||||||
needReinit();
|
// current_aircraft.fdm_state->set_Altitude(altitude);
|
||||||
|
// needReinit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -46,6 +46,9 @@ class FGBFI
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
// Initialize before first use.
|
||||||
|
static void init ();
|
||||||
|
|
||||||
// Reinit if necessary.
|
// Reinit if necessary.
|
||||||
static void update ();
|
static void update ();
|
||||||
|
|
||||||
|
|
|
@ -92,6 +92,7 @@
|
||||||
#include "fg_io.hxx"
|
#include "fg_io.hxx"
|
||||||
#include "options.hxx"
|
#include "options.hxx"
|
||||||
#include "views.hxx"
|
#include "views.hxx"
|
||||||
|
#include "bfi.hxx"
|
||||||
|
|
||||||
#if defined(FX) && defined(XMESA)
|
#if defined(FX) && defined(XMESA)
|
||||||
#include <GL/xmesa.h>
|
#include <GL/xmesa.h>
|
||||||
|
@ -582,6 +583,9 @@ bool fgInitSubsystems( void ) {
|
||||||
// Initialize the 2D panel.
|
// Initialize the 2D panel.
|
||||||
current_panel = fgCreateSmallSinglePropPanel(0, 0, 1024, 768);
|
current_panel = fgCreateSmallSinglePropPanel(0, 0, 1024, 768);
|
||||||
|
|
||||||
|
// Initialize the BFI
|
||||||
|
FGBFI::init();
|
||||||
|
|
||||||
FG_LOG( FG_GENERAL, FG_INFO, endl);
|
FG_LOG( FG_GENERAL, FG_INFO, endl);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -70,6 +70,7 @@
|
||||||
#include <simgear/math/polar3d.hxx>
|
#include <simgear/math/polar3d.hxx>
|
||||||
#include <simgear/math/fg_random.h>
|
#include <simgear/math/fg_random.h>
|
||||||
#include <simgear/misc/fgpath.hxx>
|
#include <simgear/misc/fgpath.hxx>
|
||||||
|
#include <simgear/sky/sky.hxx>
|
||||||
|
|
||||||
#include <Include/general.hxx>
|
#include <Include/general.hxx>
|
||||||
|
|
||||||
|
@ -89,7 +90,6 @@
|
||||||
#endif
|
#endif
|
||||||
#include <Scenery/scenery.hxx>
|
#include <Scenery/scenery.hxx>
|
||||||
#include <Scenery/tilemgr.hxx>
|
#include <Scenery/tilemgr.hxx>
|
||||||
#include <Sky/sky.hxx>
|
|
||||||
#include <Time/event.hxx>
|
#include <Time/event.hxx>
|
||||||
#include <Time/fg_time.hxx>
|
#include <Time/fg_time.hxx>
|
||||||
#include <Time/fg_timer.hxx>
|
#include <Time/fg_timer.hxx>
|
||||||
|
|
|
@ -41,6 +41,7 @@ bool global_fullscreen = true;
|
||||||
#include <simgear/constants.h>
|
#include <simgear/constants.h>
|
||||||
#include <simgear/debug/logstream.hxx>
|
#include <simgear/debug/logstream.hxx>
|
||||||
#include <simgear/misc/fgstream.hxx>
|
#include <simgear/misc/fgstream.hxx>
|
||||||
|
#include <simgear/misc/props.hxx>
|
||||||
|
|
||||||
#include <Include/general.hxx>
|
#include <Include/general.hxx>
|
||||||
#include <Cockpit/cockpit.hxx>
|
#include <Cockpit/cockpit.hxx>
|
||||||
|
@ -821,6 +822,18 @@ int fgOPTIONS::parse_option( const string& arg ) {
|
||||||
} else if ( arg.find( "--net-id=") != string::npos ) {
|
} else if ( arg.find( "--net-id=") != string::npos ) {
|
||||||
net_id = arg.substr( 9 );
|
net_id = arg.substr( 9 );
|
||||||
#endif
|
#endif
|
||||||
|
} else if ( arg.find( "--prop:" ) == 0 ) {
|
||||||
|
string assign = arg.substr(7);
|
||||||
|
int pos = assign.find('=');
|
||||||
|
if (pos == arg.npos || pos == 0) {
|
||||||
|
FG_LOG(FG_GENERAL, FG_ALERT, "Bad property assignment: " << arg);
|
||||||
|
return FG_OPTIONS_ERROR;
|
||||||
|
}
|
||||||
|
string name = assign.substr(0, pos);
|
||||||
|
string value = assign.substr(pos + 1);
|
||||||
|
current_properties.setStringValue(name.c_str(), value);
|
||||||
|
FG_LOG(FG_GENERAL, FG_INFO, "Setting default value of property "
|
||||||
|
<< name << " to \"" << value << '"');
|
||||||
} else {
|
} else {
|
||||||
FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" );
|
FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" );
|
||||||
return FG_OPTIONS_ERROR;
|
return FG_OPTIONS_ERROR;
|
||||||
|
|
|
@ -25,7 +25,6 @@ SUBDIRS = \
|
||||||
$(NETWORK_DIRS) \
|
$(NETWORK_DIRS) \
|
||||||
Objects \
|
Objects \
|
||||||
Scenery \
|
Scenery \
|
||||||
Sky \
|
|
||||||
Time \
|
Time \
|
||||||
$(WEATHER_DIR) \
|
$(WEATHER_DIR) \
|
||||||
Main
|
Main
|
||||||
|
|
Loading…
Reference in a new issue