]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/options.hxx
Interim windows build fix
[flightgear.git] / src / Main / options.hxx
index 7765ecffee7a7f5f2e98156abfbf0d53e21e87bd..a74e1a15bf2d82797cdc982653c667b41a01c564 100644 (file)
@@ -35,6 +35,15 @@ class SGPath;
 namespace flightgear
 {
 
+    /**
+     * return the default platform dependant download directory.
+     * This must be a user-writeable location, the question is if it should
+     * be a user visible location. On Windows we default to a subdir of
+     * Documents (FlightGear), on Unixes we default to FG_HOME, which is
+     * typically invisible.
+     */
+    std::string defaultDownloadDir();
+
 /// option processing can have various result values
 /// depending on what the user requested. Note processOptions only
 /// returns a subset of these.
@@ -98,7 +107,12 @@ public:
    * (set properties, etc). 
    */
   OptionResult processOptions();
-  
+
+    /**
+     * process command line options relating to scenery / aircraft / data paths
+     */
+    void initPaths();
+
   /**
    * init the aircraft options
    */
@@ -113,14 +127,27 @@ public:
    * the value of the option here.
    */
   bool shouldLoadDefaultConfig() const;
+
+  /**
+   * check if the arguments array contains a particular string (with a '--' or
+   * '-' prefix).
+   * Used by early startup code before Options object is created
+   */
+  static bool checkForArg(int argc, char* argv[], const char* arg);
 private:
   void showUsage() const;
   
   int parseOption(const std::string& s);
   
   void processArgResult(int result);
-  
-  void setupRoot();
+
+    /**
+     * Setup the root base, and check it's valid. Bails out with exit(-1) if
+     * the root package was not found or is the incorrect version. Argv/argv
+     * are passed since we might potentially show a GUI dialog at this point
+     * to help the user our (finding a base package), and hence need to init Qt.
+     */
+  void setupRoot(int argc, char **argv);
   
   std::string platformDefaultRoot() const;
   
@@ -130,4 +157,6 @@ private:
   
 } // of namespace flightgear
 
+void fgSetDefaults();
+
 #endif /* _OPTIONS_HXX */