[Scummvm-cvs-logs] scummvm master -> 551048118cca489eab17e71025c29fbd56ff7b82

sev- sev at scummvm.org
Sat Aug 6 21:37:21 CEST 2016


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:
29faa28264 DIRECTOR: Change sprite type
b7f66e0c50 DIRECTOR: Debug output for Mac resource
551048118c DIRECTOR: Fix some image rendering seg faults


Commit: 29faa282640a558efe22f2b0d1da444e19d604fe
    https://github.com/scummvm/scummvm/commit/29faa282640a558efe22f2b0d1da444e19d604fe
Author: Dmitry Iskrich (zebster26 at mail.ru)
Date: 2016-08-06T21:36:07+02:00

Commit Message:
DIRECTOR: Change sprite type

Changed paths:
    engines/director/lingo/lingo-the.cpp
    engines/director/score.cpp
    engines/director/score.h



diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 2aedf32..3f4f9cc 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -271,7 +271,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
 		sprite->_visible = (d.u.i == 0 ? false : true);
 		break;
 	case kTheType:
-		sprite->_type = d.u.i;
+		sprite->_type = static_cast<SpriteType>(d.u.i);
 		break;
 	case kTheMovieRate:
 		sprite->_movieRate = d.u.i;
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 161bc86..9b42f6e 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -1584,7 +1584,7 @@ Sprite::Sprite() {
 	_stopTime = 0;
 	_volume = 0;
 	_stretch = 0;
-	_type = 0;
+	_type = kInactiveSprite;
 }
 
 Sprite::Sprite(const Sprite &sprite) {
diff --git a/engines/director/score.h b/engines/director/score.h
index d483afa..a7ca59b 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -315,7 +315,7 @@ public:
 	uint16 _bottom;
 	byte _blend;
 	bool _visible;
-	byte _type;
+	SpriteType _type;
 	//Using in digital movie sprites
 	byte _movieRate;
 	uint16 _movieTime;


Commit: b7f66e0c504a51c1dcf5b31888d3e7ddeb957af5
    https://github.com/scummvm/scummvm/commit/b7f66e0c504a51c1dcf5b31888d3e7ddeb957af5
Author: Dmitry Iskrich (zebster26 at mail.ru)
Date: 2016-08-06T21:36:11+02:00

Commit Message:
DIRECTOR: Debug output for Mac resource

Changed paths:
    engines/director/resource.cpp



diff --git a/engines/director/resource.cpp b/engines/director/resource.cpp
index 5a2c4bc..fdb0712 100644
--- a/engines/director/resource.cpp
+++ b/engines/director/resource.cpp
@@ -200,10 +200,10 @@ bool MacArchive::openFile(const Common::String &fileName) {
 
 			res.offset = res.size = 0; // unused
 			res.name = _resFork->getResName(tagArray[i], idArray[j]);
+			debug(3, "Found MacArchive resource '%s' %d: %s", tag2str(tagArray[i]), idArray[j], res.name.c_str());
 		}
 	}
 
-
 	return true;
 }
 


Commit: 551048118cca489eab17e71025c29fbd56ff7b82
    https://github.com/scummvm/scummvm/commit/551048118cca489eab17e71025c29fbd56ff7b82
Author: Dmitry Iskrich (zebster26 at mail.ru)
Date: 2016-08-06T21:36:14+02:00

Commit Message:
DIRECTOR: Fix some image rendering seg faults

Changed paths:
    engines/director/score.cpp



diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 9b42f6e..9fedb06 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -1263,6 +1263,14 @@ void Frame::renderSprites(Graphics::ManagedSurface &surface, bool renderTrail) {
 				continue;
 			}
 
+			if (!img->getSurface()) {
+				//TODO
+				//BMPDecoder doesnt cover all BITD resources (not all have first two bytes 'BM')
+				//Some BITD's first two bytes 0x6 0x0
+				warning("Can not load image %d", _sprites[i]->_castId);
+				continue;
+			}
+
 			uint32 regX = static_cast<BitmapCast *>(_sprites[i]->_cast)->regX;
 			uint32 regY = static_cast<BitmapCast *>(_sprites[i]->_cast)->regY;
 			uint32 rectLeft = static_cast<BitmapCast *>(_sprites[i]->_cast)->initialRect.left;
@@ -1339,7 +1347,7 @@ Image::ImageDecoder *Frame::getImageFrom(uint16 spriteId) {
 		return img;
 	}
 
-	if (_vm->getSharedDIB()->contains(imgId)) {
+	if (_vm->getSharedDIB() != NULL && _vm->getSharedDIB()->contains(imgId)) {
 		img = new DIBDecoder();
 		img->loadStream(*_vm->getSharedDIB()->getVal(imgId));
 		return img;
@@ -1351,7 +1359,7 @@ Image::ImageDecoder *Frame::getImageFrom(uint16 spriteId) {
 		return img;
 	}
 
-	if (_vm->getSharedBMP()->contains(imgId)) {
+	if (_vm->getSharedBMP() != NULL && _vm->getSharedBMP()->contains(imgId)) {
 		img = new Image::BitmapDecoder();
 		img->loadStream(*_vm->getSharedBMP()->getVal(imgId));
 		return img;






More information about the Scummvm-git-logs mailing list