[Scummvm-git-logs] scummvm master -> 5b73cddc4e5c1f952f5036a00dba1b9e053f2521

sev- sev at scummvm.org
Mon Aug 3 16:46:40 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:
5b73cddc4e DIRECTOR: LINGO: Made scummvmAssert* built-ins trace line numbers


Commit: 5b73cddc4e5c1f952f5036a00dba1b9e053f2521
    https://github.com/scummvm/scummvm/commit/5b73cddc4e5c1f952f5036a00dba1b9e053f2521
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-03T18:46:13+02:00

Commit Message:
DIRECTOR: LINGO: Made scummvmAssert* built-ins trace line numbers

Changed paths:
    engines/director/lingo/lingo-builtins.cpp
    engines/director/lingo/lingo-codegen.cpp


diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index be2e1b710b..1b0da740fd 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -258,8 +258,8 @@ static struct BuiltinProto {
 	{ "lastWordOf",		LB::b_lastwordof,	1, 1, false, 4, FBLTIN },	//			D4 f
 
 	// ScummVM Asserts: Used for testing ScummVM's Lingo implementation
-	{ "scummvmAssert",	LB::b_scummvmassert,1, 1, true,  2, HBLTIN },
-	{ "scummvmAssertEqual",	LB::b_scummvmassertequal,2,2,true,2,HBLTIN },
+	{ "scummvmAssert",	LB::b_scummvmassert,1, 2, true,  2, HBLTIN },
+	{ "scummvmAssertEqual",	LB::b_scummvmassertequal,2,3,true,2,HBLTIN },
 
 
 	{ 0, 0, 0, 0, false, 0, VOIDSYM }
@@ -2438,21 +2438,23 @@ void LB::b_lastwordof(int nargs) {
 }
 
 void LB::b_scummvmassert(int nargs) {
+	Datum line = g_lingo->pop();
 	Datum d = g_lingo->pop();
 
 	if (d.asInt() == 0) {
-		warning("LB::b_scummvmassert: is false");
+		warning("LB::b_scummvmassert: is false at line %d", line.asInt());
 	}
 	assert(d.asInt() != 0);
 }
 
 void LB::b_scummvmassertequal(int nargs) {
+	Datum line = g_lingo->pop();
 	Datum d2 = g_lingo->pop();
 	Datum d1 = g_lingo->pop();
 
 	int result = d1.equalTo(d2);
 	if (!result) {
-		warning("LB::b_scummvmassertequals: %s is not equal %s", d1.asString().c_str(), d2.asString().c_str());
+		warning("LB::b_scummvmassertequals: %s is not equal %s at line %d", d1.asString().c_str(), d2.asString().c_str(), line.asInt());
 	}
 	assert(result == 1);
 }
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index cd551282e2..632c093436 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -214,6 +214,14 @@ int Lingo::codeSetImmediate(bool state) {
 }
 
 int Lingo::codeCmd(Common::String *s, int numpar) {
+	// Insert current line number to our asserts
+	if (s->equalsIgnoreCase("scummvmAssert") || s->equalsIgnoreCase("scummvmAssertEqual")) {
+		g_lingo->code1(LC::c_intpush);
+		g_lingo->codeInt(g_lingo->_linenumber);
+
+		numpar++;
+	}
+
 	int ret = g_lingo->code1(LC::c_callcmd);
 
 	g_lingo->codeString(s->c_str());




More information about the Scummvm-git-logs mailing list