From e40caf40a17e50d9cab698eb9b806302e106f179 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Fri, 26 Aug 2016 12:33:48 +0200 Subject: DIRECTOR: Fix object initialization --- engines/director/director.cpp | 6 ++++++ engines/director/frame.cpp | 2 ++ engines/director/lingo/lingo.cpp | 2 ++ engines/director/score.cpp | 9 +++++++++ engines/director/sprite.cpp | 11 +++++++++++ 5 files changed, 30 insertions(+) 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() { -- cgit v1.2.3