diff options
author | Travis Howell | 2005-03-30 11:49:53 +0000 |
---|---|---|
committer | Travis Howell | 2005-03-30 11:49:53 +0000 |
commit | 6bb533f936f7cf9cd41cdb6a83d62733935afc32 (patch) | |
tree | 0e5a3f9f61a33bc5dcc054c9f7b002f5f15645d7 /scumm/wiz_he.cpp | |
parent | bace6b5a243dcbe233a7faca1f24257dafa9d592 (diff) | |
download | scummvm-rg350-6bb533f936f7cf9cd41cdb6a83d62733935afc32.tar.gz scummvm-rg350-6bb533f936f7cf9cd41cdb6a83d62733935afc32.tar.bz2 scummvm-rg350-6bb533f936f7cf9cd41cdb6a83d62733935afc32.zip |
Cleanup
svn-id: r17292
Diffstat (limited to 'scumm/wiz_he.cpp')
-rw-r--r-- | scumm/wiz_he.cpp | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/scumm/wiz_he.cpp b/scumm/wiz_he.cpp index 8cb06a8f3f..101f7acd86 100644 --- a/scumm/wiz_he.cpp +++ b/scumm/wiz_he.cpp @@ -33,6 +33,7 @@ Wiz::Wiz() { _imagesNum = 0; memset(&_images, 0, sizeof(_images)); memset(&_polygons, 0, sizeof(_polygons)); + _rectOverrideEnabled = false; } void Wiz::imageNumClear() { @@ -828,18 +829,6 @@ void ScummEngine_v72he::captureWizImage(int resType, int resNum, const Common::R } } -void ScummEngine_v72he::displayWizImage(const WizImage *pwi) { - if (_fullRedraw) { - assert(_wiz._imagesNum < ARRAYSIZE(_wiz._images)); - memcpy(&_wiz._images[_wiz._imagesNum], pwi, sizeof(WizImage)); - ++_wiz._imagesNum; - } else if (pwi->flags & kWIFIsPolygon) { - drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags); - } else { - drawWizImage(rtImage, pwi); - } -} - void ScummEngine_v72he::getWizImageDim(int resnum, int state, int32 &w, int32 &h) { uint8 *dataPtr = getResourceAddress(rtImage, resnum); assert(dataPtr); @@ -884,6 +873,16 @@ uint8 *ScummEngine_v72he::drawWizImage(int restype, const WizImage *pwi) { warning("WizImage printing is unimplemented"); return NULL; } + + Common::Rect rImage(pwi->x1, pwi->y1, pwi->x1 + width, pwi->y1 + height); + if (_wiz._rectOverrideEnabled == true) { + if (rImage.intersects(_wiz._rectOverride)) { + rImage.clip(_wiz._rectOverride); + } else { + return 0; + } + } + uint32 cw, ch; if (pwi->flags & kWIFBlitToMemBuffer) { dst = (uint8 *)malloc(width * height); @@ -902,6 +901,8 @@ uint8 *ScummEngine_v72he::drawWizImage(int restype, const WizImage *pwi) { ch = pvs->h; } Common::Rect rScreen(cw, ch); + + // XXX handle 'XMAP' / 'RMAP' data if (comp == 1) { if (pwi->flags & 0x80) { @@ -924,7 +925,6 @@ uint8 *ScummEngine_v72he::drawWizImage(int restype, const WizImage *pwi) { } if (!(pwi->flags & kWIFBlitToMemBuffer)) { - Common::Rect rImage(pwi->x1, pwi->y1, pwi->x1 + width, pwi->y1 + height); if (rImage.intersects(rScreen)) { rImage.clip(rScreen); if (!(pwi->flags & kWIFBlitToFrontVideoBuffer) && (pwi->flags & (kWIFBlitToFrontVideoBuffer | kWIFMarkBufferDirty))) { @@ -1156,7 +1156,7 @@ void ScummEngine_v80he::loadWizCursor(int resId, int resType, bool state) { free(cursor); } -void ScummEngine_v90he::drawWizComplexPolygon(int resnum, int state, int po_x, int po_y, int arg14, int angle, int zoom, const Common::Rect *r) { +void ScummEngine_v72he::drawWizComplexPolygon(int resnum, int state, int po_x, int po_y, int arg14, int angle, int zoom, const Common::Rect *r) { Common::Point pts[4]; int32 w, h; getWizImageDim(resnum, state, w, h); @@ -1184,8 +1184,7 @@ void ScummEngine_v90he::drawWizComplexPolygon(int resnum, int state, int po_x, i warning("drawWizComplexPolygon() partially implemented"); } -void ScummEngine_v90he::displayWizComplexImage(const WizParameters *params) { - // XXX merge with displayWizImage +void ScummEngine_v72he::displayWizComplexImage(const WizParameters *params) { if (params->processFlags & 0x80000) { warning("displayWizComplexImage() unhandled flags = 0x80000"); } |