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

djsrv dservilla at gmail.com
Mon Jun 28 18:21:42 UTC 2021


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:
eb7f93e670 DIRECTOR: LINGO: Make undefined function/property cause Lingo error


Commit: eb7f93e6701505b0a939bd2cb31c2994b03bd05c
    https://github.com/scummvm/scummvm/commit/eb7f93e6701505b0a939bd2cb31c2994b03bd05c
Author: djsrv (dservilla at gmail.com)
Date: 2021-06-28T14:21:46-04:00

Commit Message:
DIRECTOR: LINGO: Make undefined function/property cause Lingo error

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


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 694356043e..01e0dbd387 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1407,7 +1407,7 @@ void LC::call(const Common::String &name, int nargs, bool allowRetVal) {
 					g_lingo->_stack[g_lingo->_stack.size() - nargs] = funcSym.target; // Set first arg to target
 					call(funcSym, nargs, allowRetVal);
 				} else {
-					warning("Object <%s> has no method '%s'", obj.asString(true).c_str(), firstArg.u.s->c_str());
+					g_lingo->lingoError("Object <%s> has no method '%s'", obj.asString(true).c_str(), firstArg.u.s->c_str());
 				}
 				return;
 			}
@@ -1459,7 +1459,7 @@ void LC::call(const Symbol &funcSym, int nargs, bool allowRetVal) {
 	Datum target = funcSym.target;
 
 	if (funcSym.type == VOIDSYM) {
-		warning("Call to undefined handler. Dropping %d stack items", nargs);
+		g_lingo->lingoError("Call to undefined handler. Dropping %d stack items", nargs);
 
 		for (int i = 0; i < nargs; i++)
 			g_lingo->pop();
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 1fd50f177b..839a4f658f 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1603,7 +1603,7 @@ void Lingo::getObjectProp(Datum &obj, Common::String &propName) {
 		if (obj.u.obj->hasProp(propName)) {
 			d = obj.u.obj->getProp(propName);
 		} else {
-			warning("Lingo::getObjectProp: Object <%s> has no property '%s'", obj.asString(true).c_str(), propName.c_str());
+			g_lingo->lingoError("Lingo::getObjectProp: Object <%s> has no property '%s'", obj.asString(true).c_str(), propName.c_str());
 		}
 		g_lingo->push(d);
 		return;
@@ -1619,7 +1619,7 @@ void Lingo::getObjectProp(Datum &obj, Common::String &propName) {
 	if (obj.type == CASTREF) {
 		Movie *movie = _vm->getCurrentMovie();
 		if (!movie) {
-			warning("Lingo::getObjectProp(): No movie loaded");
+			g_lingo->lingoError("Lingo::getObjectProp(): No movie loaded");
 			g_lingo->push(d);
 			return;
 		}
@@ -1630,7 +1630,7 @@ void Lingo::getObjectProp(Datum &obj, Common::String &propName) {
 			if (propName.equalsIgnoreCase("loaded")) {
 				d = 0;
 			} else {
-				warning("Lingo::getObjectProp(): CastMember %d not found", id);
+				g_lingo->lingoError("Lingo::getObjectProp(): CastMember %d not found", id);
 			}
 			g_lingo->push(d);
 			return;
@@ -1639,7 +1639,7 @@ void Lingo::getObjectProp(Datum &obj, Common::String &propName) {
 		if (member->hasProp(propName)) {
 			d = member->getProp(propName);
 		} else {
-			warning("Lingo::getObjectProp(): CastMember %d has no property '%s'", id, propName.c_str());
+			g_lingo->lingoError("Lingo::getObjectProp(): CastMember %d has no property '%s'", id, propName.c_str());
 		}
 		g_lingo->push(d);
 		return;
@@ -1649,7 +1649,7 @@ void Lingo::getObjectProp(Datum &obj, Common::String &propName) {
 		LC::call(_builtinFuncs[propName], 1, true);
 		return;
 	}
-	warning("Lingo::getObjectProp: Invalid object: %s", obj.asString(true).c_str());
+	g_lingo->lingoError("Lingo::getObjectProp: Invalid object: %s", obj.asString(true).c_str());
 	g_lingo->push(d);
 }
 
@@ -1658,7 +1658,7 @@ void Lingo::setObjectProp(Datum &obj, Common::String &propName, Datum &val) {
 		if (obj.u.obj->hasProp(propName)) {
 			obj.u.obj->setProp(propName, val);
 		} else {
-			warning("Lingo::setObjectProp: Object <%s> has no property '%s'", obj.asString(true).c_str(), propName.c_str());
+			g_lingo->lingoError("Lingo::setObjectProp: Object <%s> has no property '%s'", obj.asString(true).c_str(), propName.c_str());
 		}
 	} else if (obj.type == PARRAY) {
 		int index = LC::compareArrays(LC::eqData, obj, propName, true).u.i;
@@ -1671,24 +1671,24 @@ void Lingo::setObjectProp(Datum &obj, Common::String &propName, Datum &val) {
 	} else if (obj.type == CASTREF) {
 		Movie *movie = _vm->getCurrentMovie();
 		if (!movie) {
-			warning("Lingo::setObjectProp(): No movie loaded");
+			g_lingo->lingoError("Lingo::setObjectProp(): No movie loaded");
 			return;
 		}
 
 		int id = obj.u.i;
 		CastMember *member = movie->getCastMember(id);
 		if (!member) {
-			warning("Lingo::setObjectProp(): CastMember %d not found", id);
+			g_lingo->lingoError("Lingo::setObjectProp(): CastMember %d not found", id);
 			return;
 		}
 
 		if (member->hasProp(propName)) {
 			member->setProp(propName, val);
 		} else {
-			warning("Lingo::setObjectProp(): CastMember %d has no property '%s'", id, propName.c_str());
+			g_lingo->lingoError("Lingo::setObjectProp(): CastMember %d has no property '%s'", id, propName.c_str());
 		}
 	} else {
-		warning("Lingo::setObjectProp: Invalid object: %s", obj.asString(true).c_str());
+		g_lingo->lingoError("Lingo::setObjectProp: Invalid object: %s", obj.asString(true).c_str());
 	}
 }
 




More information about the Scummvm-git-logs mailing list