[Scummvm-git-logs] scummvm master -> 7d6018e66374f35508668231dc5fd1f117e4a4dd

sev- noreply at scummvm.org
Mon Feb 13 15:25:26 UTC 2023


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

Summary:
b9f901b24f DIRECTOR: Moved type->string utilities to types.cpp
1aa37ba545 DIRECTOR: Simplified and renamed castType2str()
82cbdc5300 DIRECTOR: Catch unknown platforms by the buildbot
7d6018e663 DIRECTOR: Implement and use spriteType2str()


Commit: b9f901b24fcf9a37ff23e22ffeae34a46d53474c
    https://github.com/scummvm/scummvm/commit/b9f901b24fcf9a37ff23e22ffeae34a46d53474c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-02-13T16:24:46+01:00

Commit Message:
DIRECTOR: Moved type->string utilities to types.cpp

Changed paths:
  A engines/director/types.cpp
    engines/director/cast.cpp
    engines/director/module.mk
    engines/director/types.h
    engines/director/util.cpp
    engines/director/util.h


diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index beacc5b66cb..1d6905690cd 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -42,24 +42,6 @@
 
 namespace Director {
 
-const char *scriptTypes[] = {
-	"ScoreScript",
-	"CastScript",
-	"MovieScript",
-	"EventScript",
-	"TestScript"
-};
-
-const char *scriptType2str(ScriptType scr) {
-	if (scr < 0)
-		return "NoneScript";
-
-	if (scr > kMaxScriptType)
-		return "<unknown>";
-
-	return scriptTypes[scr];
-}
-
 Cast::Cast(Movie *movie, uint16 castLibID, bool isShared) {
 	_movie = movie;
 	_vm = _movie->getVM();
diff --git a/engines/director/module.mk b/engines/director/module.mk
index 3576a462ce0..c09ac848e83 100644
--- a/engines/director/module.mk
+++ b/engines/director/module.mk
@@ -23,6 +23,7 @@ MODULE_OBJS = \
 	stxt.o \
 	tests.o \
 	transitions.o \
+	types.o \
 	util.o \
 	window.o \
 	lingo/lingo.o \
diff --git a/engines/director/types.cpp b/engines/director/types.cpp
new file mode 100644
index 00000000000..59e8038f230
--- /dev/null
+++ b/engines/director/types.cpp
@@ -0,0 +1,90 @@
+/* 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 3 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, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include "common/array.h"
+#include "common/str.h"
+#include "director/types.h"
+
+namespace Director {
+
+const char *scriptTypes[] = {
+	"ScoreScript",
+	"CastScript",
+	"MovieScript",
+	"EventScript",
+	"TestScript"
+};
+
+const char *scriptType2str(ScriptType scr) {
+	if (scr < 0)
+		return "NoneScript";
+
+	if (scr > kMaxScriptType)
+		return "<unknown>";
+
+	return scriptTypes[scr];
+}
+
+Common::String castTypeToString(const CastType &type) {
+	Common::String res;
+	switch (type) {
+	case kCastBitmap:
+		res = "bitmap";
+		break;
+	case kCastPalette:
+		res = "palette";
+		break;
+	case kCastButton:
+		res = "button";
+		break;
+	case kCastPicture:
+		res = "picture";
+		break;
+	case kCastDigitalVideo:
+		res = "digitalVideo";
+		break;
+	case kCastLingoScript:
+		res = "script";
+		break;
+	case kCastShape:
+		res = "shape";
+		break;
+	case kCastFilmLoop:
+		res = "filmLoop";
+		break;
+	case kCastSound:
+		res = "sound";
+		break;
+	case kCastMovie:
+		res = "movie";
+		break;
+	case kCastText:
+		res = "text";
+		break;
+	default:
+		res = "empty";
+		break;
+	}
+	return res;
+}
+
+
+} // End of namespace Director
diff --git a/engines/director/types.h b/engines/director/types.h
index fba654e2f4e..76572aeed1c 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -413,6 +413,7 @@ typedef Common::Array<Datum> DatumArray;
 typedef Common::Array<PCell> PropertyArray;
 
 const char *scriptType2str(ScriptType scr);
+Common::String castTypeToString(const CastType &type);
 
 } // End of namespace Director
 
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 4acd153c6d2..3e1182e6d97 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -1088,49 +1088,6 @@ Common::String utf8ToPrintable(const Common::String &str) {
 	return Common::toPrintable(Common::U32String(str));
 }
 
-Common::String castTypeToString(const CastType &type) {
-	Common::String res;
-	switch (type) {
-	case kCastBitmap:
-		res = "bitmap";
-		break;
-	case kCastPalette:
-		res = "palette";
-		break;
-	case kCastButton:
-		res = "button";
-		break;
-	case kCastPicture:
-		res = "picture";
-		break;
-	case kCastDigitalVideo:
-		res = "digitalVideo";
-		break;
-	case kCastLingoScript:
-		res = "script";
-		break;
-	case kCastShape:
-		res = "shape";
-		break;
-	case kCastFilmLoop:
-		res = "filmLoop";
-		break;
-	case kCastSound:
-		res = "sound";
-		break;
-	case kCastMovie:
-		res = "movie";
-		break;
-	case kCastText:
-		res = "text";
-		break;
-	default:
-		res = "empty";
-		break;
-	}
-	return res;
-}
-
 Common::String decodePlatformEncoding(Common::String input) {
 	return input.decode(g_director->getPlatformEncoding());
 }
diff --git a/engines/director/util.h b/engines/director/util.h
index a7261fccb18..87a6d01fb97 100644
--- a/engines/director/util.h
+++ b/engines/director/util.h
@@ -58,8 +58,6 @@ Common::String dumpFactoryName(const char *prefix, const char *name, const char
 
 bool isButtonSprite(SpriteType spriteType);
 
-Common::String castTypeToString(const CastType &type);
-
 class RandomState {
 public:
 	uint32 _seed;


Commit: 1aa37ba545759a85c282ddefafa71ca4a52c9690
    https://github.com/scummvm/scummvm/commit/1aa37ba545759a85c282ddefafa71ca4a52c9690
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-02-13T16:24:46+01:00

Commit Message:
DIRECTOR: Simplified and renamed castType2str()

Changed paths:
    engines/director/cast.cpp
    engines/director/graphics.cpp
    engines/director/lingo/lingo-object.cpp
    engines/director/types.cpp
    engines/director/types.h


diff --git a/engines/director/cast.cpp b/engines/director/cast.cpp
index 1d6905690cd..6478ca91606 100644
--- a/engines/director/cast.cpp
+++ b/engines/director/cast.cpp
@@ -1522,7 +1522,7 @@ Common::String Cast::formatCastSummary(int castId = -1) {
 		CastMemberInfo *castMemberInfo = getCastMemberInfo(*it);
 		Common::String info = castMember->formatInfo();
 		result += Common::String::format("%5d: type=%s, name=\"%s\"",
-			*it, castTypeToString(castMember->_type).c_str(),
+			*it, castType2str(castMember->_type),
 			castMemberInfo ? castMemberInfo->name.c_str() : ""
 		);
 
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index 7e9285ca5d0..2ca324f12f1 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -87,7 +87,7 @@ Image::ImageDecoder *DirectorEngine::getTile(int num) {
 
 	if (member->_type != kCastBitmap) {
 		warning("BUILDBOT: DirectorEngine::getTile(%d) VWTL refers to incorrect cast %s type %s", num,
-				tile->bitmapId.asString().c_str(), castTypeToString(member->_type).c_str());
+				tile->bitmapId.asString().c_str(), castType2str(member->_type));
 
 		return _builtinTiles[num].img;
 	}
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index 8bca3c3b754..25f270a2464 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -708,7 +708,7 @@ Datum CastMember::getField(int field) {
 		break;
 	case kTheCastType:
 		d.type = SYMBOL;
-		d.u.s = new Common::String(castTypeToString(_type));
+		d.u.s = new Common::String(castType2str(_type));
 		break;
 	case kTheFileName:
 		if (castInfo)
diff --git a/engines/director/types.cpp b/engines/director/types.cpp
index 59e8038f230..6a54f0f9614 100644
--- a/engines/director/types.cpp
+++ b/engines/director/types.cpp
@@ -37,53 +37,38 @@ const char *scriptType2str(ScriptType scr) {
 	if (scr < 0)
 		return "NoneScript";
 
-	if (scr > kMaxScriptType)
+	if (scr > kMaxScriptType) {
+		warning("BUILDBOT: Unknown scriptType: %d", scr);
 		return "<unknown>";
+	}
 
 	return scriptTypes[scr];
 }
 
-Common::String castTypeToString(const CastType &type) {
-	Common::String res;
-	switch (type) {
-	case kCastBitmap:
-		res = "bitmap";
-		break;
-	case kCastPalette:
-		res = "palette";
-		break;
-	case kCastButton:
-		res = "button";
-		break;
-	case kCastPicture:
-		res = "picture";
-		break;
-	case kCastDigitalVideo:
-		res = "digitalVideo";
-		break;
-	case kCastLingoScript:
-		res = "script";
-		break;
-	case kCastShape:
-		res = "shape";
-		break;
-	case kCastFilmLoop:
-		res = "filmLoop";
-		break;
-	case kCastSound:
-		res = "sound";
-		break;
-	case kCastMovie:
-		res = "movie";
-		break;
-	case kCastText:
-		res = "text";
-		break;
-	default:
-		res = "empty";
-		break;
-	}
-	return res;
+const char *castTypes[] = {
+	"empty",
+	"bitmap",
+	"filmLoop",
+	"text",
+	"palette",
+	"picture",
+	"sound",
+	"button",
+	"shape",
+	"movie",
+	"digitalVideo",
+	"script",
+	"RTE",
+};
+const char *castType2str(CastType type) {
+	if (type == kCastTypeAny)
+		return "any";
+
+	if (type <= kCastRTE)
+		return castTypes[type];
+
+	warning("BUILDBOT: Unknown castType: %d", type);
+	return "<unknown>";
 }
 
 
diff --git a/engines/director/types.h b/engines/director/types.h
index 76572aeed1c..f8380c7fd30 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -60,7 +60,7 @@ enum ScriptType {
 	kMovieScript = 2,
 	kEventScript = 3,
 	kTestScript = 4,
-	kMaxScriptType = 4	// Sync with cast.cpp:46, array scriptTypes[]
+	kMaxScriptType = 4	// Sync with types.cpp:28, array scriptTypes[]
 };
 
 enum ScriptFlag {
@@ -413,7 +413,7 @@ typedef Common::Array<Datum> DatumArray;
 typedef Common::Array<PCell> PropertyArray;
 
 const char *scriptType2str(ScriptType scr);
-Common::String castTypeToString(const CastType &type);
+const char *castType2str(CastType type);
 
 } // End of namespace Director
 


Commit: 82cbdc5300c8b3661b0f322e428d72c84be96950
    https://github.com/scummvm/scummvm/commit/82cbdc5300c8b3661b0f322e428d72c84be96950
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-02-13T16:24:46+01:00

Commit Message:
DIRECTOR: Catch unknown platforms by the buildbot

Changed paths:
    engines/director/util.cpp


diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index 3e1182e6d97..662821b4475 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -1034,7 +1034,7 @@ Common::Platform platformFromID(uint16 id) {
 	case 2:
 		return Common::kPlatformWindows;
 	default:
-		warning("platformFromID: Unknown platform ID %d", id);
+		warning("BUILDBOT: platformFromID: Unknown platform ID %d", id);
 		break;
 	}
 	return Common::kPlatformUnknown;


Commit: 7d6018e66374f35508668231dc5fd1f117e4a4dd
    https://github.com/scummvm/scummvm/commit/7d6018e66374f35508668231dc5fd1f117e4a4dd
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-02-13T16:24:46+01:00

Commit Message:
DIRECTOR: Implement and use spriteType2str()

Changed paths:
    engines/director/frame.cpp
    engines/director/score.cpp
    engines/director/sprite.cpp
    engines/director/types.cpp
    engines/director/types.h
    engines/director/window.cpp


diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index edcd3c0e165..25663d5ddd9 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -410,11 +410,13 @@ Common::String Frame::formatChannelInfo() {
 	for (int i = 0; i < _numChannels; i++) {
 		Sprite &sprite = *_sprites[i + 1];
 		if (sprite._castId.member) {
-			result += Common::String::format("CH: %-3d castId: %s, [inkData: 0x%02x [ink: %d, trails: %d, line: %d], %dx%d@%d,%d type: %d fg: %d bg: %d], script: %s, flags2: 0x%x, unk2: 0x%x, unk3: 0x%x\n",
+			result += Common::String::format("CH: %-3d castId: %s, [inkData: 0x%02x [ink: %d, trails: %d, line: %d], %dx%d@%d,%d type: %d (%s) fg: %d bg: %d], script: %s, flags2: 0x%x, unk2: 0x%x, unk3: 0x%x\n",
 				i + 1, sprite._castId.asString().c_str(), sprite._inkData,
 				sprite._ink, sprite._trails, sprite._thickness, sprite._width, sprite._height,
 				sprite._startPoint.x, sprite._startPoint.y,
-				sprite._spriteType, sprite._foreColor, sprite._backColor, sprite._scriptId.asString().c_str(), sprite._colorcode, sprite._blendAmount, sprite._unk3);
+				sprite._spriteType, spriteType2str(sprite._spriteType), sprite._foreColor,
+				sprite._backColor, sprite._scriptId.asString().c_str(), sprite._colorcode,
+				sprite._blendAmount, sprite._unk3);
 		} else {
 			result += Common::String::format("CH: %-3d castId: 000\n", i + 1);
 		}
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 897e3cfc2e1..d288ec9b1bf 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -1295,7 +1295,9 @@ void Score::setSpriteCasts() {
 		for (uint16 j = 0; j < _frames[i]->_sprites.size(); j++) {
 			_frames[i]->_sprites[j]->setCast(_frames[i]->_sprites[j]->_castId);
 
-			debugC(1, kDebugImages, "Score::setSpriteCasts(): Frame: %d Channel: %d castId: %s type: %d", i, j, _frames[i]->_sprites[j]->_castId.asString().c_str(), _frames[i]->_sprites[j]->_spriteType);
+			debugC(1, kDebugImages, "Score::setSpriteCasts(): Frame: %d Channel: %d castId: %s type: %d (%s)",
+				i, j, _frames[i]->_sprites[j]->_castId.asString().c_str(), _frames[i]->_sprites[j]->_spriteType,
+				spriteType2str(_frames[i]->_sprites[j]->_spriteType));
 		}
 	}
 }
@@ -1466,11 +1468,13 @@ Common::String Score::formatChannelInfo() {
 		Channel &channel = *_channels[i + 1];
 		Sprite &sprite = *channel._sprite;
 		if (sprite._castId.member) {
-			result += Common::String::format("CH: %-3d castId: %s, visible: %d, [inkData: 0x%02x [ink: %d, trails: %d, line: %d], %dx%d@%d,%d type: %d fg: %d bg: %d], script: %s, flags2: 0x%x, unk2: 0x%x, unk3: 0x%x, constraint: %d, puppet: %d, stretch: %d\n",
+			result += Common::String::format("CH: %-3d castId: %s, visible: %d, [inkData: 0x%02x [ink: %d, trails: %d, line: %d], %dx%d@%d,%d type: %d (%s) fg: %d bg: %d], script: %s, flags2: 0x%x, unk2: 0x%x, unk3: 0x%x, constraint: %d, puppet: %d, stretch: %d\n",
 				i + 1, sprite._castId.asString().c_str(), channel._visible, sprite._inkData,
 				sprite._ink, sprite._trails, sprite._thickness, channel._width, channel._height,
 				channel._currentPoint.x, channel._currentPoint.y,
-				sprite._spriteType, sprite._foreColor, sprite._backColor, sprite._scriptId.asString().c_str(), sprite._colorcode, sprite._blendAmount, sprite._unk3, channel._constraint, sprite._puppet, sprite._stretch);
+				sprite._spriteType, spriteType2str(sprite._spriteType), sprite._foreColor, sprite._backColor,
+				sprite._scriptId.asString().c_str(), sprite._colorcode, sprite._blendAmount, sprite._unk3,
+				channel._constraint, sprite._puppet, sprite._stretch);
 		} else {
 			result += Common::String::format("CH: %-3d castId: 000\n", i + 1);
 		}
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 3a9ba29a5cf..0ca21723d68 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -165,10 +165,10 @@ void Sprite::createQDMatte() {
 		break;
 	case kLineBottomTopSprite:
 	case kLineTopBottomSprite:
-		warning("Sprite::createQDMatte doesn't support creating matte for type %d", _spriteType);
+		warning("Sprite::createQDMatte doesn't support creating matte for type %d (%s)", _spriteType, spriteType2str(_spriteType));
 		break;
 	default:
-		warning("Sprite::createQDMatte Expected shape type but got type %d", _spriteType);
+		warning("Sprite::createQDMatte Expected shape type but got type %d (%s)", _spriteType, spriteType2str(_spriteType));
 	}
 
 	Graphics::Surface surface;
diff --git a/engines/director/types.cpp b/engines/director/types.cpp
index 6a54f0f9614..93e5b35cd83 100644
--- a/engines/director/types.cpp
+++ b/engines/director/types.cpp
@@ -60,6 +60,7 @@ const char *castTypes[] = {
 	"script",
 	"RTE",
 };
+
 const char *castType2str(CastType type) {
 	if (type == kCastTypeAny)
 		return "any";
@@ -71,5 +72,35 @@ const char *castType2str(CastType type) {
 	return "<unknown>";
 }
 
+const char *spriteType[] = {
+	"Inactive",
+	"Bitmap",
+	"Rectangle",
+	"RoundedRectangle",
+	"Oval",
+	"LineTopBottom",
+	"LineBottomTop",
+	"Text",
+	"Button",
+	"Checkbox",
+	"RadioButton",
+	"Pict",
+	"OutlinedRectangle",
+	"OutlinedRoundedRectangle",
+	"OutlinedOval",
+	"ThickLine",
+	"CastMember",
+	"FilmLoop",
+	"DirMovie",
+};
+
+const char *spriteType2str(SpriteType type) {
+	if (type >= kInactiveSprite && type <= kDirMovieSprite)
+		return spriteType[type];
+
+	warning("BUILDBOT: Unknown spriteType: %d", type);
+	return "<unknown>";
+}
+
 
 } // End of namespace Director
diff --git a/engines/director/types.h b/engines/director/types.h
index f8380c7fd30..df7931b2a6b 100644
--- a/engines/director/types.h
+++ b/engines/director/types.h
@@ -158,7 +158,7 @@ enum SpriteType {
 	kOutlinedOvalSprite				= 14,	// QuickDraw
 	kThickLineSprite				= 15,	// 2pt width line
 	kCastMemberSprite				= 16,	// Specified by cast member
-	kFilmLoopSpite					= 17,
+	kFilmLoopSprite					= 17,
 	kDirMovieSprite					= 18
 };
 
@@ -414,6 +414,7 @@ typedef Common::Array<PCell> PropertyArray;
 
 const char *scriptType2str(ScriptType scr);
 const char *castType2str(CastType type);
+const char *spriteType2str(SpriteType type);
 
 } // End of namespace Director
 
diff --git a/engines/director/window.cpp b/engines/director/window.cpp
index f8327f62908..f380e3e4e39 100644
--- a/engines/director/window.cpp
+++ b/engines/director/window.cpp
@@ -228,8 +228,12 @@ void Window::inkBlitFrom(Channel *channel, Common::Rect destRect, Graphics::Mana
 			pd.inkBlitSurface(srcRect, channel->getMask());
 		}
 	} else {
-		if (debugChannelSet(kDebugImages, 2))
-			warning("Window::inkBlitFrom: No source surface: spriteType: %d, castType: %d, castId: %s", channel->_sprite->_spriteType, channel->_sprite->_cast ? channel->_sprite->_cast->_type : 0, channel->_sprite->_castId.asString().c_str());
+		if (debugChannelSet(kDebugImages, 2)) {
+			CastType castType = channel->_sprite->_cast ? channel->_sprite->_cast->_type : kCastTypeNull;
+			warning("Window::inkBlitFrom: No source surface: spriteType: %d (%s), castType: %d (%s), castId: %s",
+				channel->_sprite->_spriteType, spriteType2str(channel->_sprite->_spriteType), castType, castType2str(castType),
+				channel->_sprite->_castId.asString().c_str());
+		}
 	}
 }
 




More information about the Scummvm-git-logs mailing list