diff options
-rw-r--r-- | engines/hopkins/globals.cpp | 5 | ||||
-rw-r--r-- | engines/hopkins/globals.h | 4 | ||||
-rw-r--r-- | engines/hopkins/graphics.cpp | 11 |
3 files changed, 13 insertions, 7 deletions
diff --git a/engines/hopkins/globals.cpp b/engines/hopkins/globals.cpp index 349210063e..78cbf31919 100644 --- a/engines/hopkins/globals.cpp +++ b/engines/hopkins/globals.cpp @@ -108,6 +108,11 @@ Globals::Globals() { for (int i = 0; i < 70; ++i) Common::fill((byte *)&Hopkins[i], (byte *)&Hopkins[i] + sizeof(HopkinsItem), 0); + for (int i = 0; i < 36; ++i) + INVENTAIRE[i] = 0; + for (int i = 0; i < 51; ++i) + Common::fill((byte *)&Tri[i], (byte *)&Tri[i] + sizeof(TriItem), 0); + // Initialise fields FR = 0; SVGA = 2; diff --git a/engines/hopkins/globals.h b/engines/hopkins/globals.h index e2bf5660e8..3b2ef8efa5 100644 --- a/engines/hopkins/globals.h +++ b/engines/hopkins/globals.h @@ -312,6 +312,8 @@ public: int16 super_parcours[32002]; int Param[2100]; HopkinsItem Hopkins[70]; + int INVENTAIRE[36]; + TriItem Tri[51]; int FR; int SVGA; int internet; @@ -367,8 +369,6 @@ public: int16 *essai1; int16 *essai2; byte *Bufferobjet; - int INVENTAIRE[36]; - TriItem Tri[51]; byte *inventaire2; byte *GESTE; int OBJET_EN_COURS; diff --git a/engines/hopkins/graphics.cpp b/engines/hopkins/graphics.cpp index 2ec58a0899..f68ac8ce2f 100644 --- a/engines/hopkins/graphics.cpp +++ b/engines/hopkins/graphics.cpp @@ -75,7 +75,8 @@ GraphicsManager::GraphicsManager() { Common::fill(&SD_PIXELS[0], &SD_PIXELS[PALETTE_SIZE * 2], 0); Common::fill(&TABLE_COUL[0], &TABLE_COUL[PALETTE_SIZE], 0); Common::fill(&cmap[0], &cmap[PALETTE_BLOCK_SIZE], 0); - Common::fill(&Palette[0], &Palette[PALETTE_BLOCK_SIZE], 0); + Common::fill(&Palette[0], &Palette[PALETTE_EXT_BLOCK_SIZE], 0); + Common::fill(&OLD_PAL[0], &OLD_PAL[PALETTE_EXT_BLOCK_SIZE], 0); } GraphicsManager::~GraphicsManager() { @@ -800,9 +801,9 @@ void GraphicsManager::fade_in(const byte *palette, int step, const byte *surface setpal_vga256(palData2); // Loop through fading in the palette - uint16 *pTemp1 = &palData1[2]; + uint16 *pTemp1 = &palData1[1]; for (int fadeIndex = 0; fadeIndex < FADESPD; ++fadeIndex) { - uint16 *pTemp2 = &palData1[4]; + uint16 *pTemp2 = &palData1[2]; for (int palOffset = 0; palOffset < PALETTE_BLOCK_SIZE; palOffset += 3) { if (palData2[palOffset] < palette[palOffset]) { @@ -818,11 +819,11 @@ void GraphicsManager::fade_in(const byte *palette, int step, const byte *surface palData2[palOffset + 1] = (v >> 8) & 0xff; } - if (palData2[palOffset + 1] < palette[palOffset + 1]) { + if (palData2[palOffset + 2] < palette[palOffset + 2]) { uint16 *pDest = &pTemp2[palOffset]; uint16 v = (palette[palOffset] & 0xff) * 256 / FADESPD + *pDest; *pDest = v; - palData2[palOffset + 1] = (v >> 8) & 0xff; + palData2[palOffset + 2] = (v >> 8) & 0xff; } } |