diff options
author | Matthew Hoops | 2010-08-19 18:04:11 +0000 |
---|---|---|
committer | Matthew Hoops | 2010-08-19 18:04:11 +0000 |
commit | 5bd2a99717c04ade090a4be77da74ff99a8b0ce3 (patch) | |
tree | 417952b440582fcf41d95e4be72cb8e892cab568 /engines/mohawk/riven_external.cpp | |
parent | ce9afcfab13bbbfe6ef5fe384a249a218067774a (diff) | |
download | scummvm-rg350-5bd2a99717c04ade090a4be77da74ff99a8b0ce3.tar.gz scummvm-rg350-5bd2a99717c04ade090a4be77da74ff99a8b0ce3.tar.bz2 scummvm-rg350-5bd2a99717c04ade090a4be77da74ff99a8b0ce3.zip |
MOHAWK: Draw in the dome combination in the lab journal
svn-id: r52216
Diffstat (limited to 'engines/mohawk/riven_external.cpp')
-rw-r--r-- | engines/mohawk/riven_external.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/engines/mohawk/riven_external.cpp b/engines/mohawk/riven_external.cpp index 4813ad5b33..55649dc907 100644 --- a/engines/mohawk/riven_external.cpp +++ b/engines/mohawk/riven_external.cpp @@ -458,9 +458,28 @@ void RivenExternal::xblabopenbook(uint16 argc, uint16 *argv) { // Draw the image of the page based on the blabbook variable _vm->_gfx->drawPLST(page); - // TODO: Draw the dome combo if (page == 14) { - warning ("Need to draw dome combo"); + // Draw the dome combination + // The images for the numbers are tBMP's 364 through 368 + // The start point is at (240, 82) + uint32 domeCombo = *_vm->matchVarToString("adomecombo"); + static const uint16 kNumberWidth = 32; + static const uint16 kNumberHeight = 24; + static const uint16 kDstX = 240; + static const uint16 kDstY = 82; + byte numCount = 0; + + for (int bitPos = 24; bitPos >= 0; bitPos--) { + if (domeCombo & (1 << bitPos)) { + uint16 offset = (24 - bitPos) * kNumberWidth; + Common::Rect srcRect = Common::Rect(offset, 0, offset + kNumberWidth, kNumberHeight); + Common::Rect dstRect = Common::Rect(numCount * kNumberWidth + kDstX, kDstY, (numCount + 1) * kNumberWidth + kDstX, kDstY + kNumberHeight); + _vm->_gfx->drawImageRect(numCount + 364, srcRect, dstRect); + numCount++; + } + } + + assert(numCount == 5); // Sanity check } } |