[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