summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorEugenio Favalli <elvenprogrammer@gmail.com>2006-05-03 13:38:20 +0000
committerEugenio Favalli <elvenprogrammer@gmail.com>2006-05-03 13:38:20 +0000
commitc74ed8da3751f85b4bfb235b055f404f5340eae7 (patch)
tree56462755320b0bd98cb826e533fecfbbe3d3e0b1 /src/game.cpp
parent3297165f99f0dac7a453f180e1bef05782da2c6e (diff)
downloadmana-c74ed8da3751f85b4bfb235b055f404f5340eae7.tar.gz
mana-c74ed8da3751f85b4bfb235b055f404f5340eae7.tar.bz2
mana-c74ed8da3751f85b4bfb235b055f404f5340eae7.tar.xz
mana-c74ed8da3751f85b4bfb235b055f404f5340eae7.zip
Increased fps limit granularity and cleaned some code, fixed some xml library name in Dev-C++ project file, switched version to 0.0.20.
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/game.cpp b/src/game.cpp
index f8812b81..a03989fe 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -342,6 +342,13 @@ bool saveScreenshot(SDL_Surface *screenshot)
void Game::logic()
{
int gameTime = tick_time;
+ int drawTime = tick_time * 10;
+ int delta = 0;
+ int fpsLimit = (int)config.getValue("fpslimit", 0);
+ if (fpsLimit)
+ {
+ delta = 1000 / fpsLimit;
+ }
while (!done)
{
@@ -358,9 +365,17 @@ void Game::logic()
// Update the screen when application is active, delay otherwise
if (SDL_GetAppState() & SDL_APPACTIVE)
{
- frame++;
- engine->draw(graphics);
- graphics->updateScreen();
+ if (abs(tick_time * 10 - drawTime) >= delta)
+ {
+ frame++;
+ engine->draw(graphics);
+ graphics->updateScreen();
+ drawTime += delta;
+ }
+ else
+ {
+ SDL_Delay(10);
+ }
}
else
{