updateGearState();
_model.iterate();
+}
- // Consume fuel. This is a really simple implementation that
- // assumes all engines draw equally from all tanks in proportion
- // to the amount of fuel stored there. Needs to be fixed, but
- // that has to wait for a decision as to what the property
- // interface will look like.
+void Airplane::consumeFuel(float dt)
+{
+ // This is a really simple implementation that assumes all engines
+ // draw equally from all tanks in proportion to the amount of fuel
+ // stored there. Needs to be fixed, but that has to wait for a
+ // decision as to what the property interface will look like.
int i, outOfFuel = 0;
float fuelFlow = 0, totalFuel = 0.00001; // <-- overflow protection
for(i=0; i<_thrusters.size(); i++)
~Airplane();
void iterate(float dt);
+ void consumeFuel(float dt);
ControlMap* getControlMap();
Model* getModel();
{
getExternalInput(dt);
_airplane.iterate(dt);
+
+ if(fgGetBool("/sim/freeze/fuel") != true)
+ _airplane.consumeFuel(dt);
+
setOutputProperties();
}
bin_PROGRAMS = yasim
-yasim_SOURCES = yasim-test.cpp
+# Link the yasim executable against the individual object files rather
+# than libYASim. The library references other stuff in FlightGear,
+# and some linkers (Irix) do dependency checks per-library instead of
+# per-object.
+#
+# I think that it's permissible to list the same source files more
+# than once in a Makefile.am. Hopefully this doesn't break anything.
-yasim_LDADD = libYASim.a -lsgxml -lsgmisc -lsgdebug
+yasim_SOURCES = yasim-test.cpp \
+ Airplane.cpp Airplane.hpp \
+ Atmosphere.cpp Atmosphere.hpp \
+ BodyEnvironment.hpp \
+ ControlMap.cpp ControlMap.hpp \
+ FGFDM.cpp FGFDM.hpp \
+ Gear.cpp Gear.hpp \
+ Glue.cpp Glue.hpp \
+ Integrator.cpp Integrator.hpp \
+ Jet.cpp Jet.hpp \
+ Math.cpp Math.hpp \
+ Model.cpp Model.hpp \
+ PistonEngine.cpp PistonEngine.hpp \
+ PropEngine.cpp PropEngine.hpp \
+ Propeller.cpp Propeller.hpp \
+ RigidBody.cpp RigidBody.hpp \
+ SimpleJet.cpp SimpleJet.hpp \
+ Surface.cpp Surface.hpp \
+ Thruster.cpp Thruster.hpp \
+ Vector.hpp \
+ Wing.cpp Wing.hpp
+
+yasim_LDADD = -lsgxml -lsgmisc -lsgdebug
INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src
// Stubs. Not needed by a batch program, but required to link.
bool fgSetFloat (const char * name, float val) { return false; }
bool fgSetBool(char const * name, bool val) { return false; }
+bool fgGetBool(char const * name, bool def) { return false; }
SGPropertyNode* fgGetNode (const char * path, bool create) { return 0; }
float fgGetFloat (const char * name, float defaultValue) { return 0; }