aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/preagi_mickey.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2007-09-20 01:38:07 +0000
committerFilippos Karapetis2007-09-20 01:38:07 +0000
commit0fc3ee26f92c47ee32d0cb6b95c3050e53db38e2 (patch)
treefbe6d8fe287d7cee21509c06adca1f68d5347416 /engines/agi/preagi_mickey.cpp
parent8c4bc03446b04b6235d3eeec4d17d740e7a789f7 (diff)
downloadscummvm-rg350-0fc3ee26f92c47ee32d0cb6b95c3050e53db38e2.tar.gz
scummvm-rg350-0fc3ee26f92c47ee32d0cb6b95c3050e53db38e2.tar.bz2
scummvm-rg350-0fc3ee26f92c47ee32d0cb6b95c3050e53db38e2.zip
Some updates to Mickey's BCG logo drawing function
svn-id: r28977
Diffstat (limited to 'engines/agi/preagi_mickey.cpp')
-rw-r--r--engines/agi/preagi_mickey.cpp53
1 files changed, 29 insertions, 24 deletions
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;
}