[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