aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2016-08-26 12:33:48 +0200
committerEugene Sandulenko2016-08-26 12:33:48 +0200
commite40caf40a17e50d9cab698eb9b806302e106f179 (patch)
tree5773aee66fcbea9e81172d9f09eb2c128508cde6 /engines
parentc8989b8dd3d3167d9ab535d410664dea462f385b (diff)
downloadscummvm-rg350-e40caf40a17e50d9cab698eb9b806302e106f179.tar.gz
scummvm-rg350-e40caf40a17e50d9cab698eb9b806302e106f179.tar.bz2
scummvm-rg350-e40caf40a17e50d9cab698eb9b806302e106f179.zip
DIRECTOR: Fix object initialization
Diffstat (limited to 'engines')
-rw-r--r--engines/director/director.cpp6
-rw-r--r--engines/director/frame.cpp2
-rw-r--r--engines/director/lingo/lingo.cpp2
-rw-r--r--engines/director/score.cpp9
-rw-r--r--engines/director/sprite.cpp11
5 files changed, 30 insertions, 0 deletions
diff --git a/engines/director/director.cpp b/engines/director/director.cpp
index 89bac290b8..cf66c851cd 100644
--- a/engines/director/director.cpp
+++ b/engines/director/director.cpp
@@ -55,6 +55,12 @@ DirectorEngine::DirectorEngine(OSystem *syst, const DirectorGameDescription *gam
_sharedSTXT = nullptr;
_sharedDIB = nullptr;
+ _currentScore = nullptr;
+ _soundManager = nullptr;
+ _currentPalette = nullptr;
+ _currentPaletteLength = 0;
+ _lingo = nullptr;
+
_mainArchive = nullptr;
_macBinary = nullptr;
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 987ceec7f9..55d5ebd672 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -51,6 +51,8 @@ Frame::Frame(DirectorEngine *vm) {
_skipFrameFlag = 0;
_blend = 0;
+ _palette = NULL;
+
_sprites.resize(CHANNEL_COUNT);
for (uint16 i = 0; i < _sprites.size(); i++) {
diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp
index 29e31c38e4..17e8ea44fe 100644
--- a/engines/director/lingo/lingo.cpp
+++ b/engines/director/lingo/lingo.cpp
@@ -108,6 +108,8 @@ Lingo::Lingo(DirectorEngine *vm) : _vm(vm) {
_exitRepeat = false;
+ _localvars = NULL;
+
warning("Lingo Inited");
}
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index c8e66976a6..c07804b5a1 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -99,6 +99,15 @@ Score::Score(DirectorEngine *vm) {
_labels = NULL;
_font = NULL;
+ _versionMinor = _versionMajor = 0;
+ _currentFrameRate = 20;
+ _castArrayStart = _castArrayEnd = 0;
+ _currentFrame = 0;
+ _nextFrameTime = 0;
+ _flags = 0;
+ _stopPlay = false;
+ _stageColor = 0;
+
if (_movieArchive->hasResource(MKTAG('M','C','N','M'), 0)) {
_macName = _movieArchive->getName(MKTAG('M','C','N','M'), 0).c_str();
}
diff --git a/engines/director/sprite.cpp b/engines/director/sprite.cpp
index 7fd5b3d055..77d53ae1da 100644
--- a/engines/director/sprite.cpp
+++ b/engines/director/sprite.cpp
@@ -51,6 +51,10 @@ Sprite::Sprite() {
_volume = 0;
_stretch = 0;
_type = kInactiveSprite;
+
+ _cast = nullptr;
+ _blend = 0;
+ _lineSize = 1;
}
Sprite::Sprite(const Sprite &sprite) {
@@ -76,6 +80,13 @@ Sprite::Sprite(const Sprite &sprite) {
_volume = sprite._volume;
_stretch = sprite._stretch;
_type = sprite._type;
+
+ _cast = sprite._cast;
+ _constraint = sprite._constraint;
+ _moveable = sprite._moveable;
+ _blend = sprite._blend;
+ _startTime = sprite._startTime;
+ _lineSize = sprite._lineSize;
}
Sprite::~Sprite() {