diff options
-rw-r--r-- | engines/lastexpress/data/animation.cpp | 15 | ||||
-rw-r--r-- | engines/lastexpress/debug.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/entities/entity.cpp | 2 | ||||
-rw-r--r-- | engines/lastexpress/entities/entity.h | 9 | ||||
-rw-r--r-- | engines/lastexpress/game/action.cpp | 4 | ||||
-rw-r--r-- | engines/lastexpress/game/beetle.h | 7 | ||||
-rw-r--r-- | engines/lastexpress/game/entities.cpp | 6 | ||||
-rw-r--r-- | engines/lastexpress/game/fight.cpp | 9 | ||||
-rw-r--r-- | engines/lastexpress/game/logic.cpp | 12 | ||||
-rw-r--r-- | engines/lastexpress/game/menu.cpp | 16 | ||||
-rw-r--r-- | engines/lastexpress/game/scenes.cpp | 7 | ||||
-rw-r--r-- | engines/lastexpress/game/sound.cpp | 8 | ||||
-rw-r--r-- | engines/lastexpress/game/sound.h | 7 | ||||
-rw-r--r-- | engines/lastexpress/game/state.cpp | 10 | ||||
-rw-r--r-- | engines/lastexpress/lastexpress.cpp | 62 | ||||
-rw-r--r-- | engines/lastexpress/lastexpress.h | 8 | ||||
-rw-r--r-- | engines/lastexpress/resource.cpp | 3 |
17 files changed, 99 insertions, 88 deletions
diff --git a/engines/lastexpress/data/animation.cpp b/engines/lastexpress/data/animation.cpp index 88973c4b0b..3f1383022f 100644 --- a/engines/lastexpress/data/animation.cpp +++ b/engines/lastexpress/data/animation.cpp @@ -31,6 +31,7 @@ #include "lastexpress/data/snd.h" #include "lastexpress/debug.h" +#include "lastexpress/helpers.h" #include "common/events.h" #include "engines/engine.h" @@ -45,21 +46,17 @@ Animation::~Animation() { } void Animation::reset() { - delete _overlay; - _overlay = NULL; - delete _background1; - _background1 = NULL; - delete _background2; - _background2 = NULL; - delete _audio; - _audio = NULL; + SAFE_DELETE(_overlay); + SAFE_DELETE(_background1); + SAFE_DELETE(_background2); + SAFE_DELETE(_audio); _backgroundCurrent = 0; _chunks.clear(); _currentChunk = NULL; - delete _stream; + SAFE_DELETE(_stream); } bool Animation::load(Common::SeekableReadStream *stream, int flag) { diff --git a/engines/lastexpress/debug.cpp b/engines/lastexpress/debug.cpp index 66949c3d34..520b4cfee3 100644 --- a/engines/lastexpress/debug.cpp +++ b/engines/lastexpress/debug.cpp @@ -100,7 +100,7 @@ Debugger::Debugger(LastExpressEngine *engine) : _engine(engine), _command(NULL), Debugger::~Debugger() { DebugMan.clearAllDebugChannels(); - delete _soundStream; + SAFE_DELETE(_soundStream); resetCommand(); _command = NULL; diff --git a/engines/lastexpress/entities/entity.cpp b/engines/lastexpress/entities/entity.cpp index 6ca0155dcb..7e76123b5b 100644 --- a/engines/lastexpress/entities/entity.cpp +++ b/engines/lastexpress/entities/entity.cpp @@ -154,7 +154,7 @@ Entity::~Entity() { _callbacks.clear(); - delete _data; + SAFE_DELETE(_data); // Zero-out passed pointers _engine = NULL; diff --git a/engines/lastexpress/entities/entity.h b/engines/lastexpress/entities/entity.h index 33ca244c5e..9a2b0ffe25 100644 --- a/engines/lastexpress/entities/entity.h +++ b/engines/lastexpress/entities/entity.h @@ -30,6 +30,8 @@ #include "lastexpress/game/sound.h" +#include "lastexpress/helpers.h" + #include "common/array.h" #include "common/func.h" #include "common/serializer.h" @@ -493,11 +495,8 @@ public: } void clear() { - for (int i = 0; i < 4; i++) { - if (parameters[i]) - delete parameters[i]; - parameters[i] = NULL; - } + for (int i = 0; i < 4; i++) + SAFE_DELETE(parameters[i]); } // Serializable diff --git a/engines/lastexpress/game/action.cpp b/engines/lastexpress/game/action.cpp index 8058d22f05..d14e295cb3 100644 --- a/engines/lastexpress/game/action.cpp +++ b/engines/lastexpress/game/action.cpp @@ -383,7 +383,9 @@ Action::Action(LastExpressEngine *engine) : _engine(engine) { Action::~Action() { for (int i = 0; i < (int)_actions.size(); i++) - delete _actions[i]; + SAFE_DELETE(_actions[i]); + + _actions.clear(); // Zero-out passed pointers _engine = NULL; diff --git a/engines/lastexpress/game/beetle.h b/engines/lastexpress/game/beetle.h index 3341e92270..661618a251 100644 --- a/engines/lastexpress/game/beetle.h +++ b/engines/lastexpress/game/beetle.h @@ -28,6 +28,8 @@ #include "lastexpress/data/sequence.h" +#include "lastexpress/helpers.h" + #include "common/array.h" #include "common/system.h" @@ -98,8 +100,9 @@ private: ~BeetleData() { for (int i = 0; i < (int)sequences.size(); i++) - if (sequences[i]) - delete sequences[i]; + SAFE_DELETE(sequences[i]); + + sequences.clear(); } }; diff --git a/engines/lastexpress/game/entities.cpp b/engines/lastexpress/game/entities.cpp index adba0f1b4c..8741a4873b 100644 --- a/engines/lastexpress/game/entities.cpp +++ b/engines/lastexpress/game/entities.cpp @@ -185,10 +185,12 @@ Entities::Entities(LastExpressEngine *engine) : _engine(engine) { } Entities::~Entities() { - delete _header; + SAFE_DELETE(_header); for (int i = 0; i < (int)_entities.size(); i++) - delete _entities[i]; + SAFE_DELETE(_entities[i]); + + _entities.clear(); // Zero passed pointers _engine = NULL; diff --git a/engines/lastexpress/game/fight.cpp b/engines/lastexpress/game/fight.cpp index 8fa711df1c..9f92320575 100644 --- a/engines/lastexpress/game/fight.cpp +++ b/engines/lastexpress/game/fight.cpp @@ -325,11 +325,10 @@ void Fight::clearData() { clearSequences(_data->player); clearSequences(_data->opponent); - delete _data->player; - delete _data->opponent; + SAFE_DELETE(_data->player); + SAFE_DELETE(_data->opponent); - delete _data; - _data = NULL; + SAFE_DELETE(_data); _engine->restoreEventHandlers(); } @@ -343,7 +342,7 @@ void Fight::clearSequences(Fighter *combatant) const { // Free sequences for (int i = 0; i < (int)combatant->sequences.size(); i++) - delete combatant->sequences[i]; + SAFE_DELETE(combatant->sequences[i]); } ////////////////////////////////////////////////////////////////////////// diff --git a/engines/lastexpress/game/logic.cpp b/engines/lastexpress/game/logic.cpp index 3ef710a324..8e7f688235 100644 --- a/engines/lastexpress/game/logic.cpp +++ b/engines/lastexpress/game/logic.cpp @@ -72,12 +72,12 @@ Logic::Logic(LastExpressEngine *engine) : _engine(engine) { } Logic::~Logic() { - delete _action; - delete _beetle; - delete _fight; - delete _entities; - delete _saveload; - delete _state; + SAFE_DELETE(_action); + SAFE_DELETE(_beetle); + SAFE_DELETE(_fight); + SAFE_DELETE(_entities); + SAFE_DELETE(_saveload); + SAFE_DELETE(_state); // Zero-out passed pointers _engine = NULL; diff --git a/engines/lastexpress/game/menu.cpp b/engines/lastexpress/game/menu.cpp index 6ca4f22177..9e38d05444 100644 --- a/engines/lastexpress/game/menu.cpp +++ b/engines/lastexpress/game/menu.cpp @@ -204,10 +204,10 @@ Clock::Clock(LastExpressEngine *engine) : _engine(engine), _frameMinutes(NULL), } Clock::~Clock() { - delete _frameMinutes; - delete _frameHour; - delete _frameSun; - delete _frameDate; + SAFE_DELETE(_frameMinutes); + SAFE_DELETE(_frameHour); + SAFE_DELETE(_frameSun); + SAFE_DELETE(_frameDate); // Zero passed pointers _engine = NULL; @@ -291,8 +291,8 @@ TrainLine::TrainLine(LastExpressEngine *engine) : _engine(engine), _frameLine1(N } TrainLine::~TrainLine() { - delete _frameLine1; - delete _frameLine2; + SAFE_DELETE(_frameLine1); + SAFE_DELETE(_frameLine2); // Zero passed pointers _engine = NULL; @@ -369,8 +369,8 @@ Menu::Menu(LastExpressEngine *engine) : _engine(engine), } Menu::~Menu() { - delete _clock; - delete _trainLine; + SAFE_DELETE(_clock); + SAFE_DELETE(_trainLine); SAFE_DELETE(_seqTooltips); SAFE_DELETE(_seqEggButtons); diff --git a/engines/lastexpress/game/scenes.cpp b/engines/lastexpress/game/scenes.cpp index 3f9aa0b3b3..15fe0617d8 100644 --- a/engines/lastexpress/game/scenes.cpp +++ b/engines/lastexpress/game/scenes.cpp @@ -51,8 +51,6 @@ SceneManager::SceneManager(LastExpressEngine *engine) : _engine(engine), } SceneManager::~SceneManager() { - delete _sceneLoader; - // Clear frames for (Common::List<SequenceFrame *>::iterator door = _doors.begin(); door != _doors.end(); ++door) SAFE_DELETE(*door); @@ -63,8 +61,9 @@ SceneManager::~SceneManager() { SAFE_DELETE(_clockMinutes); // Clear frame queue - for (Common::List<SequenceFrame *>::iterator i = _queue.begin(); i != _queue.end(); ++i) - SAFE_DELETE(*i); + _queue.clear(); + + SAFE_DELETE(_sceneLoader); // Zero-out passed pointers _engine = NULL; diff --git a/engines/lastexpress/game/sound.cpp b/engines/lastexpress/game/sound.cpp index 2249109fe9..b28583f729 100644 --- a/engines/lastexpress/game/sound.cpp +++ b/engines/lastexpress/game/sound.cpp @@ -118,9 +118,12 @@ SoundManager::SoundManager(LastExpressEngine *engine) : _engine(engine), _state( } SoundManager::~SoundManager() { + for (Common::List<SoundEntry *>::iterator i = _cache.begin(); i != _cache.end(); ++i) + SAFE_DELETE(*i); + _cache.clear(); - delete _soundStream; + SAFE_DELETE(_soundStream); // Zero passed pointers _engine = NULL; @@ -134,6 +137,7 @@ void SoundManager::handleTimer() { for (Common::List<SoundEntry *>::iterator i = _cache.begin(); i != _cache.end(); ++i) { SoundEntry *entry = (*i); if (entry->stream == NULL) { + SAFE_DELETE(*i); i = _cache.reverse_erase(i); continue; } else if (!entry->isStreamed) { @@ -191,7 +195,7 @@ void SoundManager::clearQueue() { // Delete entry removeEntry(entry); - delete entry; + SAFE_DELETE(entry); i = _cache.reverse_erase(i); } diff --git a/engines/lastexpress/game/sound.h b/engines/lastexpress/game/sound.h index cf08cd7ee8..edb6086d88 100644 --- a/engines/lastexpress/game/sound.h +++ b/engines/lastexpress/game/sound.h @@ -71,6 +71,8 @@ #include "lastexpress/shared.h" +#include "lastexpress/helpers.h" + #include "common/list.h" #include "common/system.h" #include "common/serializer.h" @@ -286,7 +288,10 @@ private: } ~SoundEntry() { - delete stream; + // Entries that have been queued would have their streamed disposed automatically + if (!isStreamed) + SAFE_DELETE(stream); + //delete subtitle; } }; diff --git a/engines/lastexpress/game/state.cpp b/engines/lastexpress/game/state.cpp index 9586c58ceb..45cb2c58ab 100644 --- a/engines/lastexpress/game/state.cpp +++ b/engines/lastexpress/game/state.cpp @@ -42,11 +42,11 @@ State::State(LastExpressEngine *engine) : _engine(engine), _timer(0) { } State::~State() { - delete _inventory; - delete _objects; - delete _savepoints; - delete _state; - delete _flags; + SAFE_DELETE(_inventory); + SAFE_DELETE(_objects); + SAFE_DELETE(_savepoints); + SAFE_DELETE(_state); + SAFE_DELETE(_flags); // Zero passed pointers _engine = NULL; diff --git a/engines/lastexpress/lastexpress.cpp b/engines/lastexpress/lastexpress.cpp index b2809a2b99..91ef2f799d 100644 --- a/engines/lastexpress/lastexpress.cpp +++ b/engines/lastexpress/lastexpress.cpp @@ -55,7 +55,7 @@ LastExpressEngine::LastExpressEngine(OSystem *syst, const ADGameDescription *gd) Engine(syst), _gameDescription(gd), _debugger(NULL), _cursor(NULL), _font(NULL), _logic(NULL), _menu(NULL), _frameCounter(0), _lastFrameCount(0), _graphicsMan(NULL), _resMan(NULL), _sceneMan(NULL), _soundMan(NULL), - eventMouse(NULL), eventTick(NULL), eventMouseBackup(NULL), eventTickBackup(NULL) { + _eventMouse(NULL), _eventTick(NULL), _eventMouseBackup(NULL), _eventTickBackup(NULL) { // Adding the default directories const Common::FSNode gameDataDir(ConfMan.get("path")); @@ -80,21 +80,21 @@ LastExpressEngine::~LastExpressEngine() { _timer->removeTimerProc(&soundTimer); // Delete the remaining objects - delete _cursor; - delete _font; - delete _logic; - delete _menu; - delete _graphicsMan; - delete _resMan; - delete _sceneMan; - delete _soundMan; - delete _debugger; + SAFE_DELETE(_cursor); + SAFE_DELETE(_font); + SAFE_DELETE(_logic); + SAFE_DELETE(_menu); + SAFE_DELETE(_graphicsMan); + SAFE_DELETE(_resMan); + SAFE_DELETE(_sceneMan); + SAFE_DELETE(_soundMan); + SAFE_DELETE(_debugger); // Cleanup event handlers - SAFE_DELETE(eventMouse); - SAFE_DELETE(eventTick); - SAFE_DELETE(eventMouseBackup); - SAFE_DELETE(eventTickBackup); + SAFE_DELETE(_eventMouse); + SAFE_DELETE(_eventTick); + SAFE_DELETE(_eventMouseBackup); + SAFE_DELETE(_eventTickBackup); // Zero passed pointers _gameDescription = NULL; @@ -218,19 +218,19 @@ bool LastExpressEngine::handleEvents() { getGameLogic()->getGameState()->getGameFlags()->frameInterval = true; _lastFrameCount = _frameCounter; - if (eventMouse && eventMouse->isValid()) - (*eventMouse)(ev); + if (_eventMouse && _eventMouse->isValid()) + (*_eventMouse)(ev); break; case Common::EVENT_RBUTTONUP: getGameLogic()->getGameState()->getGameFlags()->mouseRightClick = true; - if (eventMouse && eventMouse->isValid()) - (*eventMouse)(ev); + if (_eventMouse && _eventMouse->isValid()) + (*_eventMouse)(ev); break; case Common::EVENT_MOUSEMOVE: - if (eventMouse && eventMouse->isValid()) - (*eventMouse)(ev); + if (_eventMouse && _eventMouse->isValid()) + (*_eventMouse)(ev); break; case Common::EVENT_QUIT: @@ -243,8 +243,8 @@ bool LastExpressEngine::handleEvents() { } // Game tick event - if (eventTick && eventTick->isValid()) - (*eventTick)(ev); + if (_eventTick && _eventTick->isValid()) + (*_eventTick)(ev); // Update the screen _graphicsMan->update(); @@ -279,25 +279,25 @@ void LastExpressEngine::handleSoundTimer() { /// Event Handling /////////////////////////////////////////////////////////////////////////////////// void LastExpressEngine::backupEventHandlers() { - eventMouseBackup = eventMouse; - eventTickBackup = eventTick; + _eventMouseBackup = _eventMouse; + _eventTickBackup = _eventTick; } void LastExpressEngine::restoreEventHandlers() { - if (eventMouseBackup == NULL || eventTickBackup == NULL) + if (_eventMouseBackup == NULL || _eventTickBackup == NULL) error("LastExpressEngine::restoreEventHandlers: restore called before backing up the event handlers!"); - eventMouse = eventMouseBackup; - eventTick = eventTickBackup; + _eventMouse = _eventMouseBackup; + _eventTick = _eventTickBackup; } void LastExpressEngine::setEventHandlers(EventHandler::EventFunction *mouse, EventHandler::EventFunction *tick) { // Cleanup previous event handlers - delete eventMouse; - delete eventTick; + delete _eventMouse; + delete _eventTick; - eventMouse = mouse; - eventTick = tick; + _eventMouse = mouse; + _eventTick = tick; } /////////////////////////////////////////////////////////////////////////////////// diff --git a/engines/lastexpress/lastexpress.h b/engines/lastexpress/lastexpress.h index ac05c5a405..a602e4956b 100644 --- a/engines/lastexpress/lastexpress.h +++ b/engines/lastexpress/lastexpress.h @@ -141,11 +141,11 @@ private: SoundManager *_soundMan; // Event handlers - EventHandler::EventFunction *eventMouse; - EventHandler::EventFunction *eventTick; + EventHandler::EventFunction *_eventMouse; + EventHandler::EventFunction *_eventTick; - EventHandler::EventFunction *eventMouseBackup; - EventHandler::EventFunction *eventTickBackup; + EventHandler::EventFunction *_eventMouseBackup; + EventHandler::EventFunction *_eventTickBackup; }; } // End of namespace LastExpress diff --git a/engines/lastexpress/resource.cpp b/engines/lastexpress/resource.cpp index 57bc12a185..5a77b23602 100644 --- a/engines/lastexpress/resource.cpp +++ b/engines/lastexpress/resource.cpp @@ -30,6 +30,7 @@ #include "lastexpress/data/font.h" #include "lastexpress/debug.h" +#include "lastexpress/helpers.h" #include "common/debug.h" #include "common/file.h" @@ -107,7 +108,7 @@ bool ResourceManager::loadArchive(ArchiveIndex type) { void ResourceManager::reset() { // Free the loaded archives for (Common::Array<HPFArchive *>::iterator it = _archives.begin(); it != _archives.end(); ++it) - delete (*it); + SAFE_DELETE(*it); _archives.clear(); } |