diff options
| -rw-r--r-- | engines/mohawk/riven_scripts.cpp | 19 | ||||
| -rw-r--r-- | engines/mohawk/riven_scripts.h | 7 | 
2 files changed, 12 insertions, 14 deletions
| diff --git a/engines/mohawk/riven_scripts.cpp b/engines/mohawk/riven_scripts.cpp index 1445731199..331f2261d5 100644 --- a/engines/mohawk/riven_scripts.cpp +++ b/engines/mohawk/riven_scripts.cpp @@ -56,23 +56,23 @@ RivenScriptPtr RivenScriptManager::readScript(Common::ReadStream *stream) {  	uint16 commandCount = stream->readUint16BE();  	for (uint16 i = 0; i < commandCount; i++) { -		RivenCommand *command = readCommand(stream); +		RivenCommandPtr command = readCommand(stream);  		script->addCommand(command);  	}  	return script;  } -RivenCommand *RivenScriptManager::readCommand(Common::ReadStream *stream) { +RivenCommandPtr RivenScriptManager::readCommand(Common::ReadStream *stream) {  	uint16 type = stream->readUint16BE();  	switch (type) {  		case 8: -			return RivenSwitchCommand::createFromStream(_vm, type, stream); +			return RivenCommandPtr(RivenSwitchCommand::createFromStream(_vm, type, stream));  		case 27: -			return RivenStackChangeCommand::createFromStream(_vm, type, stream); +			return RivenCommandPtr(RivenStackChangeCommand::createFromStream(_vm, type, stream));  		default: -			return RivenSimpleCommand::createFromStream(_vm, type, stream); +			return RivenCommandPtr(RivenSimpleCommand::createFromStream(_vm, type, stream));  	}  } @@ -160,7 +160,7 @@ RivenScriptPtr RivenScriptManager::createScriptWithCommand(RivenCommand *command  	assert(command);  	RivenScriptPtr script = RivenScriptPtr(new RivenScript()); -	script->addCommand(command); +	script->addCommand(RivenCommandPtr(command));  	return script;  } @@ -169,9 +169,6 @@ RivenScript::RivenScript() {  }  RivenScript::~RivenScript() { -	for (uint i = 0; i < _commands.size(); i ++) { -		delete _commands[i]; -	}  }  void RivenScript::dumpScript(byte tabs) { @@ -181,12 +178,12 @@ void RivenScript::dumpScript(byte tabs) {  }  void RivenScript::run() { -	for (uint16 i = 0; i < _commands.size() && _continueRunning; i++) { +	for (uint i = 0; i < _commands.size() && _continueRunning; i++) {  		_commands[i]->execute();  	}  } -void RivenScript::addCommand(RivenCommand *command) { +void RivenScript::addCommand(RivenCommandPtr command) {  	_commands.push_back(command);  } diff --git a/engines/mohawk/riven_scripts.h b/engines/mohawk/riven_scripts.h index 13c415b850..a5c1ccbdad 100644 --- a/engines/mohawk/riven_scripts.h +++ b/engines/mohawk/riven_scripts.h @@ -55,6 +55,7 @@ class RivenCommand;  class RivenScript;  typedef Common::SharedPtr<RivenScript> RivenScriptPtr; +typedef Common::SharedPtr<RivenCommand> RivenCommandPtr;  /**   * Scripts in Riven are a list of Commands @@ -68,7 +69,7 @@ public:  	~RivenScript();  	/** Append a command to the script */ -	void addCommand(RivenCommand *command); +	void addCommand(RivenCommandPtr command);  	/** True if the script does not contain any command */  	bool empty() const; @@ -94,7 +95,7 @@ public:  	static const char *getTypeName(uint16 type);  private: -	Common::Array<RivenCommand *> _commands; +	Common::Array<RivenCommandPtr> _commands;  	bool _continueRunning;  }; @@ -163,7 +164,7 @@ private:  	Common::Array<RivenScriptPtr> _queue;  	StoredMovieOpcode _storedMovieOpcode; -	RivenCommand *readCommand(Common::ReadStream *stream); +	RivenCommandPtr readCommand(Common::ReadStream *stream);  };  /** | 
