[Scummvm-git-logs] scummvm master -> c0ab3fa5b92dce85b36eeee5d0096860d4155062
sev-
sev at scummvm.org
Sun Jan 12 14:04:23 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:
a80af7054b DIRECTOR: LINGO: Added parsing for 'the frameTempo'
c0ab3fa5b9 DIRECTOR: LINGO: Sorted switch() statement in 'the' processing alphabetically
Commit: a80af7054b79d34f2d95333f5afb0a8198b0febf
https://github.com/scummvm/scummvm/commit/a80af7054b79d34f2d95333f5afb0a8198b0febf
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-01-12T14:49:26+01:00
Commit Message:
DIRECTOR: LINGO: Added parsing for 'the frameTempo'
Changed paths:
engines/director/lingo/lingo-the.cpp
engines/director/lingo/lingo-the.h
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 79ea2f2..fa152f0 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -59,6 +59,7 @@ TheEntity entities[] = {
{ kTheFrameLabel, "frameLabel", false, 4 }, // D4 p
{ kTheFrameScript, "frameScript", false, 4 }, // D4 p
{ kTheFramePalette, "framePalette", false, 4 }, // D4 p
+ { kTheFrameTempo, "frameTempo", false, 4 }, // D4 f
{ kTheFreeBlock, "freeBlock", false, 2 }, // D2 f
{ kTheFreeBytes, "freeBytes", false, 2 }, // D2 f
{ kTheFullColorPermit, "fullColorPermit", false, 2 }, // D2 p
diff --git a/engines/director/lingo/lingo-the.h b/engines/director/lingo/lingo-the.h
index 9857adb..5539312 100644
--- a/engines/director/lingo/lingo-the.h
+++ b/engines/director/lingo/lingo-the.h
@@ -53,6 +53,7 @@ enum TheEntityType {
kTheFrameLabel,
kTheFramePalette,
kTheFrameScript,
+ kTheFrameTempo,
kTheFreeBlock,
kTheFreeBytes,
kTheFullColorPermit,
Commit: c0ab3fa5b92dce85b36eeee5d0096860d4155062
https://github.com/scummvm/scummvm/commit/c0ab3fa5b92dce85b36eeee5d0096860d4155062
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-01-12T15:03:50+01:00
Commit Message:
DIRECTOR: LINGO: Sorted switch() statement in 'the' processing alphabetically
Changed paths:
engines/director/lingo/lingo-the.cpp
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index fa152f0..2f24f3f 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -288,166 +288,29 @@ void Lingo::initTheEntities() {
}
}
-void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
- switch (entity) {
- case kTheSprite:
- setTheSprite(id, field, d);
- break;
- case kThePerFrameHook:
- warning("STUB: Lingo::setTheEntity(): setting the perframehook");
- break;
- case kTheFloatPrecision:
- _floatPrecision = d.toInt();
- _floatPrecision = MAX(0, MIN(_floatPrecision, 19)); // 0 to 19
- _floatPrecisionFormat = Common::String::format("%%.%df", _floatPrecision);
- break;
- case kTheColorDepth:
- _vm->_colorDepth = d.toInt();
-
- // bpp. 1, 2, 4, 8, 32
- warning("STUB: Lingo::setTheEntity(): Set color depth to %d", _vm->_colorDepth);
- break;
- case kTheCast:
- setTheCast(id, field, d);
- break;
- default:
- warning("Lingo::setTheEntity(): Unprocessed setting field %d of entity %d", field, entity);
- }
-}
-
-void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
- int id = 0;
-
- if (id1.type == INT) {
- id = id1.u.i;
- } else {
- warning("Lingo::setTheSprite(): Unknown the sprite id type: %s", id1.type2str());
- return;
- }
-
- d.toInt(); // Enforce Integer
-
- if (!_vm->getCurrentScore()) {
- warning("Lingo::setTheSprite(): The sprite %d field %d setting over non-active score", id, field);
- return;
- }
-
- Sprite *sprite = _vm->getCurrentScore()->getSpriteById(id);
-
- if (!sprite)
- return;
-
- switch (field) {
- case kTheCastNum:
- if (_vm->getCurrentScore()->_loadedCast->contains(d.u.i)) {
- _vm->getCurrentScore()->loadCastInto(sprite, d.u.i);
- sprite->_castId = d.u.i;
- }
- break;
- case kTheWidth:
- sprite->_width = d.u.i;
- break;
- case kTheHeight:
- sprite->_height = d.u.i;
- break;
- case kTheTrails:
- sprite->_trails = d.u.i;
- break;
- case kTheInk:
- sprite->_ink = static_cast<InkType>(d.u.i);
- break;
- case kTheLocH:
- sprite->_startPoint.x = d.u.i;
- break;
- case kTheLocV:
- sprite->_startPoint.y = d.u.i;
- break;
- case kTheConstraint:
- sprite->_constraint = d.u.i;
- break;
- case kTheMoveableSprite:
- sprite->_moveable = d.u.i;
- break;
- case kTheBackColor:
- sprite->_backColor = d.u.i;
- break;
- case kTheForeColor:
- sprite->_foreColor = d.u.i;
- break;
- case kTheLeft:
- sprite->_left = d.u.i;
- break;
- case kTheRight:
- sprite->_right = d.u.i;
- break;
- case kTheTop:
- sprite->_top = d.u.i;
- break;
- case kTheBottom:
- sprite->_bottom = d.u.i;
- break;
- case kTheBlend:
- sprite->_blend = d.u.i;
- break;
- case kTheVisible:
- sprite->_visible = (d.u.i == 0 ? false : true);
- break;
- case kTheType:
- sprite->_type = static_cast<SpriteType>(d.u.i);
- break;
- case kTheMovieRate:
- sprite->_movieRate = d.u.i;
- break;
- case kTheMovieTime:
- sprite->_movieTime = d.u.i;
- break;
- case kTheStopTime:
- sprite->_stopTime = d.u.i;
- break;
- case kTheStartTime:
- sprite->_startTime = d.u.i;
- break;
- case kTheStretch:
- sprite->_stretch = d.u.i;
- break;
- case kTheVolume:
- sprite->_volume = d.u.i;
- break;
- case kTheLineSize:
- sprite->_lineSize = d.u.i;
- break;
- case kTheEditableText:
- sprite->_editableText = *d.toString();
- break;
- case kThePattern:
- sprite->setPattern(d.u.i);
- break;
- default:
- warning("Lingo::setTheSprite(): Unprocessed setting field %d of sprite", field);
- }
-}
-
Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
Datum d;
switch (entity) {
- case kTheSprite:
- d = getTheSprite(id, field);
- break;
case kTheCast:
d = getTheCast(id, field);
break;
- case kThePerFrameHook:
- warning("STUB: Lingo::getTheEntity(): getting the perframehook");
+ case kTheColorDepth:
+ // bpp. 1, 2, 4, 8, 32
+ d.type = INT;
+ d.u.i = _vm->_colorDepth;
+ break;
+ case kTheColorQD:
+ d.type = INT;
+ d.u.i = 1;
break;
case kTheFloatPrecision:
d.type = INT;
d.u.i = _floatPrecision;
break;
- case kTheSqrt:
- id.toFloat();
- d.type = FLOAT;
- d.u.f = sqrt(id.u.f);
+ case kTheFrame:
+ d.type = INT;
+ d.u.i = _vm->getCurrentScore()->getCurrentFrame();
break;
case kTheKey:
d.type = STRING;
@@ -457,23 +320,6 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
d.type = INT;
d.u.i = _vm->_keyCode;
break;
- case kTheMouseH:
- d.type = INT;
- d.u.i = g_system->getEventManager()->getMousePos().x;
- break;
- case kTheMouseV:
- d.type = INT;
- d.u.i = g_system->getEventManager()->getMousePos().y;
- break;
- case kTheColorQD:
- d.type = INT;
- d.u.i = 1;
- break;
- case kTheColorDepth:
- // bpp. 1, 2, 4, 8, 32
- d.type = INT;
- d.u.i = _vm->_colorDepth;
- break;
case kTheMachineType:
// 1 - Macintosh 512Ke D2
// 2 - Macintosh Plus D2
@@ -517,138 +363,292 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
d.type = INT;
d.u.i = _vm->_machineType;
break;
- case kTheFrame:
- d.type = INT;
- d.u.i = _vm->getCurrentScore()->getCurrentFrame();
+ case kTheMouseH:
+ d.type = INT;
+ d.u.i = g_system->getEventManager()->getMousePos().x;
+ break;
+ case kTheMouseV:
+ d.type = INT;
+ d.u.i = g_system->getEventManager()->getMousePos().y;
+ break;
+ case kThePerFrameHook:
+ warning("STUB: Lingo::getTheEntity(): getting the perframehook");
+ break;
+ case kThePi:
+ d.type = FLOAT;
+ d.u.f = M_PI;
+ break;
+ case kTheSprite:
+ d = getTheSprite(id, field);
+ break;
+ case kTheSqrt:
+ id.toFloat();
+ d.type = FLOAT;
+ d.u.f = sqrt(id.u.f);
+ break;
+ case kTheStillDown:
+ d.type = INT;
+ d.u.i = _vm->getCurrentScore()->_mouseIsDown;
+ break;
+ default:
+ warning("Lingo::getTheEntity(): Unprocessed getting field %d of entity %d", field, entity);
+ d.type = VOID;
+ }
+
+ return d;
+}
+
+void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
+ switch (entity) {
+ case kTheCast:
+ setTheCast(id, field, d);
+ break;
+ case kTheColorDepth:
+ _vm->_colorDepth = d.toInt();
+
+ // bpp. 1, 2, 4, 8, 32
+ warning("STUB: Lingo::setTheEntity(): Set color depth to %d", _vm->_colorDepth);
+ break;
+ case kTheFloatPrecision:
+ _floatPrecision = d.toInt();
+ _floatPrecision = MAX(0, MIN(_floatPrecision, 19)); // 0 to 19
+ _floatPrecisionFormat = Common::String::format("%%.%df", _floatPrecision);
+ break;
+ case kThePerFrameHook:
+ warning("STUB: Lingo::setTheEntity(): setting the perframehook");
+ break;
+ case kTheSprite:
+ setTheSprite(id, field, d);
+ break;
+ default:
+ warning("Lingo::setTheEntity(): Unprocessed setting field %d of entity %d", field, entity);
+ }
+}
+
+Datum Lingo::getTheSprite(Datum &id1, int field) {
+ Datum d;
+ int id = 0;
+
+ if (id1.type == INT) {
+ id = id1.u.i;
+ } else {
+ warning("Lingo::getTheSprite(): Unknown the sprite id type: %s", id1.type2str());
+ return d;
+ }
+
+ if (!_vm->getCurrentScore()) {
+ warning("Lingo::getTheSprite(): The sprite %d field %d setting over non-active score", id, field);
+ return d;
+ }
+
+ Sprite *sprite = _vm->getCurrentScore()->getSpriteById(id);
+
+ if (!sprite)
+ return d;
+
+ d.type = INT;
+
+ switch (field) {
+ case kTheBackColor:
+ d.u.i = sprite->_backColor;
+ break;
+ case kTheBlend:
+ d.u.i = sprite->_blend;
+ break;
+ case kTheBottom:
+ d.u.i = sprite->_bottom;
+ break;
+ case kTheCastNum:
+ d.u.i = sprite->_castId;
+ break;
+ case kTheConstraint:
+ d.u.i = sprite->_constraint;
+ break;
+ case kTheEditableText:
+ d.toString();
+ d.u.s = &sprite->_editableText;
+ break;
+ case kTheForeColor:
+ d.u.i = sprite->_foreColor;
+ break;
+ case kTheHeight:
+ d.u.i = sprite->_height;
+ break;
+ case kTheInk:
+ d.u.i = sprite->_ink;
+ break;
+ case kTheLeft:
+ d.u.i = sprite->_left;
+ break;
+ case kTheLineSize:
+ d.u.i = sprite->_lineSize;
+ break;
+ case kTheLocH:
+ d.u.i = sprite->_startPoint.x;
+ break;
+ case kTheLocV:
+ d.u.i = sprite->_startPoint.y;
+ break;
+ case kTheMoveableSprite:
+ d.u.i = sprite->_moveable;
+ break;
+ case kTheMovieRate:
+ d.u.i = sprite->_movieRate;
+ break;
+ case kTheMovieTime:
+ d.u.i = sprite->_movieTime;
+ break;
+ case kThePattern:
+ d.u.i = sprite->getPattern();
+ break;
+ case kTheRight:
+ d.u.i = sprite->_right;
+ break;
+ case kTheStartTime:
+ d.u.i = sprite->_startTime;
+ break;
+ case kTheStopTime:
+ d.u.i = sprite->_stopTime;
+ break;
+ case kTheStretch:
+ d.u.i = sprite->_stretch;
+ break;
+ case kTheTop:
+ d.u.i = sprite->_top;
+ break;
+ case kTheTrails:
+ d.u.i = sprite->_trails;
+ break;
+ case kTheType:
+ d.u.i = sprite->_type;
+ break;
+ case kTheVisible:
+ d.u.i = (sprite->_visible ? 1 : 0);
break;
- case kTheStillDown:
- d.type = INT;
- d.u.i = _vm->getCurrentScore()->_mouseIsDown;
+ case kTheVolume:
+ d.u.i = sprite->_volume;
break;
- case kThePi:
- d.type = FLOAT;
- d.u.f = M_PI;
+ case kTheWidth:
+ d.u.i = sprite->_width;
break;
default:
- warning("Lingo::getTheEntity(): Unprocessed getting field %d of entity %d", field, entity);
+ warning("Lingo::getTheSprite(): Unprocessed getting field %d of sprite", field);
d.type = VOID;
}
return d;
}
-Datum Lingo::getTheSprite(Datum &id1, int field) {
- Datum d;
+void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
int id = 0;
if (id1.type == INT) {
id = id1.u.i;
} else {
- warning("Lingo::getTheSprite(): Unknown the sprite id type: %s", id1.type2str());
- return d;
+ warning("Lingo::setTheSprite(): Unknown the sprite id type: %s", id1.type2str());
+ return;
}
+ d.toInt(); // Enforce Integer
+
if (!_vm->getCurrentScore()) {
- warning("Lingo::getTheSprite(): The sprite %d field %d setting over non-active score", id, field);
- return d;
+ warning("Lingo::setTheSprite(): The sprite %d field %d setting over non-active score", id, field);
+ return;
}
Sprite *sprite = _vm->getCurrentScore()->getSpriteById(id);
if (!sprite)
- return d;
-
- d.type = INT;
+ return;
switch (field) {
- case kTheCastNum:
- d.u.i = sprite->_castId;
- break;
- case kTheWidth:
- d.u.i = sprite->_width;
- break;
- case kTheHeight:
- d.u.i = sprite->_height;
- break;
- case kTheTrails:
- d.u.i = sprite->_trails;
+ case kTheBackColor:
+ sprite->_backColor = d.u.i;
break;
- case kTheInk:
- d.u.i = sprite->_ink;
+ case kTheBlend:
+ sprite->_blend = d.u.i;
break;
- case kTheLocH:
- d.u.i = sprite->_startPoint.x;
+ case kTheBottom:
+ sprite->_bottom = d.u.i;
break;
- case kTheLocV:
- d.u.i = sprite->_startPoint.y;
+ case kTheCastNum:
+ if (_vm->getCurrentScore()->_loadedCast->contains(d.u.i)) {
+ _vm->getCurrentScore()->loadCastInto(sprite, d.u.i);
+ sprite->_castId = d.u.i;
+ }
break;
case kTheConstraint:
- d.u.i = sprite->_constraint;
- break;
- case kTheMoveableSprite:
- d.u.i = sprite->_moveable;
+ sprite->_constraint = d.u.i;
break;
- case kTheBackColor:
- d.u.i = sprite->_backColor;
+ case kTheEditableText:
+ sprite->_editableText = *d.toString();
break;
case kTheForeColor:
- d.u.i = sprite->_foreColor;
+ sprite->_foreColor = d.u.i;
break;
- case kTheLeft:
- d.u.i = sprite->_left;
+ case kTheHeight:
+ sprite->_height = d.u.i;
break;
- case kTheRight:
- d.u.i = sprite->_right;
+ case kTheInk:
+ sprite->_ink = static_cast<InkType>(d.u.i);
break;
- case kTheBottom:
- d.u.i = sprite->_bottom;
+ case kTheLeft:
+ sprite->_left = d.u.i;
break;
- case kTheTop:
- d.u.i = sprite->_top;
+ case kTheLineSize:
+ sprite->_lineSize = d.u.i;
break;
- case kTheBlend:
- d.u.i = sprite->_blend;
+ case kTheLocH:
+ sprite->_startPoint.x = d.u.i;
break;
- case kTheVisible:
- d.u.i = (sprite->_visible ? 1 : 0);
+ case kTheLocV:
+ sprite->_startPoint.y = d.u.i;
break;
- case kTheType:
- d.u.i = sprite->_type;
+ case kTheMoveableSprite:
+ sprite->_moveable = d.u.i;
break;
case kTheMovieRate:
- d.u.i = sprite->_movieRate;
+ sprite->_movieRate = d.u.i;
break;
case kTheMovieTime:
- d.u.i = sprite->_movieTime;
+ sprite->_movieTime = d.u.i;
break;
- case kTheStopTime:
- d.u.i = sprite->_stopTime;
+ case kThePattern:
+ sprite->setPattern(d.u.i);
+ break;
+ case kTheRight:
+ sprite->_right = d.u.i;
break;
case kTheStartTime:
- d.u.i = sprite->_startTime;
+ sprite->_startTime = d.u.i;
break;
- case kTheVolume:
- d.u.i = sprite->_volume;
+ case kTheStopTime:
+ sprite->_stopTime = d.u.i;
break;
case kTheStretch:
- d.u.i = sprite->_stretch;
+ sprite->_stretch = d.u.i;
break;
- case kTheLineSize:
- d.u.i = sprite->_lineSize;
+ case kTheTop:
+ sprite->_top = d.u.i;
break;
- case kTheEditableText:
- d.toString();
- d.u.s = &sprite->_editableText;
+ case kTheTrails:
+ sprite->_trails = d.u.i;
break;
- case kThePattern:
- d.u.i = sprite->getPattern();
+ case kTheType:
+ sprite->_type = static_cast<SpriteType>(d.u.i);
+ break;
+ case kTheVisible:
+ sprite->_visible = (d.u.i == 0 ? false : true);
+ break;
+ case kTheVolume:
+ sprite->_volume = d.u.i;
+ break;
+ case kTheWidth:
+ sprite->_width = d.u.i;
break;
default:
- warning("Lingo::getTheSprite(): Unprocessed getting field %d of sprite", field);
- d.type = VOID;
+ warning("Lingo::setTheSprite(): Unprocessed setting field %d of sprite", field);
}
-
- return d;
}
Datum Lingo::getTheCast(Datum &id1, int field) {
@@ -684,27 +684,6 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
d.type = INT;
switch (field) {
- case kTheCastType:
- d.u.i = castType;
- break;
- case kTheFileName:
- d.toString();
- d.u.s = &castInfo->fileName;
- break;
- case kTheName:
- d.toString();
- d.u.s = &castInfo->name;
- break;
- case kTheScriptText:
- d.toString();
- d.u.s = &castInfo->script;
- break;
- case kTheWidth:
- d.u.i = _vm->getCurrentScore()->getCastMemberInitialRect(id).width();
- break;
- case kTheHeight:
- d.u.i = _vm->getCurrentScore()->getCastMemberInitialRect(id).height();
- break;
case kTheBackColor:
{
if (castType != kCastShape) {
@@ -717,6 +696,13 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
d.u.i = shape->_bgCol;
}
break;
+ case kTheCastType:
+ d.u.i = castType;
+ break;
+ case kTheFileName:
+ d.toString();
+ d.u.s = &castInfo->fileName;
+ break;
case kTheForeColor:
{
if (castType != kCastShape) {
@@ -729,9 +715,23 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
d.u.i = shape->_fgCol;
}
break;
+ case kTheHeight:
+ d.u.i = _vm->getCurrentScore()->getCastMemberInitialRect(id).height();
+ break;
case kTheLoaded:
d.u.i = 1; //Not loaded handled above
break;
+ case kTheName:
+ d.toString();
+ d.u.s = &castInfo->name;
+ break;
+ case kTheScriptText:
+ d.toString();
+ d.u.s = &castInfo->script;
+ break;
+ case kTheWidth:
+ d.u.i = _vm->getCurrentScore()->getCastMemberInitialRect(id).width();
+ break;
default:
warning("Lingo::getTheCast(): Unprocessed getting field %d of cast %d", field, id);
d.type = VOID;
@@ -761,6 +761,18 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) {
CastInfo *castInfo = score->_castsInfo[id + score->_castIDoffset];
switch (field) {
+ case kTheBackColor:
+ {
+ if (castType != kCastShape) {
+ warning("Lingo::setTheCast(): Field %d of cast %d not found", field, id);
+ }
+ ShapeCast *shape = (ShapeCast *)score->_loadedCast->getVal(id);
+
+ d.toInt();
+ shape->_bgCol = d.u.i;
+ shape->_modified = 1;
+ }
+ break;
case kTheCastType:
// TODO: You can actually switch the cast type!?
warning("Lingo::setTheCast(): Tried to switch cast type of %d", id);
@@ -775,6 +787,22 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) {
d.toString();
castInfo->fileName = *d.u.s;
break;
+ case kTheForeColor:
+ {
+ if (castType != kCastShape) {
+ warning("Lingo::setTheCast(): Field %d of cast %d not found", field, id);
+ return;
+ }
+ ShapeCast *shape = (ShapeCast *)score->_loadedCast->getVal(id);
+ shape->_fgCol = d.u.i;
+ shape->_modified = 1;
+ }
+ break;
+ case kTheHeight:
+ d.toInt();
+ score->getCastMemberInitialRect(id).setHeight(d.u.i);
+ score->setCastMemberModified(id);
+ break;
case kTheName:
if (!castInfo) {
warning("Lingo::setTheCast(): The cast %d not found. type: %d", id, castType);
@@ -791,39 +819,6 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) {
d.toString();
castInfo->script = *d.u.s;
break;
- case kTheWidth:
- d.toInt();
- score->getCastMemberInitialRect(id).setWidth(d.u.i);
- score->setCastMemberModified(id);
- break;
- case kTheHeight:
- d.toInt();
- score->getCastMemberInitialRect(id).setHeight(d.u.i);
- score->setCastMemberModified(id);
- break;
- case kTheBackColor:
- {
- if (castType != kCastShape) {
- warning("Lingo::setTheCast(): Field %d of cast %d not found", field, id);
- }
- ShapeCast *shape = (ShapeCast *)score->_loadedCast->getVal(id);
-
- d.toInt();
- shape->_bgCol = d.u.i;
- shape->_modified = 1;
- }
- break;
- case kTheForeColor:
- {
- if (castType != kCastShape) {
- warning("Lingo::setTheCast(): Field %d of cast %d not found", field, id);
- return;
- }
- ShapeCast *shape = (ShapeCast *)score->_loadedCast->getVal(id);
- shape->_fgCol = d.u.i;
- shape->_modified = 1;
- }
- break;
case kTheText:
if (castType == kCastText) {
if (score->_loadedCast->contains(id) && score->_loadedCast->getVal(id)->_type == kCastText) {
@@ -837,6 +832,11 @@ void Lingo::setTheCast(Datum &id1, int field, Datum &d) {
warning("Lingo::setTheCast(): Unprocessed setting text of cast %d type %d", id, castType);
}
break;
+ case kTheWidth:
+ d.toInt();
+ score->getCastMemberInitialRect(id).setWidth(d.u.i);
+ score->setCastMemberModified(id);
+ break;
default:
warning("Lingo::setTheCast(): Unprocessed setting field %d of cast %d", field, id);
}
More information about the Scummvm-git-logs
mailing list