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

rvanlaar roland at rolandvanlaar.nl
Sat Mar 28 15:14:45 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:
33832be9b0 DIRECTOR: use enum type instead of integer.
c74802f6b7 DIRECTOR: LINGO: Implement kTheScriptText setter.


Commit: 33832be9b0c22d6e66a3a333a0f8db14fd7ca9f9
    https://github.com/scummvm/scummvm/commit/33832be9b0c22d6e66a3a333a0f8db14fd7ca9f9
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2020-03-28T16:10:47+01:00

Commit Message:
DIRECTOR: use enum type instead of integer.

Changed paths:
    engines/director/frame.cpp


diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 79bcb726ac..0203f5e47f 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -270,7 +270,7 @@ void Frame::readChannels(Common::ReadStreamEndian *stream) {
 		if (_vm->getVersion() <= 4) {
 			sprite._scriptId = stream->readByte();
 			sprite._spriteType = stream->readByte();
-			sprite._enabled = sprite._spriteType != 0;
+			sprite._enabled = sprite._spriteType != kInactiveSprite;
 			if (_vm->getVersion() == 4) {
 				sprite._foreColor = _vm->transformColor((uint8)stream->readByte());
 				sprite._backColor = _vm->transformColor((uint8)stream->readByte());


Commit: c74802f6b7cfe5f599b3b586b91928151433fa76
    https://github.com/scummvm/scummvm/commit/c74802f6b7cfe5f599b3b586b91928151433fa76
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2020-03-28T16:10:47+01:00

Commit Message:
DIRECTOR: LINGO: Implement kTheScriptText setter.

setTheCast with field kTheScriptType is lingo's version of eval.
Text is inserted into the cast's script and added as Lingo code
of the cast.

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


diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 244f6ceb08..a35e4eb8c2 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -861,6 +861,8 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) {
 			return;
 		}
 		d.toString();
+		addCode(d.u.s->c_str(), kSpriteScript, id);
+
 		castInfo->script = *d.u.s;
 		break;
 	case kTheText:
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index e442fc5b70..83f5a5c031 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -152,9 +152,9 @@ void Lingo::addCode(const char *code, ScriptType type, uint16 id) {
 
 	if (getScriptContext(type, id)) {
 		// We can't undefine context data because it could be used in e.g. symbols.
-		// Abort on double definitions.
-		error("Script already defined for type %d, id %d", id, type);
-		return;
+		// Although it has a legit case when kTheScriptText re sets code.
+		// Warn on double definitions.
+		warning("Script already defined for type %d, id %d", id, type);
 	}
 
 	_currentScriptContext = new ScriptContext;




More information about the Scummvm-git-logs mailing list