HOPKINS: Fix some uniinitialised data identified by Valgrind

This commit is contained in:
Paul Gilbert 2012-10-23 08:57:16 +11:00
parent 95b2fe3730
commit 1ab3d755b9
3 changed files with 13 additions and 7 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;
}
}