X-Git-Url: http://gitweb.pgornicz.com/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain.cpp;h=5381a86a1f15207415183d634bf91a6d7328a4da;hb=b1d92c2f86c7da20ef22f9e064ff9b1a2d5ede4e;hp=fd146122867e65aca83a97adecb6b394ec58095f;hpb=f7b3b2eb35e8047d247dfd7cf7b110a2b6e907af;p=physics.git diff --git a/src/main.cpp b/src/main.cpp index fd14612..5381a86 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,42 +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 . + */ + #include #include #include -#include -using std::vector; - #include "debug.h" +#include "handleSignal.h" #include "game.h" #include "ticks.h" -#include "graphics.h" -#include "input/inputManager.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 @@ -62,27 +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(); + + graphics::init(); - gameInit(); + game::init(); - // TODO - // add a game state + input::init(); + + cfg::init(); #ifdef DEBUGGING cout << "Initialization Complete" << endl; #endif +} - // create starting entities - +void clean() +{ #ifdef DEBUGGING - cout << "World Created" << endl; + cout << "Cleaning up" << endl; #endif + + cfg::clean(); + + input::clean(); + + game::clean(); + + graphics::clean(); } +/// ***** Private Methods ***** + void run() { is_Running = true; @@ -97,11 +129,6 @@ void run() } } -void cleanUp() -{ - gameClean(); -} - void blockUpdate() { long int start = tickCountMicro(); @@ -122,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 @@ -142,16 +169,21 @@ 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() { - inputUpdate(); + input::update(); - gameInput(); + game::input(); - if(isPressed(SDLK_ESCAPE)) + if(cfg::endGame()) is_Running = false; } @@ -159,14 +191,14 @@ void update(float time_step) { update_Count++; - gameUpdate(time_step); + game::update(time_step); } void draw() { draw_Count++; - gameDraw(); + game::draw(); SDL_GL_SwapBuffers();