[Scummvm-git-logs] scummvm master -> 701b8dc9971d3f56a71322c3035f2eefad4f7b9c

djsrv dservilla at gmail.com
Tue Aug 10 20:49:35 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:
701b8dc997 DIRECTOR: LINGO: Eliminate returnNumber


Commit: 701b8dc9971d3f56a71322c3035f2eefad4f7b9c
    https://github.com/scummvm/scummvm/commit/701b8dc9971d3f56a71322c3035f2eefad4f7b9c
Author: djsrv (dservilla at gmail.com)
Date: 2021-08-10T16:49:43-04:00

Commit Message:
DIRECTOR: LINGO: Eliminate returnNumber

It turns out b_value can return values other than numbers despite the
documentation. returnNumber is no longer needed.

Changed paths:
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-builtins.h
    engines/director/lingo/lingo-code.cpp


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 974ad60441..db9aeb8fe2 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -131,7 +131,6 @@ static BuiltinProto builtins[] = {
 	{ "quit",			LB::b_quit,			0, 0, 200, CBLTIN },	// D2 c
 	{ "restart",		LB::b_restart,		0, 0, 200, CBLTIN },	// D2 c
 	{ "return",			LB::b_return,		0, 1, 200, CBLTIN },	// D2 f
-	{ "scummvm_returnNumber", LB::b_returnNumber, 1, 1, 200, CBLTIN }, // D2 f
 	{ "shutDown",		LB::b_shutDown,		0, 0, 200, CBLTIN },	// D2 c
 	{ "startTimer",		LB::b_startTimer,	0, 0, 200, CBLTIN },	// D2 c
 		// when keyDown													// D2
@@ -527,7 +526,7 @@ void LB::b_value(int nargs) {
 		g_lingo->push(Datum(0));
 		return;
 	}
-	Common::String code = "scummvm_returnNumber " + expr;
+	Common::String code = "return " + expr;
 	// Compile the code to an anonymous function and call it
 	ScriptContext *sc = g_lingo->_compiler->compileAnonymous(code);
 	Symbol sym = sc->_eventHandlers[kEventGeneric];
@@ -1510,16 +1509,6 @@ void LB::b_return(int nargs) {
 	LC::c_procret();
 }
 
-void LB::b_returnNumber(int nargs) {
-	Datum d = g_lingo->pop();
-	// Only return numeric values
-	if (d.type == INT || d.type == FLOAT)
-		g_lingo->push(d);
-	else
-		g_lingo->push(Datum());
-	LC::c_procret();
-}
-
 void LB::b_restart(int nargs) {
 	b_quit(nargs);
 
diff --git a/engines/director/lingo/lingo-builtins.h b/engines/director/lingo/lingo-builtins.h
index 4c00207411..d3ba81fa3b 100644
--- a/engines/director/lingo/lingo-builtins.h
+++ b/engines/director/lingo/lingo-builtins.h
@@ -143,7 +143,6 @@ void b_restart(int nargs);
 void b_shutDown(int nargs);
 void b_startTimer(int nargs);
 void b_return(int nargs);
-void b_returnNumber(int nargs);
 
 void b_closeDA(int nargs);
 void b_closeResFile(int nargs);
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index b3436a65c3..e51b2a508d 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1579,7 +1579,7 @@ void LC::call(const Symbol &funcSym, int nargs, bool allowRetVal) {
 
 		uint stackSize = g_lingo->_stack.size();
 
-		if (funcSym.u.bltin != LB::b_return && funcSym.u.bltin != LB::b_returnNumber && funcSym.u.bltin != LB::b_value) {
+		if (funcSym.u.bltin != LB::b_return && funcSym.u.bltin != LB::b_value) {
 			if (stackSize == stackSizeBefore + 1) {
 				if (!allowRetVal) {
 					warning("dropping return value");




More information about the Scummvm-git-logs mailing list