diff options
author | Eugene Sandulenko | 2019-12-29 01:11:12 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2019-12-29 01:11:12 +0100 |
commit | 7d0390bdbfc538f933a3e6884c81d74aa56f4642 (patch) | |
tree | 69a775ec96416e9ff9785e089ab1948c8dcb229a | |
parent | 00b7f1d7aa5753e2e992ea9663ea700155a60964 (diff) | |
download | scummvm-rg350-7d0390bdbfc538f933a3e6884c81d74aa56f4642.tar.gz scummvm-rg350-7d0390bdbfc538f933a3e6884c81d74aa56f4642.tar.bz2 scummvm-rg350-7d0390bdbfc538f933a3e6884c81d74aa56f4642.zip |
DIRECTOR: LINGO: Implement 'set the text of cast'
-rw-r--r-- | engines/director/lingo/lingo-the.cpp | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp index 50194e294c..33c394db2a 100644 --- a/engines/director/lingo/lingo-the.cpp +++ b/engines/director/lingo/lingo-the.cpp @@ -751,11 +751,6 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) { CastType castType = score->_castTypes[id]; CastInfo *castInfo = score->_castsInfo[id + score->_castIDoffset]; - if (!castInfo) { - warning("Lingo::setTheCast(): The cast %d not found. type: %d", id, castType); - return; - } - switch (field) { case kTheCastType: // TODO: You can actually switch the cast type!? @@ -764,12 +759,24 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) { //cast->modified = 1; break; case kTheFileName: + if (!castInfo) { + warning("Lingo::setTheCast(): The cast %d not found. type: %d", id, castType); + return; + } castInfo->fileName = *d.u.s; break; case kTheName: + if (!castInfo) { + warning("Lingo::setTheCast(): The cast %d not found. type: %d", id, castType); + return; + } castInfo->name = *d.u.s; break; case kTheScriptText: + if (!castInfo) { + warning("Lingo::setTheCast(): The cast %d not found. type: %d", id, castType); + return; + } castInfo->script = *d.u.s; break; case kTheWidth: @@ -801,8 +808,21 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) { shape->_modified = 1; } break; + case kTheText: + if (castType == kCastText) { + if (!score->_loadedText->contains(id)) { + warning("Lingo::setTheCast(): Unknown STXT cast id %d", id); + return; + } else { + d.toString(); + score->_loadedText->getVal(id)->setText(d.u.s->c_str()); + } + } else { + warning("Lingo::setTheCast(): Unprocessed setting text of cast %d type %d", id, castType); + } + break; default: - warning("Lingo::setTheCast(): Unprocessed getting field %d of cast %d", field, id); + warning("Lingo::setTheCast(): Unprocessed setting field %d of cast %d", field, id); } } |