VOYEUR: Implemented the restoreBack method

This commit is contained in:
Paul Gilbert 2013-06-01 13:01:09 -04:00
parent 99f474a3b6
commit b85aa4f8d9
3 changed files with 21 additions and 4 deletions

View File

@ -232,8 +232,13 @@ public:
PictureResource *_activePage;
PictureResource *_pages[2];
byte *_field30;
// Rect lists and counts. Note that _rectListCount values of '-1' seem to have
// special significance, which is why I'm not making them redundant in favour
// of the arrays' .size() method
Common::Array<Common::Rect> *_rectListPtr[3];
int _rectListCount[3];
Common::Rect _clipRect;
byte *_field7A;
GraphicMethodPtr _fn1;

View File

@ -83,7 +83,7 @@ void GraphicsManager::setupMCGASaveRect(ViewPortResource *viewPort) {
Common::Rect *clipRect = _clipPtr;
_clipPtr = &viewPort->_clipRect;
sDrawPic(viewPort->_activePage, viewPort->_currentPic, Common::Point(), NULL);
sDrawPic(viewPort->_activePage, viewPort->_currentPic, Common::Point());
_clipPtr = clipRect;
}
@ -120,7 +120,7 @@ void GraphicsManager::addRectNoSaveBack(ViewPortResource *viewPort, int idx, con
}
void GraphicsManager::sDrawPic(DisplayResource *srcDisplay, DisplayResource *destDisplay,
const Common::Point &offset, void *v3) {
const Common::Point &offset) {
int var4C = 0;
int width1, width2;
int widthDiff, widthDiff2;
@ -339,7 +339,19 @@ void GraphicsManager::flipPage() {
void GraphicsManager::restoreBack(Common::Array<Common::Rect> &rectList, int rectListCount,
PictureResource *srcPic, PictureResource *destPic) {
//TODO
bool saveBack = _saveBack;
_saveBack = false;
if (rectListCount == -1) {
sDrawPic(srcPic, destPic, Common::Point());
} else {
for (int i = rectListCount; i >= 0; --i) {
_clipPtr = &rectList[i];
sDrawPic(srcPic, destPic, Common::Point());
}
}
_saveBack = saveBack;
}
} // End of namespace Voyeur

View File

@ -87,7 +87,7 @@ public:
void addRectNoSaveBack(ViewPortResource *viewPort, int idx, const Common::Rect &bounds);
void EMSMapPageHandle(int v1, int v2, int v3);
void sDrawPic(DisplayResource *srcDisplay, DisplayResource *destDisplay, const Common::Point &offset, void *v3);
void sDrawPic(DisplayResource *srcDisplay, DisplayResource *destDisplay, const Common::Point &offset);
void sDisplayPic(PictureResource *pic);
void flipPage();
};