aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/gob/pregob/pregob.cpp21
-rw-r--r--engines/gob/pregob/pregob.h6
2 files changed, 27 insertions, 0 deletions
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;