From 0fc3ee26f92c47ee32d0cb6b95c3050e53db38e2 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Thu, 20 Sep 2007 01:38:07 +0000 Subject: Some updates to Mickey's BCG logo drawing function svn-id: r28977 --- engines/agi/preagi_mickey.cpp | 53 +++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 24 deletions(-) (limited to 'engines/agi/preagi_mickey.cpp') diff --git a/engines/agi/preagi_mickey.cpp b/engines/agi/preagi_mickey.cpp index e911161f61..305e1e0646 100644 --- a/engines/agi/preagi_mickey.cpp +++ b/engines/agi/preagi_mickey.cpp @@ -877,11 +877,16 @@ const uint8 colorBCG[16][2] = { }; void Mickey::drawLogo() { + // TODO: clean this up and make it work properly, the logo is drawn way off to the right + return; // remove this once the code below is done + char szFile[256] = {0}; uint8 *buffer = new uint8[16384]; - const int w = 80; - const int h = 170; - uint8 bitmap[h][w]; + const int w = 150; + const int h = 80; + const int xoffset = 30; // FIXME: remove this + uint8 bitmap[w][h]; + uint8 color, color2, color3, color4; // read in logos.bcg sprintf(szFile, IDS_MSA_PATH_LOGO); @@ -894,31 +899,31 @@ void Mickey::drawLogo() { // draw logo bitmap memcpy(bitmap, buffer, sizeof(bitmap)); - /* - // TODO: Show BCG picture + _vm->_picture->setDimensions(w, h); + + // Show BCG picture for (int y = 0; y < h; y++) { - for (int x = 0; x < w; x++) { - uint8 color = colorBCG[(bitmap[y][x] & 0xf0) / 0x10][0]; // background - uint8 color2 = colorBCG[(bitmap[y][x] & 0xf0) / 0x10][1]; // background - uint8 color3 = colorBCG[ bitmap[y][x] & 0x0f][0]; // foreground - uint8 color4 = colorBCG[ bitmap[y][x] & 0x0f][1]; // foreground - - _vm->_picture->putPixel(x * 4, y, color); - _vm->_picture->putPixel(x * 4 + 1, y, color2); - _vm->_picture->putPixel(x * 4 + 2, y, color3); - _vm->_picture->putPixel(x * 4 + 3, y, color4); - _vm->_picture->putPixel(x * 4, y + 1, color); - _vm->_picture->putPixel(x * 4 + 1, y + 1, color2); - _vm->_picture->putPixel(x * 4 + 2, y + 1, color3); - _vm->_picture->putPixel(x * 4 + 3, y + 1, color4); + for (int x = xoffset; x < w; x++) { + color = colorBCG[(bitmap[y][x] & 0xf0) / 0x10][0]; // background + color2 = colorBCG[(bitmap[y][x] & 0xf0) / 0x10][1]; // background + color3 = colorBCG[ bitmap[y][x] & 0x0f][0]; // foreground + color4 = colorBCG[ bitmap[y][x] & 0x0f][1]; // foreground + + _vm->_picture->putPixel(x * 4 - xoffset, y, color); + _vm->_picture->putPixel(x * 4 + 1 - xoffset, y, color2); + _vm->_picture->putPixel(x * 4 + 2 - xoffset, y, color3); + _vm->_picture->putPixel(x * 4 + 3 - xoffset, y, color4); + _vm->_picture->putPixel(x * 4 - xoffset, y + 1, color); + _vm->_picture->putPixel(x * 4 + 1 - xoffset, y + 1, color2); + _vm->_picture->putPixel(x * 4 + 2 - xoffset, y + 1, color3); + _vm->_picture->putPixel(x * 4 + 3 - xoffset, y + 1, color4); } } - _vm->_picture->showPic(10, 0, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT); - */ - - //_vm->_gfx->doUpdate(); - //_vm->_system->updateScreen(); // TODO: this should go in the game's main loop + _vm->_picture->showPic(10, 10, w, h); + + _vm->_gfx->doUpdate(); + _vm->_system->updateScreen(); // TODO: this should go in the game's main loop delete [] buffer; } -- cgit v1.2.3