[Scummvm-git-logs] scummvm master -> 34fe0bcccbc79c3b905d498293cf3548510341f5
sev-
sev at scummvm.org
Sat Jan 25 11:06:40 UTC 2020
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:
34fe0bcccb DIRECTOR: LINGO: Tidy up the code
Commit: 34fe0bcccbc79c3b905d498293cf3548510341f5
https://github.com/scummvm/scummvm/commit/34fe0bcccbc79c3b905d498293cf3548510341f5
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-01-25T12:06:18+01:00
Commit Message:
DIRECTOR: LINGO: Tidy up the code
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 7260e6b..f3dbfb2 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -324,7 +324,6 @@ const char *Lingo::field2str(int id) {
return (const char *)buf;
}
-
Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
Datum d;
@@ -470,6 +469,12 @@ void Lingo::setTheMenuItemEntity(int entity, Datum &menuId, int field, Datum &me
Datum Lingo::getTheSprite(Datum &id1, int field) {
Datum d;
int id = 0;
+ Score *score = _vm->getCurrentScore();
+
+ if (!score) {
+ warning("Lingo::getTheSprite(): The sprite %d field \"%s\" setting over non-active score", id, field2str(field));
+ return d;
+ }
if (id1.type == INT) {
id = id1.u.i;
@@ -478,12 +483,7 @@ Datum Lingo::getTheSprite(Datum &id1, int field) {
return d;
}
- if (!_vm->getCurrentScore()) {
- warning("Lingo::getTheSprite(): The sprite %d field \"%s\" setting over non-active score", id, field2str(field));
- return d;
- }
-
- Sprite *sprite = _vm->getCurrentScore()->getSpriteById(id);
+ Sprite *sprite = score->getSpriteById(id);
if (!sprite)
return d;
@@ -584,6 +584,14 @@ Datum Lingo::getTheSprite(Datum &id1, int field) {
void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
int id = 0;
+ Score *score = _vm->getCurrentScore();
+
+ d.toInt(); // Enforce Integer
+
+ if (!score) {
+ warning("Lingo::setTheSprite(): The sprite %d field \"%s\" setting over non-active score", id, field2str(field));
+ return;
+ }
if (id1.type == INT) {
id = id1.u.i;
@@ -592,14 +600,7 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
return;
}
- d.toInt(); // Enforce Integer
-
- if (!_vm->getCurrentScore()) {
- warning("Lingo::setTheSprite(): The sprite %d field \"%s\" setting over non-active score", id, field2str(field));
- return;
- }
-
- Sprite *sprite = _vm->getCurrentScore()->getSpriteById(id);
+ Sprite *sprite = score->getSpriteById(id);
if (!sprite)
return;
@@ -615,8 +616,8 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
sprite->_bottom = d.u.i;
break;
case kTheCastNum:
- if (_vm->getCurrentScore()->_loadedCast->contains(d.u.i)) {
- _vm->getCurrentScore()->loadCastInto(sprite, d.u.i);
+ if (score->_loadedCast->contains(d.u.i)) {
+ score->loadCastInto(sprite, d.u.i);
sprite->_castId = d.u.i;
}
break;
@@ -698,12 +699,18 @@ void Lingo::setTheSprite(Datum &id1, int field, Datum &d) {
Datum Lingo::getTheCast(Datum &id1, int field) {
Datum d;
int id = 0;
+ Score *score = _vm->getCurrentScore();
+
+ if (!score) {
+ warning("Lingo::getTheCast(): The cast %d field \"%s\" setting over non-active score", id, field2str(field));
+ return d;
+ }
if (id1.type == INT) {
id = id1.u.i;
} else if (id1.type == STRING) {
- if (_vm->getCurrentScore()->_castsNames.contains(*id1.u.s)) {
- id = _vm->getCurrentScore()->_castsNames[*id1.u.s];
+ if (score->_castsNames.contains(*id1.u.s)) {
+ id = score->_castsNames[*id1.u.s];
} else {
warning("Lingo::getTheCast(): Unknown the cast \"%s\"", id1.u.s->c_str());
}
@@ -712,26 +719,21 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
return d;
}
- if (!_vm->getCurrentScore()) {
- warning("Lingo::getTheCast(): The cast %d field \"%s\" setting over non-active score", id, field2str(field));
- return d;
- }
+ // Setting default type
+ d.type = INT;
CastType castType;
CastInfo *castInfo;
- if (!_vm->getCurrentScore()->_loadedCast->contains(id)) {
+ if (!score->_loadedCast->contains(id)) {
if (field == kTheLoaded) {
- d.type = INT;
d.u.i = 0;
}
return d;
}
- castType = _vm->getCurrentScore()->_loadedCast->getVal(id)->_type;
- castInfo = _vm->getCurrentScore()->_castsInfo[id];
-
- d.type = INT;
+ castType = score->_loadedCast->getVal(id)->_type;
+ castInfo = score->_castsInfo[id];
switch (field) {
case kTheBackColor:
@@ -742,7 +744,7 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
return d;
}
- ShapeCast *shape = (ShapeCast *)_vm->getCurrentScore()->_loadedCast->getVal(id);
+ ShapeCast *shape = (ShapeCast *)score->_loadedCast->getVal(id);
d.u.i = shape->_bgCol;
}
break;
@@ -761,12 +763,12 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
return d;
}
- ShapeCast *shape = (ShapeCast *)_vm->getCurrentScore()->_loadedCast->getVal(id);
+ ShapeCast *shape = (ShapeCast *)score->_loadedCast->getVal(id);
d.u.i = shape->_fgCol;
}
break;
case kTheHeight:
- d.u.i = _vm->getCurrentScore()->getCastMemberInitialRect(id).height();
+ d.u.i = score->getCastMemberInitialRect(id).height();
break;
case kTheLoaded:
d.u.i = 1; //Not loaded handled above
@@ -780,7 +782,7 @@ Datum Lingo::getTheCast(Datum &id1, int field) {
d.u.s = &castInfo->script;
break;
case kTheWidth:
- d.u.i = _vm->getCurrentScore()->getCastMemberInitialRect(id).width();
+ d.u.i = score->getCastMemberInitialRect(id).width();
break;
case kTheNumber:
d.u.i = id;
More information about the Scummvm-git-logs
mailing list