[Scummvm-git-logs] scummvm master -> 2b754272138fee5c4fa62d4920f56533028dc736
djsrv
dservilla at gmail.com
Wed Jul 22 20:01:50 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:
2b75427213 DIRECTOR: LINGO: Fix put before/after field
Commit: 2b754272138fee5c4fa62d4920f56533028dc736
https://github.com/scummvm/scummvm/commit/2b754272138fee5c4fa62d4920f56533028dc736
Author: djsrv (dservilla at gmail.com)
Date: 2020-07-22T16:01:12-04:00
Commit Message:
DIRECTOR: LINGO: Fix put before/after field
Changed paths:
engines/director/lingo/lingo-bytecode.cpp
engines/director/lingo/lingo-code.cpp
engines/director/lingo/lingo-code.h
engines/director/lingo/lingo-gr.cpp
engines/director/lingo/lingo-gr.y
diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index fbd742ec35..24fddd8ece 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -439,9 +439,7 @@ void LC::cb_v4assign() {
LB::b_field(1);
Datum field = g_lingo->pop();
g_lingo->push(field);
- LC::c_after();
- g_lingo->push(field);
- LC::c_assign();
+ LC::c_putafter();
}
break;
case 0x36:
@@ -450,9 +448,7 @@ void LC::cb_v4assign() {
LB::b_field(1);
Datum field = g_lingo->pop();
g_lingo->push(field);
- LC::c_before();
- g_lingo->push(field);
- LC::c_assign();
+ LC::c_putbefore();
}
break;
default:
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index a7c2bb9459..0aabbde53c 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -66,14 +66,14 @@ static struct FuncDescr {
} funcDescr[] = {
{ 0, "STOP", "" },
{ LC::c_add, "c_add", "" },
- { LC::c_after, "c_after", "" }, // D3
+ { LC::c_putafter, "c_putafter", "" }, // D3
{ LC::c_ampersand, "c_ampersand", "" },
{ LC::c_and, "c_and", "" },
{ LC::c_argcnoretpush, "c_argcnoretpush", "i" },
{ LC::c_argcpush, "c_argcpush", "i" },
{ LC::c_arraypush, "c_arraypush", "i" },
{ LC::c_assign, "c_assign", "" },
- { LC::c_before, "c_before", "" }, // D3
+ { LC::c_putbefore, "c_putbefore", "" }, // D3
{ LC::c_callcmd, "c_callcmd", "si" },
{ LC::c_callfunc, "c_callfunc", "si" },
{ LC::c_charOf, "c_charOf", "" }, // D3
@@ -826,30 +826,18 @@ void LC::c_ampersand() {
g_lingo->push(res);
}
-void LC::c_before() {
+void LC::c_putbefore() {
Datum var = g_lingo->pop();
Datum a = g_lingo->pop();
-
- if (var.type != VAR) {
- warning("STUB: c_before(%s, %s)", a.asString(true).c_str(), var.asString(true).c_str());
- return;
- }
-
Datum b = g_lingo->varFetch(var);
Datum res(a.asString() + b.asString());
g_lingo->varAssign(var, res);
}
-void LC::c_after() {
+void LC::c_putafter() {
Datum var = g_lingo->pop();
Datum a = g_lingo->pop();
-
- if (var.type != VAR) {
- warning("STUB: c_after(%s, %s)", a.asString(true).c_str(), var.asString(true).c_str());
- return;
- }
-
Datum b = g_lingo->varFetch(var);
Datum res(b.asString() + a.asString());
diff --git a/engines/director/lingo/lingo-code.h b/engines/director/lingo/lingo-code.h
index fd0771b568..25184373d5 100644
--- a/engines/director/lingo/lingo-code.h
+++ b/engines/director/lingo/lingo-code.h
@@ -48,8 +48,8 @@ namespace LC {
void c_not();
void c_ampersand();
- void c_after();
- void c_before();
+ void c_putafter();
+ void c_putbefore();
void c_concat();
void c_contains();
void c_starts();
diff --git a/engines/director/lingo/lingo-gr.cpp b/engines/director/lingo/lingo-gr.cpp
index 8195433df2..a6252a3296 100644
--- a/engines/director/lingo/lingo-gr.cpp
+++ b/engines/director/lingo/lingo-gr.cpp
@@ -2231,7 +2231,7 @@ yyreduce:
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
mVar((yyvsp[0].s), globalCheck());
- g_lingo->code1(LC::c_after);
+ g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
#line 2238 "engines/director/lingo/lingo-gr.cpp"
@@ -2240,7 +2240,7 @@ yyreduce:
case 16:
#line 256 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->code1(LC::c_after);
+ g_lingo->code1(LC::c_putafter);
(yyval.code) = (yyvsp[-2].code); }
#line 2246 "engines/director/lingo/lingo-gr.cpp"
break;
@@ -2251,7 +2251,7 @@ yyreduce:
g_lingo->code1(LC::c_varpush);
g_lingo->codeString((yyvsp[0].s)->c_str());
mVar((yyvsp[0].s), globalCheck());
- g_lingo->code1(LC::c_before);
+ g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code);
delete (yyvsp[0].s); }
#line 2258 "engines/director/lingo/lingo-gr.cpp"
@@ -2260,7 +2260,7 @@ yyreduce:
case 18:
#line 266 "engines/director/lingo/lingo-gr.y"
{
- g_lingo->code1(LC::c_before);
+ g_lingo->code1(LC::c_putbefore);
(yyval.code) = (yyvsp[-2].code); }
#line 2266 "engines/director/lingo/lingo-gr.cpp"
break;
diff --git a/engines/director/lingo/lingo-gr.y b/engines/director/lingo/lingo-gr.y
index e6934b4944..67eead8eb4 100644
--- a/engines/director/lingo/lingo-gr.y
+++ b/engines/director/lingo/lingo-gr.y
@@ -250,21 +250,21 @@ asgn: tPUT expr tINTO ID {
g_lingo->code1(LC::c_varpush);
g_lingo->codeString($ID->c_str());
mVar($ID, globalCheck());
- g_lingo->code1(LC::c_after);
+ g_lingo->code1(LC::c_putafter);
$$ = $expr;
delete $ID; } // D3
| tPUT expr tAFTER chunkexpr {
- g_lingo->code1(LC::c_after);
+ g_lingo->code1(LC::c_putafter);
$$ = $expr; }
| tPUT expr tBEFORE ID {
g_lingo->code1(LC::c_varpush);
g_lingo->codeString($ID->c_str());
mVar($ID, globalCheck());
- g_lingo->code1(LC::c_before);
+ g_lingo->code1(LC::c_putbefore);
$$ = $expr;
delete $ID; } // D3
| tPUT expr tBEFORE chunkexpr {
- g_lingo->code1(LC::c_before);
+ g_lingo->code1(LC::c_putbefore);
$$ = $expr; }
| tSET ID tEQ expr {
g_lingo->code1(LC::c_varpush);
More information about the Scummvm-git-logs
mailing list