[Scummvm-git-logs] scummvm master -> 28d05a21c30bbdb1fa2c98c010058d691ea9d708
djsrv
dservilla at gmail.com
Mon Jun 22 21:20:52 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:
242c68b9c0 DIRECTOR: LINGO: Remove Object scriptContext prop
28d05a21c3 DIRECTOR: LINGO: Revert divide by 0 revert
Commit: 242c68b9c0505f111df6598f53ebcadd855c0d48
https://github.com/scummvm/scummvm/commit/242c68b9c0505f111df6598f53ebcadd855c0d48
Author: djsrv (dservilla at gmail.com)
Date: 2020-06-22T17:16:27-04:00
Commit Message:
DIRECTOR: LINGO: Remove Object scriptContext prop
Objects need to be able to persist between movies when they're stored in
global vars, so they should be divorced from the script context that
created them, which will be destroyed when the movie changes.
Changed paths:
engines/director/lingo/lingo-object.cpp
engines/director/lingo/lingo.h
diff --git a/engines/director/lingo/lingo-object.cpp b/engines/director/lingo/lingo-object.cpp
index e29ab7ec5d..60fe49309d 100644
--- a/engines/director/lingo/lingo-object.cpp
+++ b/engines/director/lingo/lingo-object.cpp
@@ -114,7 +114,6 @@ Object *Object::clone() {
res->properties = properties;
res->methods = methods;
res->inheritanceLevel = inheritanceLevel + 1;
- res->scriptContext = scriptContext;
if (objArray) {
res->objArray = new Common::HashMap<uint32, Datum>(*objArray);
}
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index eb91a1e102..3fdb8648ec 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -250,17 +250,15 @@ struct Object {
DatumHash properties;
SymbolHash methods;
int inheritanceLevel; // 1 for original object
- ScriptContext *scriptContext;
// used only for factories
Common::HashMap<uint32, Datum> *objArray;
- Object(const Common::String &objName, ObjectType objType, ScriptContext *objContext = nullptr) {
+ Object(const Common::String &objName, ObjectType objType) {
name = new Common::String(objName);
type = objType;
disposed = false;
inheritanceLevel = 1;
- scriptContext = objContext;
prototype = nullptr;
if (objType == kFactoryObj) {
Commit: 28d05a21c30bbdb1fa2c98c010058d691ea9d708
https://github.com/scummvm/scummvm/commit/28d05a21c30bbdb1fa2c98c010058d691ea9d708
Author: djsrv (dservilla at gmail.com)
Date: 2020-06-22T17:16:32-04:00
Commit Message:
DIRECTOR: LINGO: Revert divide by 0 revert
Changed paths:
engines/director/lingo/lingo-code.cpp
diff --git a/engines/director/lingo/lingo-code.cpp b/engines/director/lingo/lingo-code.cpp
index 712521d2d0..6f2036ad1c 100644
--- a/engines/director/lingo/lingo-code.cpp
+++ b/engines/director/lingo/lingo-code.cpp
@@ -659,8 +659,10 @@ Datum LC::divData(Datum &d1, Datum &d2) {
}
if ((d2.type == INT && d2.u.i == 0) ||
- (d2.type == FLOAT && d2.u.f == 0.0))
- error("division by zero");
+ (d2.type == FLOAT && d2.u.f == 0.0)) {
+ warning("LC::divData(): division by zero");
+ d2 = Datum(1);
+ }
int alignedType = g_lingo->getAlignedType(d1, d2);
@@ -689,8 +691,10 @@ Datum LC::modData(Datum &d1, Datum &d2) {
int i1 = d1.asInt();
int i2 = d2.asInt();
- if (i2 == 0)
- error("division by zero");
+ if (i2 == 0) {
+ warning("LC::modData(): division by zero");
+ i2 = 1;
+ }
Datum res(i1 % i2);
return res;
More information about the Scummvm-git-logs
mailing list