From 2976f961fe09c33e350fd8c6b4ccaddad738bf16 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Tue, 6 May 2008 16:57:07 +0000 Subject: - Fixed some memory leaks in kyra3 - Fixed valgrind warnings in GUI_v2 code svn-id: r31902 --- engines/kyra/gui_v2.cpp | 2 ++ engines/kyra/kyra_hof.cpp | 2 -- engines/kyra/kyra_mr.cpp | 10 +++++++--- engines/kyra/kyra_v2.cpp | 1 + engines/kyra/scene_mr.cpp | 2 ++ 5 files changed, 12 insertions(+), 5 deletions(-) (limited to 'engines/kyra') diff --git a/engines/kyra/gui_v2.cpp b/engines/kyra/gui_v2.cpp index d835c4f8d5..0a74d27a99 100644 --- a/engines/kyra/gui_v2.cpp +++ b/engines/kyra/gui_v2.cpp @@ -43,6 +43,8 @@ GUI_v2::GUI_v2(KyraEngine_v2 *vm) : GUI(vm), _vm(vm), _screen(vm->screen_v2()) { _scrollUpFunctor = BUTTON_FUNCTOR(GUI_v2, this, &GUI_v2::scrollUpButton); _scrollDownFunctor = BUTTON_FUNCTOR(GUI_v2, this, &GUI_v2::scrollDownButton); _sliderHandlerFunctor = BUTTON_FUNCTOR(GUI_v2, this, &GUI_v2::sliderHandler); + _savegameOffset = 0; + _isDeleteMenu = false; } Button *GUI_v2::addButtonToList(Button *list, Button *newButton) { diff --git a/engines/kyra/kyra_hof.cpp b/engines/kyra/kyra_hof.cpp index c25af91bec..9716c7edc1 100644 --- a/engines/kyra/kyra_hof.cpp +++ b/engines/kyra/kyra_hof.cpp @@ -780,8 +780,6 @@ void KyraEngine_HoF::cleanup() { delete [] _gfxBackUpRect; _gfxBackUpRect = 0; - delete [] _sceneList; _sceneList = 0; - for (int i = 0; i < ARRAYSIZE(_sceneAnimMovie); ++i) { delete _sceneAnimMovie[i]; _sceneAnimMovie[i] = 0; diff --git a/engines/kyra/kyra_mr.cpp b/engines/kyra/kyra_mr.cpp index 61546fc2e7..9aa50637d0 100644 --- a/engines/kyra/kyra_mr.cpp +++ b/engines/kyra/kyra_mr.cpp @@ -140,6 +140,7 @@ KyraEngine_MR::KyraEngine_MR(OSystem *system, const GameFlags &flags) : KyraEngi _menuDirectlyToLoad = false; _optionsFile = 0; _actorFile = 0; + _chatAltFlag = false; } KyraEngine_MR::~KyraEngine_MR() { @@ -152,6 +153,7 @@ KyraEngine_MR::~KyraEngine_MR() { delete[] _cCodeFile; delete[] _scenesFile; delete[] _itemFile; + delete[] _actorFile; delete[] _gamePlayBuffer; delete[] _interface; delete[] _interfaceCommandLine; @@ -165,7 +167,6 @@ KyraEngine_MR::~KyraEngine_MR() { delete[] _gfxBackUpRect; delete[] _paletteOverlay; - delete[] _sceneList; for (ShapeMap::iterator i = _gameShapes.begin(); i != _gameShapes.end(); ++i) { delete[] i->_value; @@ -552,7 +553,6 @@ void KyraEngine_MR::startup() { _stringBuffer = new char[500]; //XXX musicUpdate(0); - _costPalBuffer = new uint8[864]; //XXX allocAnimObjects(1, 16, 50); @@ -672,7 +672,11 @@ void KyraEngine_MR::startup() { void KyraEngine_MR::loadCostPal() { debugC(9, kDebugLevelMain, "KyraEngine_MR::loadCostPal()"); - _costPalBuffer = _res->fileData("_COSTPAL.DAT", 0); + _res->exists("_COSTPAL.DAT", true); + uint32 size = 0; + _costPalBuffer = _res->fileData("_COSTPAL.DAT", &size); + assert(_costPalBuffer); + assert(size == 864); } void KyraEngine_MR::loadShadowShape() { diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp index 176f8e4e2f..422984490a 100644 --- a/engines/kyra/kyra_v2.cpp +++ b/engines/kyra/kyra_v2.cpp @@ -76,6 +76,7 @@ KyraEngine_v2::~KyraEngine_v2() { _gameShapes.clear(); delete[] _itemList; + delete[] _sceneList; _emc->unload(&_sceneScriptData); diff --git a/engines/kyra/scene_mr.cpp b/engines/kyra/scene_mr.cpp index 196c87424d..7da0dd9f75 100644 --- a/engines/kyra/scene_mr.cpp +++ b/engines/kyra/scene_mr.cpp @@ -430,6 +430,8 @@ void KyraEngine_MR::initSceneScript(int unk1) { _screen->_curPage = pageBackUp; musicUpdate(0); } + delete stream; + stream = 0; musicUpdate(0); strcpy(filename, scene.filename1); -- cgit v1.2.3