diff options
author | whiterandrek | 2018-04-05 08:15:14 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2018-06-28 23:51:32 +0200 |
commit | cad72b1532faa96c68848392766f25a4a58398ab (patch) | |
tree | 04d5e0cbda2aadb79fce35a1ddd45f0f0798f60f /engines/pink/objects/handlers/handler_mgr.cpp | |
parent | 4b7c75607a5d54d95c383fabf381d82d4ac77b94 (diff) | |
download | scummvm-rg350-cad72b1532faa96c68848392766f25a4a58398ab.tar.gz scummvm-rg350-cad72b1532faa96c68848392766f25a4a58398ab.tar.bz2 scummvm-rg350-cad72b1532faa96c68848392766f25a4a58398ab.zip |
PINK: basic walk, left click and seqTimer implementation
Diffstat (limited to 'engines/pink/objects/handlers/handler_mgr.cpp')
-rw-r--r-- | engines/pink/objects/handlers/handler_mgr.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/engines/pink/objects/handlers/handler_mgr.cpp b/engines/pink/objects/handlers/handler_mgr.cpp index 83236de6a1..76c2cf6834 100644 --- a/engines/pink/objects/handlers/handler_mgr.cpp +++ b/engines/pink/objects/handlers/handler_mgr.cpp @@ -36,4 +36,55 @@ bool HandlerMgr::isLeftClickHandler(Actor *actor) { return false; } +void HandlerMgr::onTimerMessage(Actor *actor) { + Handler *handler = findSuitableHandlerTimer(actor); + if (handler) + handler->handle(actor); +} + +bool HandlerMgr::onLeftClickMessage(Actor *actor) { + Handler *handler = findSuitableHandlerLeftClick(actor); + if (handler) { + handler->handle(actor); + return 1; + } + return 0; +} + +bool HandlerMgr::onUseClickMessage(Actor *actor) { + Handler *handler = findSuitableHandlerUseClick(actor); + if (handler) { + handler->handle(actor); + return 1; + } + return 0; +} + +Handler *HandlerMgr::findSuitableHandlerTimer(Actor *actor) { + for (int i = 0; i < _timerHandlers.size(); ++i) { + if (_timerHandlers[i]->isSuitable(actor)) + return _timerHandlers[i]; + } + + return nullptr; +} + +Handler *HandlerMgr::findSuitableHandlerLeftClick(Actor *actor) { + for (int i = 0; i < _leftClickHandlers.size(); ++i) { + if (_leftClickHandlers[i]->isSuitable(actor)) + return _leftClickHandlers[i]; + } + + return nullptr; +} + +Handler *HandlerMgr::findSuitableHandlerUseClick(Actor *actor) { + for (int i = 0; i < _useClickHandlers.size(); ++i) { + if (_useClickHandlers[i]->isSuitable(actor)) + return _useClickHandlers[i]; + } + + return nullptr; +} + } |