[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