From f10130c414b340d765d89840dc56cbb8bd43b93a Mon Sep 17 00:00:00 2001 From: Strangerke Date: Fri, 25 Oct 2013 23:37:41 +0200 Subject: AVALANCHE: Fix CID 1109674 - Uninitialized variables in Avalanche.cpp --- engines/avalanche/avalanche.cpp | 62 ++++++++++++++++++++++++++++++++++------- engines/avalanche/avalanche.h | 1 + 2 files changed, 53 insertions(+), 10 deletions(-) (limited to 'engines/avalanche') diff --git a/engines/avalanche/avalanche.cpp b/engines/avalanche/avalanche.cpp index 43e99945dc..9c83c2c9f5 100644 --- a/engines/avalanche/avalanche.cpp +++ b/engines/avalanche/avalanche.cpp @@ -41,17 +41,9 @@ AvalancheEngine::AvalancheEngine(OSystem *syst, const AvalancheGameDescription * TimeDate time; _system->getTimeAndDate(time); _rnd->setSeed(time.tm_sec + time.tm_min + time.tm_hour); - - // Needed because of Lucerna::load_also() - for (int i = 0; i < 31; i++) { - for (int j = 0; j < 2; j++) - _also[i][j] = nullptr; - } - - _totalTime = 0; _showDebugLines = false; - - memset(_fxPal, 0, 16 * 16 * 3); + + initVariables(); } AvalancheEngine::~AvalancheEngine() { @@ -82,6 +74,56 @@ AvalancheEngine::~AvalancheEngine() { } } +void AvalancheEngine::initVariables() { + // Needed because of Lucerna::load_also() + for (int i = 0; i < 31; i++) { + _also[i][0] = nullptr; + _also[i][1] = nullptr; + } + + _totalTime = 0; + + memset(_fxPal, 0, 16 * 16 * 3); + + for (int i = 0; i < 15; i++) { + _peds[i]._direction = kDirNone; + _peds[i]._x = 0; + _peds[i]._y = 0; + _magics[i]._operation = kMagicNothing; + _magics[i]._data = 0; + } + + for (int i = 0; i < 7; i++) { + _portals[i]._operation = kMagicNothing; + _portals[i]._data = 0; + } + + for (int i = 0; i < 30; i++) { + _fields[i]._x1 = 0; + _fields[i]._y1 = 0; + _fields[i]._x2 = 0; + _fields[i]._y2 = 0; + } + + _fieldNum = 0; + _cp = 0; + _ledStatus = 177; + _alive = false; + _subjectNum = 0; + _him = kPeoplePardon; + _her = kPeoplePardon; + _it = Parser::kPardon; + _roomTime = 0; + _doingSpriteRun = false; + _isLoaded = false; + _soundFx = true; + _spludwickAtHome = false; + _passedCwytalotInHerts = false; + _holdTheDawn = false; + _lastRoom = 0; + _lastRoomNotMap = 0; +} + Common::ErrorCode AvalancheEngine::initialize() { _graphics = new GraphicManager(this); _parser = new Parser(this); diff --git a/engines/avalanche/avalanche.h b/engines/avalanche/avalanche.h index cff0970d22..3cc342ca8c 100644 --- a/engines/avalanche/avalanche.h +++ b/engines/avalanche/avalanche.h @@ -316,6 +316,7 @@ private: Common::String readAlsoStringFromFile(Common::File &file); void runAvalot(); void init(); + void initVariables(); void setup(); void scram(Common::String &str); void unScramble(); -- cgit v1.2.3