aboutsummaryrefslogtreecommitdiff
path: root/engines/avalanche
diff options
context:
space:
mode:
authorStrangerke2013-10-25 23:37:41 +0200
committerStrangerke2013-10-25 23:37:41 +0200
commitf10130c414b340d765d89840dc56cbb8bd43b93a (patch)
treecc37554568e9bb7787e16b7c2a392bda9893f17e /engines/avalanche
parentda2ddbb8f482003a471b4f27eb222d4f9a23ea7b (diff)
downloadscummvm-rg350-f10130c414b340d765d89840dc56cbb8bd43b93a.tar.gz
scummvm-rg350-f10130c414b340d765d89840dc56cbb8bd43b93a.tar.bz2
scummvm-rg350-f10130c414b340d765d89840dc56cbb8bd43b93a.zip
AVALANCHE: Fix CID 1109674 - Uninitialized variables in Avalanche.cpp
Diffstat (limited to 'engines/avalanche')
-rw-r--r--engines/avalanche/avalanche.cpp62
-rw-r--r--engines/avalanche/avalanche.h1
2 files changed, 53 insertions, 10 deletions
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();