[Scummvm-git-logs] scummvm master -> 44e4b6aada4b721ecc6e9abf81bfa60077e90ec0
sev-
sev at scummvm.org
Mon Aug 3 17:01:09 UTC 2020
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
44e4b6aada DIRECTOR: LINGO: Implement difference between asInt() and b_integer()
Commit: 44e4b6aada4b721ecc6e9abf81bfa60077e90ec0
https://github.com/scummvm/scummvm/commit/44e4b6aada4b721ecc6e9abf81bfa60077e90ec0
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-03T19:00:30+02:00
Commit Message:
DIRECTOR: LINGO: Implement difference between asInt() and b_integer()
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/lingo/lingo.cpp
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 1b0da740fd..2aa6860455 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -388,7 +388,14 @@ void LB::b_float(int nargs) {
void LB::b_integer(int nargs) {
Datum d = g_lingo->pop();
- Datum res(d.asInt());
+ Datum res;
+
+ if (g_director->getVersion() < 5) { // Note that D4 behaves differently from asInt()
+ res = (int)(d.u.f + 0.5); // Yes, +0.5 even for negative numbers
+ } else {
+ res = round(d.u.f);
+ }
+
g_lingo->push(res);
}
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 0c95b7cc4a..0022e9274f 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -852,10 +852,10 @@ int Datum::asInt() const {
res = u.i;
break;
case FLOAT:
- if (g_director->getVersion() < 5) {
- res = (int)(u.f + 0.5); // Yes, +0.5 even for negative numbers
- } else {
+ if (g_director->getVersion() < 4) {
res = round(u.f);
+ } else {
+ res = (int)u.f;
}
break;
default:
More information about the Scummvm-git-logs
mailing list