aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/sky/intro.cpp11
-rw-r--r--engines/sky/sky.cpp10
-rw-r--r--engines/sky/sky.h3
3 files changed, 9 insertions, 15 deletions
diff --git a/engines/sky/intro.cpp b/engines/sky/intro.cpp
index 86e26309c9..40c53a3686 100644
--- a/engines/sky/intro.cpp
+++ b/engines/sky/intro.cpp
@@ -640,12 +640,11 @@ Intro::Intro(Disk *disk, Screen *screen, MusicBase *music, Sound *sound, Text *t
}
Intro::~Intro(void) {
- if (_textBuf)
- free(_textBuf);
- if (_saveBuf)
- free(_saveBuf);
- if (_bgBuf)
- free(_bgBuf);
+ if (_skyScreen->sequenceRunning())
+ _skyScreen->stopSequence();
+ free(_textBuf);
+ free(_saveBuf);
+ free(_bgBuf);
}
bool Intro::doIntro(bool floppyIntro) {
diff --git a/engines/sky/sky.cpp b/engines/sky/sky.cpp
index b1ea5ac3f9..4adce2ebaf 100644
--- a/engines/sky/sky.cpp
+++ b/engines/sky/sky.cpp
@@ -93,8 +93,6 @@ SkyEngine::~SkyEngine() {
delete _skyDisk;
delete _skyControl;
delete _skyCompact;
- if (_skyIntro)
- delete _skyIntro;
for (int i = 0; i < 300; i++)
if (_itemList[i])
@@ -169,8 +167,10 @@ Common::Error SkyEngine::go() {
if (result != GAME_RESTORED) {
bool introSkipped = false;
if (_systemVars.gameVersion > 267) { // don't do intro for floppydemos
- _skyIntro = new Intro(_skyDisk, _skyScreen, _skyMusic, _skySound, _skyText, _mixer, _system);
- introSkipped = !_skyIntro->doIntro(_floppyIntro);
+ Intro *skyIntro = new Intro(_skyDisk, _skyScreen, _skyMusic, _skySound, _skyText, _mixer, _system);
+ bool floppyIntro = ConfMan.getBool("alt_intro");
+ introSkipped = !skyIntro->doIntro(floppyIntro);
+ delete skyIntro;
}
if (!shouldQuit()) {
@@ -249,7 +249,6 @@ Common::Error SkyEngine::init() {
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, ConfMan.getInt("sfx_volume"));
_mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, ConfMan.getInt("speech_volume"));
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, ConfMan.getInt("music_volume"));
- _floppyIntro = ConfMan.getBool("alt_intro");
_skyDisk = new Disk();
_skySound = new Sound(_mixer, _skyDisk, Audio::Mixer::kMaxChannelVolume);
@@ -287,7 +286,6 @@ Common::Error SkyEngine::init() {
_systemVars.systemFlags |= SF_PLAY_VOCS;
_systemVars.gameSpeed = 50;
- _skyIntro = 0;
_skyCompact = new SkyCompact();
_skyText = new Text(_skyDisk, _skyCompact);
_skyMouse = new Mouse(_system, _skyDisk, _skyCompact);
diff --git a/engines/sky/sky.h b/engines/sky/sky.h
index aee8d7aff3..4e92563401 100644
--- a/engines/sky/sky.h
+++ b/engines/sky/sky.h
@@ -53,14 +53,12 @@ class Mouse;
class Screen;
class Control;
class MusicBase;
-class Intro;
class Debugger;
class SkyCompact;
class SkyEngine : public Engine {
protected:
Common::KeyState _keyPressed;
- bool _floppyIntro;
Sound *_skySound;
Disk *_skyDisk;
@@ -73,7 +71,6 @@ protected:
Debugger *_debugger;
MusicBase *_skyMusic;
- Intro *_skyIntro;
public:
SkyEngine(OSystem *syst);