setup config to be one file
[physics.git] / src / main.cpp
index df9f490..5381a86 100644 (file)
@@ -1,44 +1,50 @@
+/*
+ *  Copyright (C) 2008 Patrik Gornicz, Gornicz_P (at) hotmail (dot) com.
+ *
+ *  This program is free software: you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation, either version 3 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
 #include <GL/gl.h>
 #include <GL/glu.h>
 #include <SDL/SDL.h>
 
-#include <iostream>
-using std::cerr;
-using std::cout;
-using std::endl;
-
-#include <vector>
-using std::vector;
+#include "debug.h"
+#include "handleSignal.h"
 
 #include "game.h"
 #include "ticks.h"
-#include "graphics.h"
 
+#include "graphics/graphics.h"
+#include "input/inputManager.h"
+#include "config/config.h"
 
 /// ***** Private Method Headers *****
+
 void init();
 
+void sighandler( int sig );
+
 void run();
-void cleanUp();
+void clean();
 
 void blockUpdate();
 void updateFPSCounters();
 
-void input();
+void handleInput();
 void update(float);
 void draw();
 
-
-/// ***** MAIN Method *****
-int main()
-{
-    init();
-    run();
-    cleanUp();
-    return 0;
-}
-
-
 /// ***** Private Variables *****
 
 // variable used to determine if it is time to shutdown
@@ -64,23 +70,51 @@ int update_Count, draw_Count;
 long int last_Second;
 
 
-/// ***** Private Methods *****
+/// ***** MAIN Method *****
+int main()
+{
+    init();
+    run();
+    clean();
+    return 0;
+}
+
+/// ***** Initializers/Cleaners *****
+
 void init()
 {
-    graphicsInit();
+    installSignal();
 
-    gameInit();
+    graphics::init();
 
-    // TODO
-    // add a game state
+    game::init();
 
+    input::init();
+
+    cfg::init();
+
+#ifdef DEBUGGING
     cout << "Initialization Complete" << endl;
+#endif
+}
+
+void clean()
+{
+#ifdef DEBUGGING
+    cout << "Cleaning up" << endl;
+#endif
 
-    // create starting entities
+    cfg::clean();
 
-    cout << "World Created" << endl;
+    input::clean();
+
+    game::clean();
+
+    graphics::clean();
 }
 
+/// ***** Private Methods *****
+
 void run()
 {
     is_Running = true;
@@ -95,11 +129,6 @@ void run()
     }
 }
 
-void cleanUp()
-{
-    gameClean();
-}
-
 void blockUpdate()
 {
     long int start = tickCountMicro();
@@ -120,7 +149,7 @@ void blockUpdate()
         // run the updates
         for (int i = 1; i <= iupdate_sum; i++)
         {
-            input();
+            handleInput();
             update(time_step*i / 1000);
         }
         // remove the updates that where run from the sum
@@ -140,31 +169,36 @@ void updateFPSCounters()
         draw_Count = 0;
 
         last_Second = tickCountMicro();
+
+#ifdef FPSUPS
+        cout << "ups:\t" << ups << endl;
+        cout << "fps:\t" << fps << endl;
+#endif
     }
 }
 
-void input()
+void handleInput()
 {
-    gameInput();
+    input::update();
+
+    game::input();
 
-    /*
-    if(key[KEY_ESC])
+    if(cfg::endGame())
         is_Running = false;
-    */
 }
 
 void update(float time_step)
 {
     update_Count++;
 
-    gameUpdate(time_step);
+    game::update(time_step);
 }
 
 void draw()
 {
     draw_Count++;
 
-    gameDraw();
+    game::draw();
 
     SDL_GL_SwapBuffers();