diff options
author | Eugenio Favalli <elvenprogrammer@gmail.com> | 2006-05-03 13:38:20 +0000 |
---|---|---|
committer | Eugenio Favalli <elvenprogrammer@gmail.com> | 2006-05-03 13:38:20 +0000 |
commit | c74ed8da3751f85b4bfb235b055f404f5340eae7 (patch) | |
tree | 56462755320b0bd98cb826e533fecfbbe3d3e0b1 /src/game.cpp | |
parent | 3297165f99f0dac7a453f180e1bef05782da2c6e (diff) | |
download | mana-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.cpp | 21 |
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 { |