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

sev- noreply at scummvm.org
Tue Jun 21 23:13:45 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:
ad6b80009f DIRECTOR: LINGO: Implement setting of timeOutLapsed property


Commit: ad6b80009ffce3a8e1c13ea89532e6cf84760011
    https://github.com/scummvm/scummvm/commit/ad6b80009ffce3a8e1c13ea89532e6cf84760011
Author: Pragyansh Chaturvedi (r41k0u) (pragyanshchaturvedi18 at gmail.com)
Date: 2022-06-22T01:13:41+02:00

Commit Message:
DIRECTOR: LINGO: Implement setting of timeOutLapsed property

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


diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 3cf15d88cd3..8be75f709e8 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -124,6 +124,7 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
 	_centerStage = true;
 
 	_surface = nullptr;
+	_tickBaseline = 0;
 }
 
 DirectorEngine::~DirectorEngine() {
diff --git a/engines/director/director.h b/engines/director/director.h
index 5da1f86815e..2b4a471ed00 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -256,6 +256,9 @@ private:
 	Graphics::ManagedSurface *_surface;
 
 	StartOptions _options;
+
+public:
+	int _tickBaseline;
 };
 
 // An extension of MacPlotData for interfacing with inks and patterns without
diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index 2d3838b9c7e..c4c71be273b 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -40,7 +40,7 @@
 
 namespace Director {
 
-uint32 DirectorEngine::getMacTicks() { return g_system->getMillis() * 60 / 1000.; }
+uint32 DirectorEngine::getMacTicks() { return (g_system->getMillis() * 60 / 1000.) - _tickBaseline; }
 
 bool DirectorEngine::processEvents(bool captureClick) {
 	debugC(3, kDebugEvents, "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index faa715f2629..5b96d9056e5 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -1205,7 +1205,12 @@ void Lingo::setTheEntity(int entity, Datum &id, int field, Datum &d) {
 		break;
 	case kTheTimeoutLapsed:
 		// timeOutLapsed can be set in D4, but can't in D3. see D3.1 interactivity manual p312 and D4 dictionary p296.
-		setTheEntitySTUB(kTheTimeoutLapsed);
+		if (g_director->getVersion() >= 400 && d.type == INT) {
+			g_director->_tickBaseline = g_director->getMacTicks() - d.asInt();
+		}
+		if (d.type != INT) {
+			warning("Lingo::setTheEntity() : Wrong DatumType %d for setting of Lingo Property timeOutLapsed", d.type);
+		}
 		break;
 	case kTheTimeoutLength:
 		g_director->getCurrentMovie()->_timeOutLength = d.asInt();




More information about the Scummvm-git-logs mailing list