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
|
||||
|
||||
|
||||
John Check <j4strngs@rockfish.net>
|
||||
Cloud textures
|
||||
|
||||
|
||||
Oliver Delise <delise@mail.isis.de>
|
||||
FAQ Maintainer, Documentation, Public Relations.
|
||||
Working on adding some networking / multi-user support.
|
||||
|
|
|
@ -64,10 +64,9 @@ fgfs_LDADD = \
|
|||
$(top_builddir)/src/Objects/libObjects.a \
|
||||
$(top_builddir)/src/Time/libTime.a \
|
||||
$(WEATHER_LIBS) \
|
||||
$(top_builddir)/src/Sky/libSky.a \
|
||||
$(top_builddir)/src/Joystick/libJoystick.a \
|
||||
$(SERIAL_LIBS) \
|
||||
-lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \
|
||||
-lsgsky -lsgscreen -lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc \
|
||||
-lplibpu -lplibfnt -lplibssg -lplibsg \
|
||||
-lmk4 -lz \
|
||||
$(opengl_LIBS) \
|
||||
|
|
134
src/Main/bfi.cxx
134
src/Main/bfi.cxx
|
@ -34,6 +34,7 @@
|
|||
#include <simgear/constants.h>
|
||||
#include <simgear/debug/logstream.hxx>
|
||||
#include <simgear/math/fg_types.hxx>
|
||||
#include <simgear/misc/props.hxx>
|
||||
|
||||
#include <Aircraft/aircraft.hxx>
|
||||
#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.
|
||||
*
|
||||
|
@ -134,6 +260,7 @@ FGBFI::reinit ()
|
|||
|
||||
setTargetAirport("");
|
||||
cout << "Target airport is " << current_options.get_airport_id() << endl;
|
||||
|
||||
fgReInitSubsystems();
|
||||
|
||||
// FIXME: this is wrong.
|
||||
|
@ -393,9 +520,10 @@ FGBFI::getAGL ()
|
|||
void
|
||||
FGBFI::setAltitude (double altitude)
|
||||
{
|
||||
current_options.set_altitude(altitude * FEET_TO_METER);
|
||||
current_aircraft.fdm_state->set_Altitude(altitude);
|
||||
needReinit();
|
||||
fgFDMForceAltitude(getFlightModel(), altitude * FEET_TO_METER);
|
||||
// current_options.set_altitude(altitude * FEET_TO_METER);
|
||||
// current_aircraft.fdm_state->set_Altitude(altitude);
|
||||
// needReinit();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -46,6 +46,9 @@ class FGBFI
|
|||
{
|
||||
public:
|
||||
|
||||
// Initialize before first use.
|
||||
static void init ();
|
||||
|
||||
// Reinit if necessary.
|
||||
static void update ();
|
||||
|
||||
|
|
|
@ -92,6 +92,7 @@
|
|||
#include "fg_io.hxx"
|
||||
#include "options.hxx"
|
||||
#include "views.hxx"
|
||||
#include "bfi.hxx"
|
||||
|
||||
#if defined(FX) && defined(XMESA)
|
||||
#include <GL/xmesa.h>
|
||||
|
@ -582,6 +583,9 @@ bool fgInitSubsystems( void ) {
|
|||
// Initialize the 2D panel.
|
||||
current_panel = fgCreateSmallSinglePropPanel(0, 0, 1024, 768);
|
||||
|
||||
// Initialize the BFI
|
||||
FGBFI::init();
|
||||
|
||||
FG_LOG( FG_GENERAL, FG_INFO, endl);
|
||||
|
||||
return true;
|
||||
|
|
|
@ -70,6 +70,7 @@
|
|||
#include <simgear/math/polar3d.hxx>
|
||||
#include <simgear/math/fg_random.h>
|
||||
#include <simgear/misc/fgpath.hxx>
|
||||
#include <simgear/sky/sky.hxx>
|
||||
|
||||
#include <Include/general.hxx>
|
||||
|
||||
|
@ -89,7 +90,6 @@
|
|||
#endif
|
||||
#include <Scenery/scenery.hxx>
|
||||
#include <Scenery/tilemgr.hxx>
|
||||
#include <Sky/sky.hxx>
|
||||
#include <Time/event.hxx>
|
||||
#include <Time/fg_time.hxx>
|
||||
#include <Time/fg_timer.hxx>
|
||||
|
|
|
@ -41,6 +41,7 @@ bool global_fullscreen = true;
|
|||
#include <simgear/constants.h>
|
||||
#include <simgear/debug/logstream.hxx>
|
||||
#include <simgear/misc/fgstream.hxx>
|
||||
#include <simgear/misc/props.hxx>
|
||||
|
||||
#include <Include/general.hxx>
|
||||
#include <Cockpit/cockpit.hxx>
|
||||
|
@ -821,6 +822,18 @@ int fgOPTIONS::parse_option( const string& arg ) {
|
|||
} else if ( arg.find( "--net-id=") != string::npos ) {
|
||||
net_id = arg.substr( 9 );
|
||||
#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 {
|
||||
FG_LOG( FG_GENERAL, FG_ALERT, "Unknown option '" << arg << "'" );
|
||||
return FG_OPTIONS_ERROR;
|
||||
|
|
|
@ -25,7 +25,6 @@ SUBDIRS = \
|
|||
$(NETWORK_DIRS) \
|
||||
Objects \
|
||||
Scenery \
|
||||
Sky \
|
||||
Time \
|
||||
$(WEATHER_DIR) \
|
||||
Main
|
||||
|
|
Loading…
Reference in a new issue