diff options
-rw-r--r-- | engines/sherlock/tattoo/tattoo_user_interface.cpp | 12 | ||||
-rw-r--r-- | engines/sherlock/tattoo/tattoo_user_interface.h | 5 |
2 files changed, 17 insertions, 0 deletions
diff --git a/engines/sherlock/tattoo/tattoo_user_interface.cpp b/engines/sherlock/tattoo/tattoo_user_interface.cpp index 771c22c46e..84ebfe7837 100644 --- a/engines/sherlock/tattoo/tattoo_user_interface.cpp +++ b/engines/sherlock/tattoo/tattoo_user_interface.cpp @@ -863,6 +863,18 @@ void TattooUserInterface::drawMaskArea(bool mode) { } } +void TattooUserInterface::makeBGArea(const Common::Rect &r) { + Screen &screen = *_vm->_screen; + + for (int yp = r.top; yp < r.bottom; ++yp) { + byte *ptr = screen._backBuffer1.getBasePtr(r.left, yp); + + for (int xp = r.left; xp < r.right; ++xp, ++ptr) + *ptr = _lookupTable[*ptr]; + } +} + + } // End of namespace Tattoo } // End of namespace Sherlock diff --git a/engines/sherlock/tattoo/tattoo_user_interface.h b/engines/sherlock/tattoo/tattoo_user_interface.h index 6eeae2dfd9..27039d9e4b 100644 --- a/engines/sherlock/tattoo/tattoo_user_interface.h +++ b/engines/sherlock/tattoo/tattoo_user_interface.h @@ -208,6 +208,11 @@ public: void doBgAnimEraseBackground(); void drawMaskArea(bool mode); + + /** + * Translate a given area of the back buffer to greyscale shading + */ + void makeBGArea(const Common::Rect &r); public: /** * Resets the user interface |