+/*
+ * 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 <vector>
-using std::vector;
-
#include "debug.h"
+#include "handleSignal.h"
#include "game.h"
#include "ticks.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
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();
-#ifdef DEBUGGING
- cout << "Initialization Complete" << endl;
-#endif
+ input::init();
- // create starting entities
+ cfg::init();
#ifdef DEBUGGING
- cout << "World Created" << endl;
+ cout << "Initialization Complete" << endl;
#endif
}
-void cleanUp()
+void clean()
{
#ifdef DEBUGGING
cout << "Cleaning up" << endl;
#endif
- gameClean();
+ cfg::clean();
+
+ input::clean();
- graphicsCleanUp();
+ game::clean();
+
+ graphics::clean();
}
+/// ***** Private Methods *****
+
void run()
{
is_Running = true;
// 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
last_Second = tickCountMicro();
- //cout << "ups:\t" << ups << endl;
- //cout << "fps:\t" << fps << endl;
+#ifdef FPSUPS
+ cout << "ups:\t" << ups << endl;
+ cout << "fps:\t" << fps << endl;
+#endif
}
}
-void input()
+void handleInput()
{
- inputUpdate();
+ input::update();
- gameInput();
+ game::input();
- if(wasReleased(SDLK_ESCAPE))
+ if(cfg::endGame())
is_Running = false;
}
{
update_Count++;
- gameUpdate(time_step);
+ game::update(time_step);
}
void draw()
{
draw_Count++;
- gameDraw();
+ game::draw();
SDL_GL_SwapBuffers();