From 81b46b626853516983c9e336f6996c85fbd781d2 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Thu, 22 Sep 2005 22:55:01 +0000 Subject: Fix regression introduced when we split engine constructiors into constructor itself and init() method. debug() and error() are dependent on _debug object in many engines, so if these methods were called on early stage, scummvm crashed. svn-id: r18860 --- queen/queen.cpp | 2 +- scumm/scumm.cpp | 4 ++-- simon/simon.cpp | 2 ++ sky/sky.cpp | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/queen/queen.cpp b/queen/queen.cpp index 1d34f7f693..a48a036e61 100644 --- a/queen/queen.cpp +++ b/queen/queen.cpp @@ -135,7 +135,7 @@ REGISTER_PLUGIN(QUEEN, "Flight of the Amazon Queen") namespace Queen { QueenEngine::QueenEngine(GameDetector *detector, OSystem *syst) - : Engine(syst) { + : Engine(syst), _debugger(0) { } QueenEngine::~QueenEngine() { diff --git a/scumm/scumm.cpp b/scumm/scumm.cpp index 1787e6b2dd..7914a565cb 100644 --- a/scumm/scumm.cpp +++ b/scumm/scumm.cpp @@ -826,6 +826,8 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _platform(gs.platform), _substResFileNameIndex(substResFileNameIndex), _substResFileNameIndexBundle(0), + _debugger(0), + _currentScript(0xFF), // Let debug() work on init stage gdi(this), res(this), _pauseDialog(0), _mainMenuDialog(0), _versionDialog(0), @@ -933,7 +935,6 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _musicEngine = NULL; _verbs = NULL; _objs = NULL; - _debugger = NULL; _debugFlags = 0; _sound = NULL; memset(&vm, 0, sizeof(vm)); @@ -1009,7 +1010,6 @@ ScummEngine::ScummEngine(GameDetector *detector, OSystem *syst, const ScummGameS _scriptOrgPointer = NULL; _opcode = 0; vm.numNestedScripts = 0; - _currentScript = 0; _curExecScript = 0; _lastCodePtr = NULL; _resultVarNumber = 0; diff --git a/simon/simon.cpp b/simon/simon.cpp index 1cabe29182..51fcfbcb0c 100644 --- a/simon/simon.cpp +++ b/simon/simon.cpp @@ -276,6 +276,8 @@ SimonEngine::SimonEngine(GameDetector *detector, OSystem *syst) _vc_get_out_of_code = 0; _gameOffsetsPtr = 0; + _debugger = 0; + const SimonGameSettings *g = simon_settings; while (g->name) { if (!scumm_stricmp(detector->_game.name, g->name)) diff --git a/sky/sky.cpp b/sky/sky.cpp index 6ba394b3db..2a20acbb96 100644 --- a/sky/sky.cpp +++ b/sky/sky.cpp @@ -118,7 +118,7 @@ void *SkyEngine::_itemList[300]; SystemVars SkyEngine::_systemVars = {0, 0, 0, 0, 4316, 0, 0, false, false, false }; SkyEngine::SkyEngine(GameDetector *detector, OSystem *syst) - : Engine(syst), _fastMode(0) { + : Engine(syst), _fastMode(0), _debugger(0) { } SkyEngine::~SkyEngine() { -- cgit v1.2.3