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

sev- sev at scummvm.org
Sun Feb 16 06:01:42 UTC 2020


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

Summary:
845058480d DIRECTOR: LINGO: Check score for presense. Makes tests passable again
a369a13bab ULTIMA: Fix incorrect assignment


Commit: 845058480d2c445282d4c334ec9794bae1d02098
    https://github.com/scummvm/scummvm/commit/845058480d2c445282d4c334ec9794bae1d02098
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-02-16T06:59:52+01:00

Commit Message:
DIRECTOR: LINGO: Check score for presense. Makes tests passable again

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 440875c..e79bccf 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -1376,6 +1376,11 @@ void LB::b_rollOver(int nargs) {
 
 	d.u.i = 0; // FALSE
 
+	if (!g_director->getCurrentScore()) {
+		warning("b_rollOver: Reference to an empty score");
+		return;
+	}
+
 	Frame *frame = g_director->getCurrentScore()->_frames[g_director->getCurrentScore()->getCurrentFrame()];
 
 	if (arg >= (int32) frame->_sprites.size()) {
@@ -1741,6 +1746,14 @@ void LB::b_field(int nargs) {
 
 	int id;
 
+	if (!g_director->getCurrentScore()) {
+		warning("b_field: Assigning to a field in an empty score");
+		d.u.i = 0;
+		d.type = INT;
+		g_lingo->push(d);
+		return;
+	}
+
 	if (d.type == STRING) {
 		if (g_director->getCurrentScore()->_castsNames.contains(*d.u.s))
 			id = g_director->getCurrentScore()->_castsNames[*d.u.s];
diff --git a/engines/director/lingo/lingo-codegen.cpp b/engines/director/lingo/lingo-codegen.cpp
index 6a00eba..6a902b2 100644
--- a/engines/director/lingo/lingo-codegen.cpp
+++ b/engines/director/lingo/lingo-codegen.cpp
@@ -535,6 +535,10 @@ void Lingo::varAssign(Datum &var, Datum &value) {
 		}
 	} else if (var.type == REFERENCE) {
 		Score *score = g_director->getCurrentScore();
+		if (!score) {
+			warning("varAssign: Assigning to a reference to an empty score");
+			return;
+		}
 		if (!score->_loadedCast->contains(var.u.i)) {
 			if (!score->_loadedCast->contains(var.u.i - score->_castIDoffset)) {
 				warning("varAssign: Unknown REFERENCE %d", var.u.i);


Commit: a369a13bab3ca917e74f2639df0d7a7b88b4d48c
    https://github.com/scummvm/scummvm/commit/a369a13bab3ca917e74f2639df0d7a7b88b4d48c
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-02-16T07:01:06+01:00

Commit Message:
ULTIMA: Fix incorrect assignment

Changed paths:
    engines/ultima/ultima8/gumps/gump.h


diff --git a/engines/ultima/ultima8/gumps/gump.h b/engines/ultima/ultima8/gumps/gump.h
index b11cb55..9e42f6f 100644
--- a/engines/ultima/ultima8/gumps/gump.h
+++ b/engines/ultima/ultima8/gumps/gump.h
@@ -90,14 +90,14 @@ public:
 	//! Set the Gump's shape/frame
 	inline void SetShape(Shape *shape, uint32 frameNum) {
 		_shape = shape;
-		_frameNum = _frameNum;
+		_frameNum = frameNum;
 	}
 
 	void                        SetShape(FrameID frame, bool adjustsize = false);
 
 	//! Set the Gump's frame
 	inline void                 Set_frameNum(uint32 frameNum) {
-		_frameNum = _frameNum;
+		_frameNum = frameNum;
 	}
 
 	//! Init the gump and add it to parent; call after construction




More information about the Scummvm-git-logs mailing list