diff --git a/engines/grim/actor.cpp b/engines/grim/actor.cpp index e51772afbe3..0624ddc4f6f 100644 --- a/engines/grim/actor.cpp +++ b/engines/grim/actor.cpp @@ -865,7 +865,7 @@ bool Actor::isTalking() { TextObject *textObject = NULL; if (_sayLineText) textObject = TextObject::getPool().getObject(_sayLineText); - if ((m == GrimEngine::TextOnly && (!textObject || textObject->getDisabled())) || + if ((m == GrimEngine::TextOnly && !textObject) || (m != GrimEngine::TextOnly && (strlen(_talkSoundName.c_str()) == 0 || !g_imuse->getSoundStatus(_talkSoundName.c_str())))) { return false; } diff --git a/engines/grim/grim.cpp b/engines/grim/grim.cpp index 79316ffe01c..8daec63c78f 100644 --- a/engines/grim/grim.cpp +++ b/engines/grim/grim.cpp @@ -145,7 +145,6 @@ GrimEngine::GrimEngine(OSystem *syst, uint32 gameFlags, GrimGameType gameType, C _printLineDefaults.setFGColor(c); _printLineDefaults.setFont(NULL); _printLineDefaults.setJustify(TextObject::LJUSTIFY); - _printLineDefaults.setDisabled(false); _sayLineDefaults.setX(0); _sayLineDefaults.setY(100); @@ -154,7 +153,6 @@ GrimEngine::GrimEngine(OSystem *syst, uint32 gameFlags, GrimGameType gameType, C _sayLineDefaults.setFGColor(c); _sayLineDefaults.setFont(NULL); _sayLineDefaults.setJustify(TextObject::CENTER); - _sayLineDefaults.setDisabled(false); _blastTextDefaults.setX(0); _blastTextDefaults.setY(200); @@ -163,7 +161,6 @@ GrimEngine::GrimEngine(OSystem *syst, uint32 gameFlags, GrimGameType gameType, C _blastTextDefaults.setFGColor(c); _blastTextDefaults.setFont(NULL); _blastTextDefaults.setJustify(TextObject::LJUSTIFY); - _blastTextDefaults.setDisabled(false); const Common::FSNode gameDataDir(ConfMan.get("path")); SearchMan.addSubDirectoryMatching(gameDataDir, "movies"); // Add 'movies' subdirectory for the demo @@ -776,7 +773,8 @@ void GrimEngine::restoreGRIM() { _talkingActor = Actor::getPool().getObject(_savedState->readLEUint32()); //TextObject stuff - _sayLineDefaults.setDisabled(_savedState->readLESint32()); + //SAVECHANGE: Remove the next line with the next save version + _savedState->readLESint32(); _sayLineDefaults.setFGColor(PoolColor::getPool().getObject(_savedState->readLEUint32())); _sayLineDefaults.setFont(Font::getPool().getObject(_savedState->readLEUint32())); _sayLineDefaults.setHeight(_savedState->readLESint32()); @@ -913,7 +911,8 @@ void GrimEngine::saveGRIM() { } //TextObject stuff - _savedState->writeLESint32(_sayLineDefaults.getDisabled()); + //SAVECHANGE: Remove the next line with the next save version + _savedState->writeLESint32(0); _savedState->writeLEUint32(_sayLineDefaults.getFGColor()->getId()); _savedState->writeLEUint32(_sayLineDefaults.getFont()->getId()); _savedState->writeLESint32(_sayLineDefaults.getHeight()); diff --git a/engines/grim/textobject.cpp b/engines/grim/textobject.cpp index 954b01899ee..c4aeaa1cf83 100644 --- a/engines/grim/textobject.cpp +++ b/engines/grim/textobject.cpp @@ -34,7 +34,7 @@ namespace Grim { TextObjectCommon::TextObjectCommon() : _x(0), _y(0), _fgColor(0), _justify(0), _width(0), _height(0), - _disabled(false), _font(NULL), _duration(0) { + _font(NULL), _duration(0) { } TextObject::TextObject(bool blastDraw, bool isSpeech) : @@ -78,7 +78,8 @@ void TextObject::saveState(SaveGame *state) const { state->writeLESint32(_numberLines); state->writeLESint32(_duration); - state->writeLESint32(_disabled); + //SAVECHANGE: Remove the next line with the next save version + state->writeLESint32(0); state->writeLESint32(_blastDraw); state->writeLESint32(_isSpeech); state->writeLESint32(_elapsedTime); @@ -99,7 +100,8 @@ bool TextObject::restoreState(SaveGame *state) { _numberLines = state->readLESint32(); _duration = state->readLESint32(); - _disabled = state->readLESint32(); + //SAVECHANGE: Remove the next line with the next save version + state->readLESint32(); _blastDraw = state->readLESint32(); _isSpeech = state->readLESint32(); _elapsedTime = state->readLESint32(); @@ -121,7 +123,6 @@ void TextObject::setDefaults(TextObjectDefaults *defaults) { _font = defaults->getFont(); _fgColor = defaults->getFGColor(); _justify = defaults->getJustify(); - _disabled = defaults->getDisabled(); } int TextObject::getBitmapWidth() { @@ -320,7 +321,7 @@ int TextObject::getLineY(int line) { } void TextObject::draw() { - if (_disabled || !_lines) + if (!_lines) return; if (!_created) { @@ -336,13 +337,13 @@ void TextObject::draw() { } void TextObject::update() { - if (!_duration || !_created || _disabled) { + if (!_duration || !_created) { return; } _elapsedTime += g_grim->getFrameTime(); if (_elapsedTime > _duration) { - _disabled = true; + delete this; } } diff --git a/engines/grim/textobject.h b/engines/grim/textobject.h index c49c7cfda20..34924ccdb0c 100644 --- a/engines/grim/textobject.h +++ b/engines/grim/textobject.h @@ -48,9 +48,6 @@ public: void setJustify(int justify) { _justify = justify; } int getJustify() { return _justify; } - void setDisabled(bool disabled) { _disabled = disabled; } - bool getDisabled() { return _disabled; } - void setWidth(int width) { _width = width; } int getWidth() { return _width; } @@ -67,7 +64,6 @@ protected: int _x, _y; int _width, _height; int _justify; - bool _disabled; Font *_font; int _duration; };