[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