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

rvanlaar noreply at scummvm.org
Fri Sep 6 16:38:12 UTC 2024


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

Summary:
fb0e89aa91 DIRECTOR: D5 implement castLibNum and memberNum


Commit: fb0e89aa919f69c0e1d8dbe95fb4b1f0620823bf
    https://github.com/scummvm/scummvm/commit/fb0e89aa919f69c0e1d8dbe95fb4b1f0620823bf
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2024-09-06T18:32:37+02:00

Commit Message:
DIRECTOR: D5 implement castLibNum and memberNum

Handles properties `castLibNum` and `memberNum` for the `member`.
That is:
    `put the castLibNum of member "output"`
    `put the memberNum of member "output"`

And handles castLibNum for sprites.
    `put the castLibNum of sprite 2`

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


diff --git a/engines/director/castmember/castmember.cpp b/engines/director/castmember/castmember.cpp
index 9193dc78122..8096920a17b 100644
--- a/engines/director/castmember/castmember.cpp
+++ b/engines/director/castmember/castmember.cpp
@@ -113,12 +113,14 @@ bool CastMember::setProp(const Common::String &propName, const Datum &value, boo
 bool CastMember::hasField(int field) {
 	switch (field) {
 	case kTheBackColor:
+	case kTheCastLibNum:
 	case kTheCastType:
 	case kTheFileName:
 	case kTheForeColor:
 	case kTheHeight:
 	case kTheLoaded:
 	case kTheModified:
+	case kTheMemberNum:
 	case kTheName:
 	case kTheNumber:
 	case kTheRect:
@@ -145,6 +147,9 @@ Datum CastMember::getField(int field) {
 	case kTheBackColor:
 		d = (int)getBackColor();
 		break;
+	case kTheCastLibNum:
+		d = _cast->_castLibID;
+		break;
 	case kTheCastType:
 	case kTheType:
 		d.type = SYMBOL;
@@ -170,6 +175,7 @@ Datum CastMember::getField(int field) {
 		if (castInfo)
 			d = Datum(castInfo->name);
 		break;
+	case kTheMemberNum:
 	case kTheNumber:
 		d = _castId;
 		break;
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 247b4654274..47a8521374d 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -212,6 +212,7 @@ static LingoV4TheEntity lingoV4TheEntity[] = {
 	{ 0x06, 0x21, kTheSprite,			kTheLoc,			true, kTEAItemId },
 	{ 0x06, 0x22, kTheSprite,			kTheRect,			true, kTEAItemId },
 	{ 0x06, 0x23, kTheSprite,			kTheMemberNum,		true, kTEAItemId }, // D5
+	{ 0x06, 0x24, kTheSprite, 			kTheCastLibNum, 	true, kTEAItemId },
 	{ 0x06, 0x25, kTheSprite,			kTheMember,			true, kTEAItemId },
 
 	{ 0x07, 0x01, kTheBeepOn,			kTheNOField,		true, kTEANOArgs },
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 8e15b385828..0d5d5cf48a9 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -202,12 +202,14 @@ TheEntityField fields[] = {
 
 	// Common cast fields
 	{ kTheCast,		"backColor",	kTheBackColor,	400 },//				D4 p
+	{ kTheCast,		"castLibNum",	kTheCastLibNum,	500 },// 					D5 p
 	{ kTheCast,		"castType",		kTheCastType,	400 },//				D4 p
 	{ kTheCast,		"filename",		kTheFileName,	400 },//				D4 p
 	{ kTheCast,		"foreColor",	kTheForeColor,	400 },//				D4 p
 	{ kTheCast,		"height",		kTheHeight,		400 },//				D4 p
 	{ kTheCast,		"loaded",		kTheLoaded,		400 },//				D4 p
 	{ kTheCast,		"modified",		kTheModified,	400 },//				D4 p
+	{ kTheCast,		"memberNum",	kTheMemberNum,	500 },//					D5 p
 	{ kTheCast,		"name",			kTheName,		300 },//		D3 p
 	{ kTheCast,		"number",		kTheNumber,		300 },//		D3 p
 	{ kTheCast,		"rect",			kTheRect,		400 },//				D4 p
@@ -1337,6 +1339,9 @@ Datum Lingo::getTheSprite(Datum &id1, int field) {
 	case kTheMemberNum:
 		d = sprite->_castId.member;
 		break;
+	case kTheCastLibNum:
+		d = sprite->_castId.castLib;
+		break;
 	case kTheConstraint:
 		d = (int)channel->_constraint;
 		break;
diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h
index 0d23e358033..9602bbd09a7 100644
--- a/engines/director/lingo/lingo-the.h
+++ b/engines/director/lingo/lingo-the.h
@@ -159,6 +159,7 @@ enum TheFieldType {
 	kTheBackColor,
 	kTheBlend,
 	kTheBottom,
+	kTheCastLibNum,
 	kTheCastNum,
 	kTheCastType,
 	kTheCenter,




More information about the Scummvm-git-logs mailing list