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

sev- sev at scummvm.org
Thu May 21 21:25:17 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:
60f756c067 DIRECTOR: Fix blitting when sprite is bigger than screen
b90b5a690e DIRECTOR: Moved Ink-related Score methods to ink.cpp


Commit: 60f756c0676a42c1b71579a60b663404893d971c
    https://github.com/scummvm/scummvm/commit/60f756c0676a42c1b71579a60b663404893d971c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-05-21T23:24:42+02:00

Commit Message:
DIRECTOR: Fix blitting when sprite is bigger than screen

Changed paths:
    engines/director/score.cpp


diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index cbde8b40b2..9c31ed8d14 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -2378,11 +2378,11 @@ void Score::drawBackgndTransSprite(const Graphics::Surface &sprite, Common::Rect
 	if (!_surface->clip(srcRect, drawRect))
 		return; // Out of screen
 
-	for (int ii = 0; ii < srcRect.height(); ii++) {
+	for (int ii = 0; ii < drawRect.height(); ii++) {
 		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
 		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
 
-		for (int j = 0; j < srcRect.width(); j++) {
+		for (int j = 0; j < drawRect.width(); j++) {
 			if (*src != skipColor)
 				*dst = *src;
 
@@ -2399,11 +2399,11 @@ void Score::drawGhostSprite(const Graphics::Surface &sprite, Common::Rect &drawR
 		return; // Out of screen
 
 	uint8 skipColor = _vm->getPaletteColorCount() - 1;
-	for (int ii = 0; ii < srcRect.height(); ii++) {
+	for (int ii = 0; ii < drawRect.height(); ii++) {
 		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
 		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
 
-		for (int j = 0; j < srcRect.width(); j++) {
+		for (int j = 0; j < drawRect.width(); j++) {
 			if ((getSpriteIDFromPos(Common::Point(drawRect.left + j, drawRect.top + ii)) != 0) && (*src != skipColor))
 				*dst = (_vm->getPaletteColorCount() - 1) - *src; // Oposite color
 
@@ -2420,12 +2420,12 @@ void Score::drawReverseSprite(const Graphics::Surface &sprite, Common::Rect &dra
 		return; // Out of screen
 
 	uint8 skipColor = _vm->getPaletteColorCount() - 1;
-	for (int ii = 0; ii < srcRect.height(); ii++) {
+	for (int ii = 0; ii < drawRect.height(); ii++) {
 		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
 		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
 		byte srcColor = *src;
 
-		for (int j = 0; j < srcRect.width(); j++) {
+		for (int j = 0; j < drawRect.width(); j++) {
 			if (_sprites[spriteId]->_cast->_type == kCastShape)
 				srcColor = 0x0;
 			else
@@ -2489,7 +2489,7 @@ void Score::drawMatteSprite(const Graphics::Surface &sprite, Common::Rect &drawR
 	if (whiteColor == -1) {
 		debugC(1, kDebugImages, "Score::drawMatteSprite(): No white color for Matte image");
 
-		for (int yy = 0; yy < srcRect.height(); yy++) {
+		for (int yy = 0; yy < drawRect.height(); yy++) {
 			const byte *src = (const byte *)tmp.getBasePtr(srcRect.left, srcRect.top + yy);
 			byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + yy);
 
@@ -2510,12 +2510,12 @@ void Score::drawMatteSprite(const Graphics::Surface &sprite, Common::Rect &drawR
 		}
 		ff.fillMask();
 
-		for (int yy = 0; yy < srcRect.height(); yy++) {
+		for (int yy = 0; yy < drawRect.height(); yy++) {
 			const byte *src = (const byte *)tmp.getBasePtr(srcRect.left, srcRect.top + yy);
 			const byte *mask = (const byte *)ff.getMask()->getBasePtr(srcRect.left, srcRect.top + yy);
 			byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + yy);
 
-			for (int xx = 0; xx < srcRect.width(); xx++, src++, dst++, mask++)
+			for (int xx = 0; xx < drawRect.width(); xx++, src++, dst++, mask++)
 				if (*mask == 0)
 					*dst = *src;
 		}


Commit: b90b5a690e2ced1cf9aea37608d45f874df15738
    https://github.com/scummvm/scummvm/commit/b90b5a690e2ced1cf9aea37608d45f874df15738
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-05-21T23:24:43+02:00

Commit Message:
DIRECTOR: Moved Ink-related Score methods to ink.cpp

Changed paths:
  A engines/director/ink.cpp
    engines/director/module.mk
    engines/director/score.cpp
    engines/director/score.h


diff --git a/engines/director/ink.cpp b/engines/director/ink.cpp
new file mode 100644
index 0000000000..8fb195541b
--- /dev/null
+++ b/engines/director/ink.cpp
@@ -0,0 +1,242 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "director/director.h"
+#include "director/cast.h"
+#include "director/score.h"
+#include "director/sprite.h"
+
+namespace Director {
+
+void Score::inkBasedBlit(Graphics::ManagedSurface *maskSurface, const Graphics::Surface &spriteSurface, InkType ink, Common::Rect drawRect, uint spriteId) {
+	// drawRect could be bigger than the spriteSurface. Clip it
+	Common::Rect t(spriteSurface.w, spriteSurface.h);
+	t.moveTo(drawRect.left, drawRect.top);
+	bool nullMask = false;
+
+	// combine the given mask with the maskSurface
+	if (!maskSurface) {
+		nullMask = true;
+		maskSurface = new Graphics::ManagedSurface;
+		maskSurface->create(spriteSurface.w, spriteSurface.h, Graphics::PixelFormat::createFormatCLUT8());
+		maskSurface->clear(0);
+	}
+
+	drawRect.clip(Common::Rect(_maskSurface->w, _maskSurface->h));
+
+
+	if (drawRect.isEmpty()) {
+		warning("Score::inkBasedBlit(): empty drawRect");
+		return;
+	}
+
+	maskSurface->blitFrom(*_maskSurface, drawRect, Common::Point(0, 0));
+
+	drawRect.clip(t);
+
+	switch (ink) {
+	case kInkTypeCopy:
+		if (maskSurface)
+			_surface->transBlitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top), *maskSurface);
+		else
+			_surface->blitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top));
+		break;
+	case kInkTypeTransparent:
+		// FIXME: is it always white (last entry in pallette)?
+		_surface->transBlitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top), _vm->getPaletteColorCount() - 1);
+		break;
+	case kInkTypeBackgndTrans:
+		drawBackgndTransSprite(spriteSurface, drawRect, spriteId);
+		break;
+	case kInkTypeMatte:
+		drawMatteSprite(spriteSurface, drawRect);
+		break;
+	case kInkTypeGhost:
+		drawGhostSprite(spriteSurface, drawRect);
+		break;
+	case kInkTypeReverse:
+		drawReverseSprite(spriteSurface, drawRect, spriteId);
+		break;
+	default:
+		warning("Score::inkBasedBlit(): Unhandled ink type %d", ink);
+		_surface->blitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top));
+		break;
+	}
+
+	if (nullMask)
+		delete maskSurface;
+}
+
+void Score::drawBackgndTransSprite(const Graphics::Surface &sprite, Common::Rect &drawRect, int spriteId) {
+	byte skipColor = _sprites[spriteId]->_backColor;
+	Common::Rect srcRect(sprite.w, sprite.h);
+
+	if (!_surface->clip(srcRect, drawRect))
+		return; // Out of screen
+
+	for (int ii = 0; ii < drawRect.height(); ii++) {
+		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
+		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
+
+		for (int j = 0; j < drawRect.width(); j++) {
+			if (*src != skipColor)
+				*dst = *src;
+
+			src++;
+			dst++;
+		}
+	}
+}
+
+void Score::drawGhostSprite(const Graphics::Surface &sprite, Common::Rect &drawRect) {
+	Common::Rect srcRect(sprite.w, sprite.h);
+
+	if (!_surface->clip(srcRect, drawRect))
+		return; // Out of screen
+
+	uint8 skipColor = _vm->getPaletteColorCount() - 1;
+	for (int ii = 0; ii < drawRect.height(); ii++) {
+		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
+		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
+
+		for (int j = 0; j < drawRect.width(); j++) {
+			if ((getSpriteIDFromPos(Common::Point(drawRect.left + j, drawRect.top + ii)) != 0) && (*src != skipColor))
+				*dst = (_vm->getPaletteColorCount() - 1) - *src; // Oposite color
+
+			src++;
+			dst++;
+		}
+	}
+}
+
+void Score::drawReverseSprite(const Graphics::Surface &sprite, Common::Rect &drawRect, uint16 spriteId) {
+	Common::Rect srcRect(sprite.w, sprite.h);
+
+	if (!_surface->clip(srcRect, drawRect))
+		return; // Out of screen
+
+	uint8 skipColor = _vm->getPaletteColorCount() - 1;
+	for (int ii = 0; ii < drawRect.height(); ii++) {
+		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
+		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
+		byte srcColor = *src;
+
+		for (int j = 0; j < drawRect.width(); j++) {
+			if (_sprites[spriteId]->_cast->_type == kCastShape)
+				srcColor = 0x0;
+			else
+				srcColor = *src;
+			uint16 targetSprite = getSpriteIDFromPos(Common::Point(drawRect.left + j, drawRect.top + ii));
+			if ((targetSprite != 0)) {
+				// TODO: This entire reverse colour attempt needs a lot more testing on
+				// a lot more colour depths.
+				if (srcColor != skipColor) {
+					if (_sprites[targetSprite]->_cast->_type != kCastBitmap) {
+						if (*dst == 0 || *dst == 255) {
+							*dst = _vm->transformColor(*dst);
+						} else if (srcColor == 255 || srcColor == 0) {
+							*dst = _vm->transformColor(*dst - 40);
+						} else {
+							*dst = _vm->transformColor(*src - 40);
+						}
+					} else {
+						if (*dst == 0 && _vm->getVersion() == 3 &&
+							((BitmapCast*)_sprites[spriteId]->_cast)->_bitsPerPixel > 1) {
+							*dst = _vm->transformColor(*src - 40);
+						} else {
+							*dst ^= _vm->transformColor(srcColor);
+						}
+					}
+				}
+			} else if (srcColor != skipColor) {
+				*dst = _vm->transformColor(srcColor);
+			}
+			src++;
+			dst++;
+		}
+	}
+}
+
+void Score::drawMatteSprite(const Graphics::Surface &sprite, Common::Rect &drawRect) {
+	// Like background trans, but all white pixels NOT ENCLOSED by coloured pixels are transparent
+	Graphics::Surface tmp;
+	tmp.copyFrom(sprite);
+	Common::Rect srcRect(sprite.w, sprite.h);
+
+	if (!_surface->clip(srcRect, drawRect))
+		return; // Out of screen
+
+	// Searching white color in the corners
+	int whiteColor = -1;
+
+	for (int y = 0; y < tmp.h; y++) {
+		for (int x = 0; x < tmp.w; x++) {
+			byte color = *(byte *)tmp.getBasePtr(x, y);
+
+			if (_vm->getPalette()[color * 3 + 0] == 0xff &&
+				_vm->getPalette()[color * 3 + 1] == 0xff &&
+				_vm->getPalette()[color * 3 + 2] == 0xff) {
+				whiteColor = color;
+				break;
+			}
+		}
+	}
+
+	if (whiteColor == -1) {
+		debugC(1, kDebugImages, "Score::drawMatteSprite(): No white color for Matte image");
+
+		for (int yy = 0; yy < drawRect.height(); yy++) {
+			const byte *src = (const byte *)tmp.getBasePtr(srcRect.left, srcRect.top + yy);
+			byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + yy);
+
+			for (int xx = 0; xx < drawRect.width(); xx++, src++, dst++)
+				*dst = *src;
+		}
+	} else {
+		Graphics::FloodFill ff(&tmp, whiteColor, 0, true);
+
+		for (int yy = 0; yy < tmp.h; yy++) {
+			ff.addSeed(0, yy);
+			ff.addSeed(tmp.w - 1, yy);
+		}
+
+		for (int xx = 0; xx < tmp.w; xx++) {
+			ff.addSeed(xx, 0);
+			ff.addSeed(xx, tmp.h - 1);
+		}
+		ff.fillMask();
+
+		for (int yy = 0; yy < drawRect.height(); yy++) {
+			const byte *src = (const byte *)tmp.getBasePtr(srcRect.left, srcRect.top + yy);
+			const byte *mask = (const byte *)ff.getMask()->getBasePtr(srcRect.left, srcRect.top + yy);
+			byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + yy);
+
+			for (int xx = 0; xx < drawRect.width(); xx++, src++, dst++, mask++)
+				if (*mask == 0)
+					*dst = *src;
+		}
+	}
+
+	tmp.free();
+}
+
+} // End of namespace Director
diff --git a/engines/director/module.mk b/engines/director/module.mk
index 0c8c96dd74..4b1e8fe5c0 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -10,6 +10,7 @@ MODULE_OBJS = \
 	frame.o \
 	graphics.o \
 	images.o \
+	ink.o \
 	movie.o \
 	resource.o \
 	score.o \
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 9c31ed8d14..358c9822b7 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -2312,218 +2312,6 @@ void Score::renderBitmap(uint16 spriteId) {
 	inkBasedBlit(nullptr, *(bc->_surface), ink, drawRect, spriteId);
 }
 
-void Score::inkBasedBlit(Graphics::ManagedSurface *maskSurface, const Graphics::Surface &spriteSurface, InkType ink, Common::Rect drawRect, uint spriteId) {
-	// drawRect could be bigger than the spriteSurface. Clip it
-	Common::Rect t(spriteSurface.w, spriteSurface.h);
-	t.moveTo(drawRect.left, drawRect.top);
-	bool nullMask = false;
-
-	// combine the given mask with the maskSurface
-	if (!maskSurface) {
-		nullMask = true;
-		maskSurface = new Graphics::ManagedSurface;
-		maskSurface->create(spriteSurface.w, spriteSurface.h, Graphics::PixelFormat::createFormatCLUT8());
-		maskSurface->clear(0);
-	}
-
-	drawRect.clip(Common::Rect(_maskSurface->w, _maskSurface->h));
-
-
-	if (drawRect.isEmpty()) {
-		warning("Score::inkBasedBlit(): empty drawRect");
-		return;
-	}
-
-	maskSurface->blitFrom(*_maskSurface, drawRect, Common::Point(0, 0));
-
-	drawRect.clip(t);
-
-	switch (ink) {
-	case kInkTypeCopy:
-		if (maskSurface)
-			_surface->transBlitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top), *maskSurface);
-		else
-			_surface->blitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top));
-		break;
-	case kInkTypeTransparent:
-		// FIXME: is it always white (last entry in pallette)?
-		_surface->transBlitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top), _vm->getPaletteColorCount() - 1);
-		break;
-	case kInkTypeBackgndTrans:
-		drawBackgndTransSprite(spriteSurface, drawRect, spriteId);
-		break;
-	case kInkTypeMatte:
-		drawMatteSprite(spriteSurface, drawRect);
-		break;
-	case kInkTypeGhost:
-		drawGhostSprite(spriteSurface, drawRect);
-		break;
-	case kInkTypeReverse:
-		drawReverseSprite(spriteSurface, drawRect, spriteId);
-		break;
-	default:
-		warning("Score::inkBasedBlit(): Unhandled ink type %d", ink);
-		_surface->blitFrom(spriteSurface, Common::Point(drawRect.left, drawRect.top));
-		break;
-	}
-
-	if (nullMask)
-		delete maskSurface;
-}
-
-void Score::drawBackgndTransSprite(const Graphics::Surface &sprite, Common::Rect &drawRect, int spriteId) {
-	byte skipColor = _sprites[spriteId]->_backColor;
-	Common::Rect srcRect(sprite.w, sprite.h);
-
-	if (!_surface->clip(srcRect, drawRect))
-		return; // Out of screen
-
-	for (int ii = 0; ii < drawRect.height(); ii++) {
-		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
-		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
-
-		for (int j = 0; j < drawRect.width(); j++) {
-			if (*src != skipColor)
-				*dst = *src;
-
-			src++;
-			dst++;
-		}
-	}
-}
-
-void Score::drawGhostSprite(const Graphics::Surface &sprite, Common::Rect &drawRect) {
-	Common::Rect srcRect(sprite.w, sprite.h);
-
-	if (!_surface->clip(srcRect, drawRect))
-		return; // Out of screen
-
-	uint8 skipColor = _vm->getPaletteColorCount() - 1;
-	for (int ii = 0; ii < drawRect.height(); ii++) {
-		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
-		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
-
-		for (int j = 0; j < drawRect.width(); j++) {
-			if ((getSpriteIDFromPos(Common::Point(drawRect.left + j, drawRect.top + ii)) != 0) && (*src != skipColor))
-				*dst = (_vm->getPaletteColorCount() - 1) - *src; // Oposite color
-
-			src++;
-			dst++;
-		}
-	}
-}
-
-void Score::drawReverseSprite(const Graphics::Surface &sprite, Common::Rect &drawRect, uint16 spriteId) {
-	Common::Rect srcRect(sprite.w, sprite.h);
-
-	if (!_surface->clip(srcRect, drawRect))
-		return; // Out of screen
-
-	uint8 skipColor = _vm->getPaletteColorCount() - 1;
-	for (int ii = 0; ii < drawRect.height(); ii++) {
-		const byte *src = (const byte *)sprite.getBasePtr(srcRect.left, srcRect.top + ii);
-		byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + ii);
-		byte srcColor = *src;
-
-		for (int j = 0; j < drawRect.width(); j++) {
-			if (_sprites[spriteId]->_cast->_type == kCastShape)
-				srcColor = 0x0;
-			else
-				srcColor = *src;
-			uint16 targetSprite = getSpriteIDFromPos(Common::Point(drawRect.left + j, drawRect.top + ii));
-			if ((targetSprite != 0)) {
-				// TODO: This entire reverse colour attempt needs a lot more testing on
-				// a lot more colour depths.
-				if (srcColor != skipColor) {
-					if (_sprites[targetSprite]->_cast->_type != kCastBitmap) {
-						if (*dst == 0 || *dst == 255) {
-							*dst = _vm->transformColor(*dst);
-						} else if (srcColor == 255 || srcColor == 0) {
-							*dst = _vm->transformColor(*dst - 40);
-						} else {
-							*dst = _vm->transformColor(*src - 40);
-						}
-					} else {
-						if (*dst == 0 && _vm->getVersion() == 3 &&
-							((BitmapCast*)_sprites[spriteId]->_cast)->_bitsPerPixel > 1) {
-							*dst = _vm->transformColor(*src - 40);
-						} else {
-							*dst ^= _vm->transformColor(srcColor);
-						}
-					}
-				}
-			} else if (srcColor != skipColor) {
-				*dst = _vm->transformColor(srcColor);
-			}
-			src++;
-			dst++;
-		}
-	}
-}
-
-void Score::drawMatteSprite(const Graphics::Surface &sprite, Common::Rect &drawRect) {
-	// Like background trans, but all white pixels NOT ENCLOSED by coloured pixels are transparent
-	Graphics::Surface tmp;
-	tmp.copyFrom(sprite);
-	Common::Rect srcRect(sprite.w, sprite.h);
-
-	if (!_surface->clip(srcRect, drawRect))
-		return; // Out of screen
-
-	// Searching white color in the corners
-	int whiteColor = -1;
-
-	for (int y = 0; y < tmp.h; y++) {
-		for (int x = 0; x < tmp.w; x++) {
-			byte color = *(byte *)tmp.getBasePtr(x, y);
-
-			if (_vm->getPalette()[color * 3 + 0] == 0xff &&
-				_vm->getPalette()[color * 3 + 1] == 0xff &&
-				_vm->getPalette()[color * 3 + 2] == 0xff) {
-				whiteColor = color;
-				break;
-			}
-		}
-	}
-
-	if (whiteColor == -1) {
-		debugC(1, kDebugImages, "Score::drawMatteSprite(): No white color for Matte image");
-
-		for (int yy = 0; yy < drawRect.height(); yy++) {
-			const byte *src = (const byte *)tmp.getBasePtr(srcRect.left, srcRect.top + yy);
-			byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + yy);
-
-			for (int xx = 0; xx < drawRect.width(); xx++, src++, dst++)
-				*dst = *src;
-		}
-	} else {
-		Graphics::FloodFill ff(&tmp, whiteColor, 0, true);
-
-		for (int yy = 0; yy < tmp.h; yy++) {
-			ff.addSeed(0, yy);
-			ff.addSeed(tmp.w - 1, yy);
-		}
-
-		for (int xx = 0; xx < tmp.w; xx++) {
-			ff.addSeed(xx, 0);
-			ff.addSeed(xx, tmp.h - 1);
-		}
-		ff.fillMask();
-
-		for (int yy = 0; yy < drawRect.height(); yy++) {
-			const byte *src = (const byte *)tmp.getBasePtr(srcRect.left, srcRect.top + yy);
-			const byte *mask = (const byte *)ff.getMask()->getBasePtr(srcRect.left, srcRect.top + yy);
-			byte *dst = (byte *)_surface->getBasePtr(drawRect.left, drawRect.top + yy);
-
-			for (int xx = 0; xx < drawRect.width(); xx++, src++, dst++, mask++)
-				if (*mask == 0)
-					*dst = *src;
-		}
-	}
-
-	tmp.free();
-}
-
 uint16 Score::getSpriteIDFromPos(Common::Point pos) {
 	for (int i = _sprites.size() - 1; i >= 0; i--)
 		if (_sprites[i]->_currentBbox.contains(pos))
diff --git a/engines/director/score.h b/engines/director/score.h
index 7547630016..66c4cb5ba6 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -124,12 +124,14 @@ private:
 	void renderButton(uint16 spriteId);
 	void renderBitmap(uint16 spriteId);
 
+	// ink.cpp
 	void inkBasedBlit(Graphics::ManagedSurface *maskSurface, const Graphics::Surface &spriteSurface, InkType ink, Common::Rect drawRect, uint spriteId);
 	void drawBackgndTransSprite(const Graphics::Surface &sprite, Common::Rect &drawRect, int spriteId);
 	void drawMatteSprite(const Graphics::Surface &sprite, Common::Rect &drawRect);
 	void drawGhostSprite(const Graphics::Surface &sprite, Common::Rect &drawRect);
 	void drawReverseSprite(const Graphics::Surface &sprite, Common::Rect &drawRect, uint16 spriteId);
 
+	// score.cpp
 	void playSoundChannel(uint16 frameId);
 
 	void readVersion(uint32 rid);




More information about the Scummvm-git-logs mailing list