[Scummvm-git-logs] scummvm master -> 5c337d45368a2746cf48c650f85aa64c886f9157

moralrecordings code at moral.net.au
Sat May 23 14:14:03 UTC 2020


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:
5c337d4536 DIRECTOR: LINGO: Implement kTheClickOn


Commit: 5c337d45368a2746cf48c650f85aa64c886f9157
    https://github.com/scummvm/scummvm/commit/5c337d45368a2746cf48c650f85aa64c886f9157
Author: Scott Percival (code at moral.net.au)
Date: 2020-05-23T22:12:33+08:00

Commit Message:
DIRECTOR: LINGO: Implement kTheClickOn

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


diff --git a/engines/director/events.cpp b/engines/director/events.cpp
index 836df726b6..58304fb400 100644
--- a/engines/director/events.cpp
+++ b/engines/director/events.cpp
@@ -102,6 +102,8 @@ void DirectorEngine::processEvents(bool bufferLingoEvents) {
 				// But we still want to know if the mouse is down for press effects.
 				spriteId = sc->getSpriteIDFromPos(pos);
 				sc->_currentMouseDownSpriteId = spriteId;
+				if (sc->_sprites[spriteId]->_scriptId)
+					sc->_currentClickOnSpriteId = spriteId;
 
 				sc->_mouseIsDown = true;
 				sc->_lastEventTime = g_director->getMacTicks();
diff --git a/engines/director/lingo/lingo-the.cpp b/engines/director/lingo/lingo-the.cpp
index 18323bc9b6..440d946f05 100644
--- a/engines/director/lingo/lingo-the.cpp
+++ b/engines/director/lingo/lingo-the.cpp
@@ -335,6 +335,10 @@ Datum Lingo::getTheEntity(int entity, Datum &id, int field) {
 	case kTheCast:
 		d = getTheCast(id, field);
 		break;
+	case kTheClickOn:
+		d.type = INT;
+		d.u.i = _vm->getCurrentScore()->_currentClickOnSpriteId;
+		break;
 	case kTheColorDepth:
 		// bpp. 1, 2, 4, 8, 32
 		d.type = INT;
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index f5d663b8e5..290e420630 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -77,6 +77,7 @@ Score::Score(DirectorEngine *vm) {
 	_lingo = _vm->getLingo();
 	_soundManager = _vm->getSoundManager();
 	_currentMouseDownSpriteId = 0;
+	_currentClickOnSpriteId = 0;
 	_mouseIsDown = false;
 	_lastEventTime = _vm->getMacTicks();
 	_lastKeyTime = _lastEventTime;
diff --git a/engines/director/score.h b/engines/director/score.h
index 1510a6a81d..f6532dabf8 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -166,6 +166,7 @@ public:
 	Archive *_movieArchive;
 	Common::Rect _movieRect;
 	uint16 _currentMouseDownSpriteId;
+	uint16 _currentClickOnSpriteId;
 	bool _mouseIsDown;
 	uint32 _lastEventTime;
 	uint32 _lastRollTime;
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 2605d56b5f..36302a7816 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -174,7 +174,6 @@ void Sprite::setCast(uint16 castId) {
 Common::Rect Sprite::getBbox() {
 	Common::Rect result;
 	if (_castId == 0) {
-		warning("Sprite::getBbox(): attempted to get bbox for null cast member");
 		return result;
 	}
 




More information about the Scummvm-git-logs mailing list