[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