[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