aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Kiewitz2009-10-14 11:23:46 +0000
committerMartin Kiewitz2009-10-14 11:23:46 +0000
commitd6d2b0b6bb5677a950e47959ff5c475f99905b81 (patch)
tree3ead94008534cb50c6322e0cb97d859c1aa37169
parent1aa2cb8e61252b4bc333674d20ffa4054697bdd9 (diff)
downloadscummvm-rg350-d6d2b0b6bb5677a950e47959ff5c475f99905b81.tar.gz
scummvm-rg350-d6d2b0b6bb5677a950e47959ff5c475f99905b81.tar.bz2
scummvm-rg350-d6d2b0b6bb5677a950e47959ff5c475f99905b81.zip
SCI/newgui: SciGuiTransitions now gets picRect
svn-id: r45068
-rw-r--r--engines/sci/gui/gui.cpp11
-rw-r--r--engines/sci/gui/gui.h1
-rw-r--r--engines/sci/gui/gui_transitions.cpp2
-rw-r--r--engines/sci/gui/gui_transitions.h2
4 files changed, 12 insertions, 4 deletions
diff --git a/engines/sci/gui/gui.cpp b/engines/sci/gui/gui.cpp
index cca014ae0c..7a63252a8d 100644
--- a/engines/sci/gui/gui.cpp
+++ b/engines/sci/gui/gui.cpp
@@ -504,13 +504,20 @@ uint16 SciGui::onControl(byte screenMask, Common::Rect rect) {
return result;
}
+void SciGui::animateShowPic() {
+ GuiPort *oldPort = _gfx->SetPort((GuiPort *)_windowMgr->_picWind);
+
+ _transitions->doit(_gfx->GetPort()->rect);
+ _gfx->SetPort(oldPort);
+}
+
void SciGui::animate(reg_t listReference, bool cycle, int argc, reg_t *argv) {
byte old_picNotValid = _screen->_picNotValid;
if (listReference.isNull()) {
_animate->disposeLastCast();
if (_screen->_picNotValid)
- _transitions->doit();
+ animateShowPic();
return;
}
@@ -536,7 +543,7 @@ void SciGui::animate(reg_t listReference, bool cycle, int argc, reg_t *argv) {
_animate->drawCels();
if (_screen->_picNotValid)
- _transitions->doit();
+ animateShowPic();
_animate->updateScreen(old_picNotValid);
_animate->restoreAndDelete(argc, argv);
diff --git a/engines/sci/gui/gui.h b/engines/sci/gui/gui.h
index 85c5fa51ca..47ba512b18 100644
--- a/engines/sci/gui/gui.h
+++ b/engines/sci/gui/gui.h
@@ -138,6 +138,7 @@ protected:
private:
virtual void initPriorityBands();
+ virtual void animateShowPic();
SciGuiGfx *_gfx;
SciGuiresources *_resources;
diff --git a/engines/sci/gui/gui_transitions.cpp b/engines/sci/gui/gui_transitions.cpp
index ea36bbb71d..6f9d0a313b 100644
--- a/engines/sci/gui/gui_transitions.cpp
+++ b/engines/sci/gui/gui_transitions.cpp
@@ -51,7 +51,7 @@ void SciGuiTransitions::setup(int16 number) {
_number = number;
}
-void SciGuiTransitions::doit() {
+void SciGuiTransitions::doit(Common::Rect picRect) {
// TODO: Implement animations
warning("SciGuiTransitions: animation %d not implemented", _number);
_palette->setOnScreen();
diff --git a/engines/sci/gui/gui_transitions.h b/engines/sci/gui/gui_transitions.h
index f2f1e798ca..2cc2757edc 100644
--- a/engines/sci/gui/gui_transitions.h
+++ b/engines/sci/gui/gui_transitions.h
@@ -37,7 +37,7 @@ public:
~SciGuiTransitions();
void setup(int16 number);
- void doit();
+ void doit(Common::Rect picRect);
private:
void init(void);