aboutsummaryrefslogtreecommitdiff
path: root/engines/lastexpress
diff options
context:
space:
mode:
authorJulien Templier2010-10-27 19:22:05 +0000
committerJulien Templier2010-10-27 19:22:05 +0000
commit5a336830a00c1371d8307794c7e43fe98e7baa1d (patch)
tree145e6b0a1463bad848c3fd99811f310e33f92c15 /engines/lastexpress
parent44ba44297d13c4b197819678963fa8f99fbd4e37 (diff)
downloadscummvm-rg350-5a336830a00c1371d8307794c7e43fe98e7baa1d.tar.gz
scummvm-rg350-5a336830a00c1371d8307794c7e43fe98e7baa1d.tar.bz2
scummvm-rg350-5a336830a00c1371d8307794c7e43fe98e7baa1d.zip
LASTEXPRESS: Use Common::Rational when adjusting menu clock
Also fix the wrong check that set the time directly to the target time svn-id: r53885
Diffstat (limited to 'engines/lastexpress')
-rw-r--r--engines/lastexpress/game/menu.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/lastexpress/game/menu.cpp b/engines/lastexpress/game/menu.cpp
index 8973eeb7c0..f6840c28a7 100644
--- a/engines/lastexpress/game/menu.cpp
+++ b/engines/lastexpress/game/menu.cpp
@@ -45,6 +45,8 @@
#include "lastexpress/lastexpress.h"
#include "lastexpress/resource.h"
+#include "common/rational.h"
+
#define getNextGameId() (GameId)((_gameId + 1) % 6)
namespace LastExpress {
@@ -1442,17 +1444,19 @@ void Menu::adjustTime() {
uint32 originalTime = _time;
// Adjust time delta
- uint32 timeDelta = (_delta >= 90) ? 9 : (9 * _delta + 89) / 90;
+ Common::Rational timeDelta(_delta >= 90 ? 9 : (9 * _delta + 89), _delta >= 90 ? 1 : 90);
if (_currentTime < _time) {
- _time -= 900 * timeDelta;
+ timeDelta *= 900;
+ _time -= timeDelta.toInt();
- if (_time >= _currentTime)
+ if (_currentTime > _time)
_time = _currentTime;
} else {
- _time += 900 * timeDelta;
+ timeDelta *= 900;
+ _time += timeDelta.toInt();
- if (_time < _currentTime)
+ if (_currentTime < _time)
_time = _currentTime;
}