[Scummvm-git-logs] scummvm master -> db508e987597cf3f85b8d6a734d251a2162d5a06

sev- sev at scummvm.org
Mon Aug 3 16:17:01 UTC 2020


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
12a35cda57 DIRECTOR: Do not attempt to render cursor from empty sprite
db508e9875 DIRECTOR: LINGO: Implement Director-specific rounding (tested with D3-5)


Commit: 12a35cda57dbcf7e7ae37de7d6c50b15970f15ef
    https://github.com/scummvm/scummvm/commit/12a35cda57dbcf7e7ae37de7d6c50b15970f15ef
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-03T17:56:03+02:00

Commit Message:
DIRECTOR: Do not attempt to render cursor from empty sprite

Changed paths:
    engines/director/score.cpp


diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 7e83ea5d46..9c55ef9429 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -483,6 +483,9 @@ void Score::renderSprites(uint16 frameId, RenderMode mode) {
 }
 
 void Score::renderCursor(uint spriteId) {
+	if (!spriteId)
+		return;
+
 	if (_channels[spriteId]->_cursor.isEmpty()) {
 		if (_currentCursor) {
 			_vm->_wm->popCursor();


Commit: db508e987597cf3f85b8d6a734d251a2162d5a06
    https://github.com/scummvm/scummvm/commit/db508e987597cf3f85b8d6a734d251a2162d5a06
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-03T17:56:03+02:00

Commit Message:
DIRECTOR: LINGO: Implement Director-specific rounding (tested with D3-5)

Changed paths:
    engines/director/lingo/lingo.cpp
    engines/director/lingo/tests/math.lingo


diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 197dd89a82..0c95b7cc4a 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -20,8 +20,6 @@
  *
  */
 
-#include <math.h>
-
 #include "common/file.h"
 #include "common/config-manager.h"
 
@@ -854,10 +852,11 @@ int Datum::asInt() const {
 		res = u.i;
 		break;
 	case FLOAT:
-		if (g_director->getVersion() < 4)
+		if (g_director->getVersion() < 5) {
+			res = (int)(u.f + 0.5);		// Yes, +0.5 even for negative numbers
+		} else {
 			res = round(u.f);
-		else
-			res = (int)u.f;
+		}
 		break;
 	default:
 		warning("Incorrect operation asInt() for type: %s", type2str());
diff --git a/engines/director/lingo/tests/math.lingo b/engines/director/lingo/tests/math.lingo
index f38b061b6a..02b6c764d2 100644
--- a/engines/director/lingo/tests/math.lingo
+++ b/engines/director/lingo/tests/math.lingo
@@ -22,3 +22,28 @@ put (1024/4096)*100.0       -- 0.0
 put ((1024*1.0)/4096)*100.0 -- 25.0
 
 put the sqrt of 9
+
+-- Testing rounding
+set save to the scummvmVersion
+set the scummvmVersion to 3
+scummvmAssertEqual(integer(2.5), 3)
+scummvmAssertEqual(integer(2.49), 2)
+scummvmAssertEqual(integer(2.1), 2)
+scummvmAssertEqual(integer(2.0), 2)
+scummvmAssertEqual(integer(1.9), 2)
+scummvmAssertEqual(integer(1.5), 2)
+scummvmAssertEqual(integer(1.49), 1)
+scummvmAssertEqual(integer(1.0), 1)
+scummvmAssertEqual(integer(0.0), 0)
+scummvmAssertEqual(integer(-0.49), 0)
+scummvmAssertEqual(integer(-0.5), 0)
+scummvmAssertEqual(integer(-1.0), 0)
+scummvmAssertEqual(integer(-1.49), 0)
+scummvmAssertEqual(integer(-1.5), -1)
+scummvmAssertEqual(integer(-1.9), -1)
+scummvmAssertEqual(integer(-2.0), -1)
+scummvmAssertEqual(integer(-2.1), -1)
+scummvmAssertEqual(integer(-2.49), -1)
+scummvmAssertEqual(integer(-2.5), -2)
+
+set the scummvmVersion to save




More information about the Scummvm-git-logs mailing list