diff options
-rw-r--r-- | engines/hugo/dialogs.cpp | 6 | ||||
-rw-r--r-- | engines/hugo/display.cpp | 2 | ||||
-rw-r--r-- | engines/hugo/file.cpp | 2 | ||||
-rw-r--r-- | engines/hugo/hugo.cpp | 20 | ||||
-rw-r--r-- | engines/hugo/hugo.h | 3 |
5 files changed, 27 insertions, 6 deletions
diff --git a/engines/hugo/dialogs.cpp b/engines/hugo/dialogs.cpp index 5dcee3ae94..26a05c38df 100644 --- a/engines/hugo/dialogs.cpp +++ b/engines/hugo/dialogs.cpp @@ -140,12 +140,10 @@ void TopMenu::loadBmpArr(Common::SeekableReadStream &in) { _arrayBmp[i * 2] = bitmapSrc->convertTo(g_system->getOverlayFormat()); _arrayBmp[i * 2 + 1] = new Graphics::Surface(); _arrayBmp[i * 2 + 1]->create(_arrayBmp[i * 2]->w * 2, _arrayBmp[i * 2]->h * 2, g_system->getOverlayFormat()); - byte *src = (byte *)_arrayBmp[i * 2]->getPixels(); - byte *dst = (byte *)_arrayBmp[i * 2 + 1]->getPixels(); for (int j = 0; j < _arrayBmp[i * 2]->h; j++) { - src = (byte *)_arrayBmp[i * 2]->getBasePtr(0, j); - dst = (byte *)_arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2); + byte *src = (byte *)_arrayBmp[i * 2]->getBasePtr(0, j); + byte *dst = (byte *)_arrayBmp[i * 2 + 1]->getBasePtr(0, j * 2); for (int k = _arrayBmp[i * 2]->w; k > 0; k--) { for (int m = _arrayBmp[i * 2]->format.bytesPerPixel; m > 0; m--) { *dst++ = *src++; diff --git a/engines/hugo/display.cpp b/engines/hugo/display.cpp index fbe39b3a0c..4cb7f3e4cf 100644 --- a/engines/hugo/display.cpp +++ b/engines/hugo/display.cpp @@ -100,6 +100,8 @@ Screen::Screen(HugoEngine *vm) : _vm(vm) { _dlRestoreList[i]._dx = 0; _dlRestoreList[i]._dy = 0; } + _fnt = 0; + _paletteSize = 0; } Screen::~Screen() { diff --git a/engines/hugo/file.cpp b/engines/hugo/file.cpp index e58c2e57d6..a9f56dea47 100644 --- a/engines/hugo/file.cpp +++ b/engines/hugo/file.cpp @@ -519,6 +519,7 @@ void FileManager::readBootFile() { ofp.read(_vm->_boot._pbswitch, sizeof(_vm->_boot._pbswitch)); ofp.read(_vm->_boot._distrib, sizeof(_vm->_boot._distrib)); _vm->_boot._exitLen = ofp.readUint16LE(); + ofp.close(); byte *p = (byte *)&_vm->_boot; @@ -527,7 +528,6 @@ void FileManager::readBootFile() { checksum ^= p[i]; p[i] ^= s_bootCypher[i % s_bootCypherLen]; } - ofp.close(); if (checksum) { Utils::notifyBox(Common::String::format("Corrupted startup file '%s'", getBootFilename())); diff --git a/engines/hugo/hugo.cpp b/engines/hugo/hugo.cpp index b140cfdba2..4d24c80445 100644 --- a/engines/hugo/hugo.cpp +++ b/engines/hugo/hugo.cpp @@ -93,6 +93,26 @@ HugoEngine::HugoEngine(OSystem *syst, const HugoGameDescription *gd) : Engine(sy _gameType = kGameTypeNone; _platform = Common::kPlatformUnknown; _packedFl = false; + + _numVariant = 0; + _gameVariant = kGameVariantNone; + _normalTPS = 0; + _screenPtr = nullptr; + _config._musicFl = true; + _config._soundFl = true; + _config._turboFl = false; + _look = 0; + _take = 0; + _drop = 0; + _maze._enabledFl = false; + _maze._size = 0; + _maze._x1 = _maze._y1 = _maze._x2 = _maze._y2 = _maze._x3 = _maze._x4 = 0; + _maze._firstScreenIndex = 0; + _boot._checksum = 0; + _boot._registered = kRegShareware; + _boot._exitLen = 0; + _file = nullptr; + _scheduler = nullptr; } HugoEngine::~HugoEngine() { diff --git a/engines/hugo/hugo.h b/engines/hugo/hugo.h index 9f495a9037..176c2503ee 100644 --- a/engines/hugo/hugo.h +++ b/engines/hugo/hugo.h @@ -106,7 +106,8 @@ enum GameVariant { kGameVariantH3Win, kGameVariantH1Dos, kGameVariantH2Dos, - kGameVariantH3Dos + kGameVariantH3Dos, + kGameVariantNone }; enum HugoDebugChannels { |