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

djsrv dservilla at gmail.com
Wed Jul 22 18:31:39 UTC 2020


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
542c702d8f DIRECTOR: LINGO: Don't push void on undefined cmds
8253584895 DIRECTOR: LINGO:  Replace incorrect codeFuncs
f1ccd60db8 DIRECTOR: LINGO: Make allowRetVal mandatory


Commit: 542c702d8fe2dfe7762dba4bf79a5b1813708daf
    https://github.com/scummvm/scummvm/commit/542c702d8fe2dfe7762dba4bf79a5b1813708daf
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-22T14:31:13-04:00

Commit Message:
DIRECTOR: LINGO: Don't push void on undefined cmds

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


diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 9d00f01ec3..4e17f4eb96 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -1501,7 +1501,8 @@ void LC::call(const Symbol &funcSym, int nargs, bool allowRetVal) {
 			g_lingo->pop();
 
 		// Push dummy value
-		g_lingo->pushVoid();
+		if (allowRetVal)
+			g_lingo->pushVoid();
 
 		return;
 	}


Commit: 825358489529cc4dfb99eec505d71feb01e7a369
    https://github.com/scummvm/scummvm/commit/825358489529cc4dfb99eec505d71feb01e7a369
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-22T14:31:13-04:00

Commit Message:
DIRECTOR: LINGO:  Replace incorrect codeFuncs

Changed paths:
    engines/director/lingo/lingo-gr.cpp
    engines/director/lingo/lingo-gr.y


diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 1fbb2409c1..8195433df2 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -3098,7 +3098,7 @@ yyreduce:
 #line 676 "engines/director/lingo/lingo-gr.y"
                                         {
 		Common::String open("open");
-		g_lingo->codeFunc(&open, 2); }
+		g_lingo->codeCmd(&open, 2); }
 #line 3103 "engines/director/lingo/lingo-gr.cpp"
     break;
 
@@ -3106,7 +3106,7 @@ yyreduce:
 #line 679 "engines/director/lingo/lingo-gr.y"
                                                 {
 		Common::String open("open");
-		g_lingo->codeFunc(&open, 1); }
+		g_lingo->codeCmd(&open, 1); }
 #line 3111 "engines/director/lingo/lingo-gr.cpp"
     break;
 
@@ -3282,7 +3282,7 @@ yyreduce:
 #line 759 "engines/director/lingo/lingo-gr.y"
                                                                   {
 		g_lingo->codeSetImmediate(false);
-		g_lingo->codeFunc((yyvsp[-2].s), (yyvsp[0].narg));
+		g_lingo->codeCmd((yyvsp[-2].s), (yyvsp[0].narg));
 		delete (yyvsp[-2].s); }
 #line 3288 "engines/director/lingo/lingo-gr.cpp"
     break;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index bb9a73f0f0..e6934b4944 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -675,10 +675,10 @@ proc: tPUT expr					{ g_lingo->code1(LC::c_printtop); }
 	| tINSTANCE					{ inArgs(); } instancelist { inLast(); }
 	| tOPEN expr tWITH expr		{
 		Common::String open("open");
-		g_lingo->codeFunc(&open, 2); }
+		g_lingo->codeCmd(&open, 2); }
 	| tOPEN expr 				{
 		Common::String open("open");
-		g_lingo->codeFunc(&open, 1); }
+		g_lingo->codeCmd(&open, 1); }
 	| ID[func] '(' ID[method] ')' {
 			g_lingo->code1(LC::c_lazyeval);
 			g_lingo->codeString($method->c_str());
@@ -758,7 +758,7 @@ playfunc: tPLAY expr 			{ // "play #done" is also caught by this
 		g_lingo->code1(LC::c_play); }
 	| tPLAYACCEL { g_lingo->codeSetImmediate(true); } arglist {
 		g_lingo->codeSetImmediate(false);
-		g_lingo->codeFunc($tPLAYACCEL, $arglist);
+		g_lingo->codeCmd($tPLAYACCEL, $arglist);
 		delete $tPLAYACCEL; }
 
 // macro


Commit: f1ccd60db8626dfbeeae10b2da93602728fdd223
    https://github.com/scummvm/scummvm/commit/f1ccd60db8626dfbeeae10b2da93602728fdd223
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-22T14:31:13-04:00

Commit Message:
DIRECTOR: LINGO: Make allowRetVal mandatory

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


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 586284399c..b24a6e221f 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -541,7 +541,7 @@ void LB::b_value(int nargs) {
 	// Compile the code to an anonymous function and call it
 	ScriptContext *sc = g_lingo->compileAnonymous(code.c_str());
 	Symbol sym = sc->_eventHandlers[kEventScript];
-	LC::call(sym, 0);
+	LC::call(sym, 0, true);
 }
 
 ///////////////////
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 4e17f4eb96..d666323771 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -389,7 +389,7 @@ void LC::c_constpush() {
 		funcSym = g_lingo->_builtinConsts[name];
 	}
 
-	LC::call(funcSym, 0);
+	LC::call(funcSym, 0, true);
 }
 
 void LC::c_intpush() {
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index 8e826606b2..fd0771b568 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -116,8 +116,8 @@ namespace LC {
 	void c_callcmd();
 	void c_callfunc();
 
-	void call(const Symbol &targetSym, int nargs, bool allowRetVal = true);
-	void call(const Common::String &name, int nargs, bool allowRetVal = true);
+	void call(const Symbol &targetSym, int nargs, bool allowRetVal);
+	void call(const Common::String &name, int nargs, bool allowRetVal);
 
 	void c_procret();
 
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index c1bbdc7c2f..ae398fe525 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -273,7 +273,7 @@ void LM::m_perform(int nargs) {
 	Datum methodName = g_lingo->_stack.remove_at(g_lingo->_stack.size() - nargs); // Take method name out of stack
 	nargs -= 1;
 	Symbol funcSym = me->getMethod(*methodName.u.s);
-	LC::call(funcSym, nargs);
+	LC::call(funcSym, nargs, true);
 }
 
 // XObject
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 61de4c6fab..01be16a3ff 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -623,7 +623,7 @@ void Lingo::executeScript(ScriptType type, uint16 id) {
 	debugC(1, kDebugLingoExec, "Executing script type: %s, id: %d", scriptType2str(type), id);
 
 	Symbol sym = sc->_eventHandlers[kEventScript];
-	LC::call(sym, 0);
+	LC::call(sym, 0, false);
 	execute(_pc);
 }
 




More information about the Scummvm-git-logs mailing list