[Scummvm-git-logs] scummvm master -> 56d740b60f374663afd846d60d90b5e43bea7656

rvanlaar noreply at scummvm.org
Fri Mar 18 23:18:17 UTC 2022


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:
56d740b60f DIRECTOR: LINGO: Implement preLoadEventAbort


Commit: 56d740b60f374663afd846d60d90b5e43bea7656
    https://github.com/scummvm/scummvm/commit/56d740b60f374663afd846d60d90b5e43bea7656
Author: Roland van Laar (roland at rolandvanlaar.nl)
Date: 2022-03-19T00:18:03+01:00

Commit Message:
DIRECTOR: LINGO: Implement preLoadEventAbort

preLoadEventAbort is a boolean property. When true pressing keys or clicking the
mouse can or stop preloading of cast member. ScummVM doesn't preload, so
implemented as a no-op.

Changed paths:
    engines/director/lingo/lingo-bytecode.cpp
    engines/director/lingo/lingo-the.cpp
    engines/director/lingo/lingo.cpp
    engines/director/lingo/lingo.h


diff --git a/engines/director/lingo/lingo-bytecode.cpp b/engines/director/lingo/lingo-bytecode.cpp
index 48504f767a6..9e4b76778cd 100644
--- a/engines/director/lingo/lingo-bytecode.cpp
+++ b/engines/director/lingo/lingo-bytecode.cpp
@@ -608,6 +608,8 @@ void LC::cb_theassign2() {
 		g_lingo->_updateMovieEnabled = bool(value.asInt());
 	} else if (name == "preloadRam") {
 		// We always have the unlimited RAM, ignore
+	} else if (name == "preLoadEventAbort") {
+		g_lingo->_preLoadEventAbort = bool(value.asInt());
 	} else {
 		warning("BUILDBOT: cb_theassign2 unkown name: %s", name.c_str());
 	}
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 9b35e8c182f..094610e9876 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -717,7 +717,8 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 		d = _perFrameHook;
 		break;
 	case kThePreloadEventAbort:
-		getTheEntitySTUB(kThePreloadEventAbort);
+		d.type = INT;
+		d.u.i = g_lingo->_preLoadEventAbort;
 		break;
 	case kThePreLoadRAM:
 		d.u.i = 0;		// We always have unlimited RAM
@@ -1017,7 +1018,7 @@ void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
 		_perFrameHook = d;
 		break;
 	case kThePreloadEventAbort:
-		setTheEntitySTUB(kThePreloadEventAbort);
+		g_lingo->_preLoadEventAbort = bool(d.asInt());
 		break;
 	case kThePreLoadRAM:
 		// We always have the unlimited RAM, ignore
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index bad4ab1e181..d68590c7480 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -167,6 +167,7 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
 
 	_itemDelimiter = ',';
 	_exitLock = false;
+	_preLoadEventAbort = false;
 
 	_searchPath.type = ARRAY;
 	_searchPath.u.farr = new FArray;
diff --git a/engines/director/lingo/lingo.h b/engines/director/lingo/lingo.h
index 99d2405b972..f2fc4dc3176 100644
--- a/engines/director/lingo/lingo.h
+++ b/engines/director/lingo/lingo.h
@@ -381,6 +381,7 @@ public:
 	Datum _actorList;
 	Common::u32char_type_t _itemDelimiter;
 	bool _exitLock;
+	bool _preLoadEventAbort; // no-op, everything is always preloaded
 	Datum _searchPath;
 	int _traceLoad; // internal Director verbosity level
 	bool _updateMovieEnabled;




More information about the Scummvm-git-logs mailing list