]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/keyboard.cxx
One more pass at a reorg.
[flightgear.git] / src / Main / keyboard.cxx
index 67296cab57d35b9144f235b0d5fa5f40413007d1..dcf0a7057691bdce2bfc814e10f6613c87bbaee3 100644 (file)
@@ -30,7 +30,7 @@
 #endif
 
 #include <GL/glut.h>
-#include <XGL/xgl.h>
+#include <simgear/xgl/xgl.h>
 
 #if defined(FX) && defined(XMESA)
 #include <GL/xmesa.h>
 #include <stdio.h>
 #include <stdlib.h>
 
-#include <pu.h>                        // plib include
+#include <plib/pu.h>           // plib include
+
+#include <simgear/constants.h>
+#include <simgear/debug/logstream.hxx>
+#include <simgear/misc/fgpath.hxx>
 
-#include <Debug/logstream.hxx>
 #include <Aircraft/aircraft.hxx>
 #include <Astro/solarsystem.hxx>
 #include <Astro/sky.hxx>
 #include <Autopilot/autopilot.hxx>
 #include <Cockpit/hud.hxx>
 #include <GUI/gui.h>
-#include <Include/fg_constants.h>
-#include <Misc/fgpath.hxx>
 #include <Scenery/tilemgr.hxx>
 #include <Objects/materialmgr.hxx>
 #include <Time/fg_time.hxx>
 #include <Time/light.hxx>
 
-#ifdef FG_NEW_WEATHER
+#ifndef FG_OLD_WEATHER
 #  include <WeatherCM/FGLocalWeatherDatabase.h>
 #else
 #  include <Weather/weather.hxx>
@@ -63,6 +64,7 @@
 
 #include "keyboard.hxx"
 #include "options.hxx"
+#include "save.hxx"
 #include "views.hxx"
 
 extern void NewAltitude( puObject *cb );
@@ -119,6 +121,15 @@ void GLUTkey(unsigned char k, int x, int y) {
        case 20: // Ctrl-T key
            fgAPToggleTerrainFollow();
            return;
+       case 21: // Ctrl-U key
+           // add 1000' of emergency altitude.  Possibly good for 
+           // unflipping yourself :-)
+           {
+               double alt = cur_fdm_state->get_Altitude() + 1000;
+               fgFDMForceAltitude( current_options.get_flight_model(), 
+                                   alt * FEET_TO_METER );
+           }
+           return;
        case 49: // numeric keypad 1
            v->set_goal_view_offset( FG_PI * 0.75 );
            return;
@@ -190,7 +201,7 @@ void GLUTkey(unsigned char k, int x, int y) {
            v->force_update_fov_math();
            return;
        case 90: // Z key
-#ifdef FG_NEW_WEATHER
+#ifndef FG_OLD_WEATHER
            tmp = WeatherDatabase->getWeatherVisibility();
            tmp /= 1.10;
            WeatherDatabase->setWeatherVisibility( tmp );
@@ -263,6 +274,16 @@ void GLUTkey(unsigned char k, int x, int y) {
                controls.move_throttle( FGControls::ALL_ENGINES, -0.01 );
            }
            return;
+       case 91: // [ key
+           controls.move_flaps(-0.34);
+           FG_LOG( FG_INPUT, FG_INFO,
+                   "Set flaps to " << controls.get_flaps() );
+           return;
+       case 93: // ] key
+           controls.move_flaps(0.34);
+           FG_LOG( FG_INPUT, FG_INFO,
+                   "Set flaps to " << controls.get_flaps() );
+           return;
        case 97: // a key
            speed = current_options.get_speed_up();
            speed++;
@@ -326,7 +347,7 @@ void GLUTkey(unsigned char k, int x, int y) {
            v->force_update_fov_math();
            return;
        case 122: // z key
-#ifdef FG_NEW_WEATHER
+#ifndef FG_OLD_WEATHER
            tmp = WeatherDatabase->getWeatherVisibility();
            tmp *= 1.10;
            WeatherDatabase->setWeatherVisibility( tmp );
@@ -364,6 +385,27 @@ void GLUTspecialkey(int k, int x, int y) {
     if ( GLUT_ACTIVE_SHIFT && glutGetModifiers() ) {
        FG_LOG( FG_INPUT, FG_DEBUG, " SHIFTED" );
        switch (k) {
+       case GLUT_KEY_F1: {
+           ifstream input("fgfs.sav");
+           if (input.good() && fgLoadFlight(input)) {
+               input.close();
+               FG_LOG(FG_INPUT, FG_INFO, "Restored flight from fgfs.sav");
+           } else {
+               FG_LOG(FG_INPUT, FG_ALERT, "Cannot load flight from fgfs.sav");
+           }
+           return;
+       }
+       case GLUT_KEY_F2: {
+           FG_LOG(FG_INPUT, FG_INFO, "Saving flight");
+           ofstream output("fgfs.sav");
+           if (output.good() && fgSaveFlight(output)) {
+               output.close();
+               FG_LOG(FG_INPUT, FG_INFO, "Saved flight to fgfs.sav");
+           } else {
+               FG_LOG(FG_INPUT, FG_ALERT, "Cannot save flight to fgfs.sav");
+           }
+           return;
+       }
        case GLUT_KEY_END: // numeric keypad 1
            v->set_goal_view_offset( FG_PI * 0.75 );
            return;
@@ -413,9 +455,12 @@ void GLUTspecialkey(int k, int x, int y) {
                    t->togglePauseMode();
                return;
            }
+       case GLUT_KEY_F3: // F3 Take a screen shot
+           fgDumpSnapShot();
+           return;
         case GLUT_KEY_F6: // F6 toggles Autopilot target location
-                fgAPToggleWayPoint();
-                return;
+           fgAPToggleWayPoint();
+           return;
        case GLUT_KEY_F8: // F8 toggles fog ... off fastest nicest...
            current_options.cycle_fog();
        
@@ -438,12 +483,10 @@ void GLUTspecialkey(int k, int x, int y) {
            if ( material_mgr.loaded() ) {
                if (current_options.get_textures()) {
                    current_options.set_textures(false);
-                   glDisable(GL_TEXTURE_2D);
-                   ssgOverrideTexture(true);
+                   material_mgr.set_step(1);
                } else {
                    current_options.set_textures(true);
-                   glEnable(GL_TEXTURE_2D);
-                   ssgOverrideTexture(false);
+                   material_mgr.set_step(0);
                }
                FG_LOG( FG_INPUT, FG_INFO, "Toggling texture" );
            } else {