[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