aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/hopkins/globals.cpp5
-rw-r--r--engines/hopkins/globals.h4
-rw-r--r--engines/hopkins/graphics.cpp11
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;
}
}