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

sev- sev at scummvm.org
Mon Jun 22 07:53:53 UTC 2020


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

Summary:
281dbd8be3 DIRECTOR: Init BitmapCast
9be8063cdc DIRECTOR: LINGO: Do not error out on division by zero
c8d0a999e0 DIRECTOR: LINGO: Fix copy/paste error


Commit: 281dbd8be3e4b820905602dc5ff63fc2831ec4be
    https://github.com/scummvm/scummvm/commit/281dbd8be3e4b820905602dc5ff63fc2831ec4be
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-06-22T09:47:21+02:00

Commit Message:
DIRECTOR: Init BitmapCast

Changed paths:
    engines/director/cast.cpp


diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 441a78d7a2..a241ea9c48 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -52,9 +52,14 @@ void Cast::createWidget() {
 BitmapCast::BitmapCast(Common::ReadStreamEndian &stream, uint32 castTag, uint16 version) {
 	_type = kCastBitmap;
 	_img = nullptr;
+	_bytes = 0;
+	_pitch = 0;
+	_flags = 0;
+	_clut = 0;
+	_regX = _regY = 0;
+	_bitsPerPixel = 1;
 
 	if (version < 4) {
-		_pitch = 0;
 		_flags = stream.readByte();	// region: 0 - auto, 1 - matte, 2 - disabled
 		_bytes = stream.readUint16();
 		_initialRect = Score::readRect(stream);
@@ -77,10 +82,6 @@ BitmapCast::BitmapCast(Common::ReadStreamEndian &stream, uint32 castTag, uint16
 		_pitch = stream.readUint16();
 		_pitch &= 0x0fff;
 
-		_flags = 0;
-		_bytes = 0;
-		_clut = 0;
-
 		_initialRect = Score::readRect(stream);
 		_boundingRect = Score::readRect(stream);
 		_regY = stream.readUint16();
@@ -102,8 +103,6 @@ BitmapCast::BitmapCast(Common::ReadStreamEndian &stream, uint32 castTag, uint16
 
 		warning("BitmapCast: %d bytes left", tail);
 	} else if (version == 5) {
-		_bytes = 0;
-		_pitch = 0;
 		uint16 count = stream.readUint16();
 		for (uint16 cc = 0; cc < count; cc++)
 			stream.readUint32();
@@ -120,10 +119,6 @@ BitmapCast::BitmapCast(Common::ReadStreamEndian &stream, uint32 castTag, uint16
 
 		_bitsPerPixel = stream.readUint16();
 
-		_regX = 0;
-		_regY = 0;
-		_clut = 0;
-
 		stream.readUint32();
 	}
 	_tag = castTag;


Commit: 9be8063cdc14c263c663c5c4babfcf7b518a5cbd
    https://github.com/scummvm/scummvm/commit/9be8063cdc14c263c663c5c4babfcf7b518a5cbd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-06-22T09:50:40+02:00

Commit Message:
DIRECTOR: LINGO: Do not error out on division by zero

Changed paths:
    engines/director/lingo/lingo-code.cpp


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index a4f9cbc468..e1d6755e6c 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -654,8 +654,10 @@ Datum LC::divData(Datum &d1, Datum &d2) {
 	}
 
 	if ((d2.type == INT && d2.u.i == 0) ||
-			(d2.type == FLOAT && d2.u.f == 0.0))
-		error("division by zero");
+			(d2.type == FLOAT && d2.u.f == 0.0)) {
+		warning("LC::divData(): division by zero");
+		d2 = Datum(1);
+	}
 
 	int alignedType = g_lingo->getAlignedType(d1, d2);
 
@@ -684,8 +686,10 @@ Datum LC::modData(Datum &d1, Datum &d2) {
 
 	int i1 = d1.asInt();
 	int i2 = d2.asInt();
-	if (i2 == 0)
-		error("division by zero");
+	if (i2 == 0) {
+		warning("LC::modData(): division by zero");
+		i2 = 1;
+	}
 
 	Datum res(i1 % i2);
 	return res;


Commit: c8d0a999e04ea6ef5e2501a56e60aa14ddf156c9
    https://github.com/scummvm/scummvm/commit/c8d0a999e04ea6ef5e2501a56e60aa14ddf156c9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-06-22T09:52:49+02:00

Commit Message:
DIRECTOR: LINGO: Fix copy/paste error

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


diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index e31c9a5885..e5d573e613 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -641,7 +641,7 @@ int Lingo::getAlignedType(Datum &d1, Datum &d2) {
 			d1Type = FLOAT;
 		}
 	}
-	if (d2Type == STRING || d1Type == REFERENCE) {
+	if (d2Type == STRING || d2Type == REFERENCE) {
 		Common::String src = d1.asString();
 		char *endPtr = 0;
 		strtod(src.c_str(), &endPtr);




More information about the Scummvm-git-logs mailing list