diff options
Diffstat (limited to 'engines')
-rw-r--r-- | engines/pink/director.cpp | 3 | ||||
-rw-r--r-- | engines/pink/objects/actors/actor.h | 2 | ||||
-rw-r--r-- | engines/pink/objects/actors/cursor_actor.h | 4 |
3 files changed, 9 insertions, 0 deletions
diff --git a/engines/pink/director.cpp b/engines/pink/director.cpp index 14993ec7f9..e5af9905f9 100644 --- a/engines/pink/director.cpp +++ b/engines/pink/director.cpp @@ -27,6 +27,7 @@ #include "pink/director.h" #include "pink/objects/actions/action_sound.h" #include "pink/objects/actions/action_cel.h" +#include "pink/objects/actors/actor.h" namespace Pink { Director::Director() @@ -111,6 +112,8 @@ void Director::loadStage() { Actor *Director::getActorByPoint(const Common::Point point) { for (int i = _sprites.size() - 1; i >= 0; --i) { + if (_sprites[i]->getActor()->isCursor()) + continue; CelDecoder *decoder = _sprites[i]->getDecoder(); const Graphics::Surface *frame = decoder->getCurrentFrame(); const Common::Rect &rect = _sprites[i]->getBounds(); diff --git a/engines/pink/objects/actors/actor.h b/engines/pink/objects/actors/actor.h index 2d42f37705..668186217d 100644 --- a/engines/pink/objects/actors/actor.h +++ b/engines/pink/objects/actors/actor.h @@ -57,6 +57,8 @@ public: void endAction() { _isActionEnded = true; } + virtual bool isCursor() { return false; } + virtual bool isLeftClickHandlers() { return false; } virtual bool isUseClickHandlers(InventoryItem *item) { return false; } diff --git a/engines/pink/objects/actors/cursor_actor.h b/engines/pink/objects/actors/cursor_actor.h index 8446b76e45..2d5eb281e8 100644 --- a/engines/pink/objects/actors/cursor_actor.h +++ b/engines/pink/objects/actors/cursor_actor.h @@ -39,6 +39,10 @@ public: _actions[i]->toConsole(); } } + + bool isCursor() override { + return true; + } }; } // End of namespace Pink |