aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}