From 412ae53854dc2ef352a3f3e990f0d2b56d97ad7e Mon Sep 17 00:00:00 2001 From: Sven Hesse Date: Fri, 29 Jun 2012 19:34:14 +0200 Subject: GOB: Add PreGob animation utility functions --- engines/gob/pregob/pregob.cpp | 21 +++++++++++++++++++++ engines/gob/pregob/pregob.h | 6 ++++++ 2 files changed, 27 insertions(+) (limited to 'engines') diff --git a/engines/gob/pregob/pregob.cpp b/engines/gob/pregob/pregob.cpp index 1c3fb8221c..b9c36d7cf8 100644 --- a/engines/gob/pregob/pregob.cpp +++ b/engines/gob/pregob/pregob.cpp @@ -29,6 +29,7 @@ #include "gob/palanim.h" #include "gob/draw.h" #include "gob/video.h" +#include "gob/aniobject.h" #include "gob/pregob/pregob.h" @@ -181,4 +182,24 @@ bool PreGob::hasInput() { return checkInput(mouseX, mouseY, mouseButtons) || (mouseButtons != kMouseButtonsNone); } +void PreGob::clearAnim(ANIObject &ani) { + int16 left, top, right, bottom; + + if (ani.clear(*_vm->_draw->_backSurface, left, top, right, bottom)) + _vm->_draw->dirtiedRect(_vm->_draw->_backSurface, left, top, right, bottom); +} + +void PreGob::drawAnim(ANIObject &ani) { + int16 left, top, right, bottom; + + if (ani.draw(*_vm->_draw->_backSurface, left, top, right, bottom)) + _vm->_draw->dirtiedRect(_vm->_draw->_backSurface, left, top, right, bottom); + ani.advance(); +} + +void PreGob::redrawAnim(ANIObject &ani) { + clearAnim(ani); + drawAnim(ani); +} + } // End of namespace Gob diff --git a/engines/gob/pregob/pregob.h b/engines/gob/pregob/pregob.h index 4cf4a39fdb..9efdbe8df6 100644 --- a/engines/gob/pregob/pregob.h +++ b/engines/gob/pregob/pregob.h @@ -30,6 +30,8 @@ namespace Gob { class GobEngine; class Surface; +class ANIObject; + class PreGob { public: PreGob(GobEngine *vm); @@ -71,6 +73,10 @@ protected: int16 waitInput(); bool hasInput(); + void clearAnim(ANIObject &ani); + void drawAnim(ANIObject &ani); + void redrawAnim(ANIObject &ani); + GobEngine *_vm; -- cgit v1.2.3