aboutsummaryrefslogtreecommitdiff
path: root/engines/agi
diff options
context:
space:
mode:
authorFilippos Karapetis2007-09-06 21:58:57 +0000
committerFilippos Karapetis2007-09-06 21:58:57 +0000
commit6964db45920de24b8f24384777363fe35782c4c1 (patch)
treeb3b15889f2dd49d852ebc93c0ff75e651782949a /engines/agi
parent843c35f3a4a4c93ee2b02adf63416a5c810218fb (diff)
downloadscummvm-rg350-6964db45920de24b8f24384777363fe35782c4c1.tar.gz
scummvm-rg350-6964db45920de24b8f24384777363fe35782c4c1.tar.bz2
scummvm-rg350-6964db45920de24b8f24384777363fe35782c4c1.zip
Some updates for decoding Disney's BCG logo in Mickey
svn-id: r28869
Diffstat (limited to 'engines/agi')
-rw-r--r--engines/agi/picture.h7
-rw-r--r--engines/agi/preagi_mickey.cpp54
2 files changed, 58 insertions, 3 deletions
diff --git a/engines/agi/picture.h b/engines/agi/picture.h
index 13f09e0bf9..d92bc92210 100644
--- a/engines/agi/picture.h
+++ b/engines/agi/picture.h
@@ -102,6 +102,13 @@ public:
_yOffset = offY;
}
+ void putPixel(int x, int y, uint8 color) {
+ _scrColor = color;
+ _priOn = false;
+ _scrOn = true;
+ putVirtPixel(x, y);
+ }
+
private:
uint8 *_data;
uint32 _flen;
diff --git a/engines/agi/preagi_mickey.cpp b/engines/agi/preagi_mickey.cpp
index 7997a384b9..212ffeee58 100644
--- a/engines/agi/preagi_mickey.cpp
+++ b/engines/agi/preagi_mickey.cpp
@@ -841,9 +841,35 @@ void Mickey::drawRoom() {
drawRoomAnimation();
}
+/*
+// TODO
+const uint32 colorBCG[16][2] = {
+ 0x000000, 0x000000, // 0 (black, black)
+ 0, 0,
+ 0x000000, 0xFF00FF, // 2 (black, purple)
+ 0x000000, 0xFFFFFF, // 3 (black, white)
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ 0, 0,
+ 0xFF00FF, 0x000000, // 8 (purple, black)
+ 0, 0,
+ 0xFF00FF, 0xFF00FF, // A (purple, purple)
+ 0, 0,
+ 0xFFFFFF, 0x000000, // C (white, black)
+ 0, 0,
+ 0, 0,
+ 0xFFFFFF, 0xFFFFFF // F (white, white)
+};
+*/
+
void Mickey::drawLogo() {
char szFile[256] = {0};
uint8 *buffer = new uint8[16384];
+ const int w = 80;
+ const int h = 170;
+ uint8 bitmap[h][w];
+ uint8 color = 0, color2 = 0, color3 = 0, color4 = 0;
// read in logos.bcg
sprintf(szFile, IDS_MSA_PATH_LOGO);
@@ -854,9 +880,30 @@ void Mickey::drawLogo() {
infile.close();
// draw logo bitmap
-#if 0
- drawPictureBCG(buffer); // TODO
-#endif
+ memcpy(bitmap, buffer, sizeof(bitmap));
+
+ /*
+ // TODO: Show BCG picture
+ for (int y = 0; y < h; y++) {
+ for (int x = 0; x < w; x++) {
+ color = (uint8)colorBCG[(bitmap[y][x] & 0xf0) / 0x10][0]; // background
+ color2 = (uint8)colorBCG[(bitmap[y][x] & 0xf0) / 0x10][1]; // background
+ color3 = (uint8)colorBCG[ bitmap[y][x] & 0x0f][0]; // foreground
+ color4 = (uint8)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);
+ }
+ }
+
+ _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
@@ -1242,6 +1289,7 @@ void Mickey::flashScreen() {
void Mickey::intro() {
// draw sierra logo
drawLogo();
+ //waitAnyKey(); // Not in the original, but needed so that the logo is visible
// draw title picture
game.iRoom = IDI_MSA_PIC_TITLE;