diff options
| author | Sven Hesse | 2009-06-22 16:29:31 +0000 | 
|---|---|---|
| committer | Sven Hesse | 2009-06-22 16:29:31 +0000 | 
| commit | 565a9f5b0d4528b09531e1c381f81587546a0580 (patch) | |
| tree | 5003a21c18038c00ee3b706920864e21e43d10fd | |
| parent | 49c46a46f7a6aa8a34b14c9dd0097a8e41496732 (diff) | |
| download | scummvm-rg350-565a9f5b0d4528b09531e1c381f81587546a0580.tar.gz scummvm-rg350-565a9f5b0d4528b09531e1c381f81587546a0580.tar.bz2 scummvm-rg350-565a9f5b0d4528b09531e1c381f81587546a0580.zip  | |
Don't assert on pop when no script is loaded
svn-id: r41770
| -rw-r--r-- | engines/gob/game_v1.cpp | 3 | ||||
| -rw-r--r-- | engines/gob/game_v2.cpp | 3 | ||||
| -rw-r--r-- | engines/gob/script.cpp | 13 | 
3 files changed, 15 insertions, 4 deletions
diff --git a/engines/gob/game_v1.cpp b/engines/gob/game_v1.cpp index 1a530fa4f6..f038c7edc3 100644 --- a/engines/gob/game_v1.cpp +++ b/engines/gob/game_v1.cpp @@ -242,8 +242,7 @@ void Game_v1::playTot(int16 skipPlay) {  	_vm->_inter->_breakFromLevel = oldBreakFrom;  	_vm->_scenery->_pCaptureCounter = oldCaptureCounter; -	if (_script->isLoaded()) -		_script->pop(); +	_script->pop();  }  void Game_v1::clearCollisions() { diff --git a/engines/gob/game_v2.cpp b/engines/gob/game_v2.cpp index e170a1c9d0..ace842f18e 100644 --- a/engines/gob/game_v2.cpp +++ b/engines/gob/game_v2.cpp @@ -293,8 +293,7 @@ void Game_v2::playTot(int16 skipPlay) {  	_vm->_inter->_breakFromLevel = oldBreakFrom;  	_vm->_scenery->_pCaptureCounter = oldCaptureCounter; -	if (_script->isLoaded()) -		_script->pop(); +	_script->pop();  }  void Game_v2::clearCollisions() { diff --git a/engines/gob/script.cpp b/engines/gob/script.cpp index ab2d8cdaf2..e4808cf9ce 100644 --- a/engines/gob/script.cpp +++ b/engines/gob/script.cpp @@ -419,6 +419,10 @@ bool Script::isFinished() const {  }  void Script::push() { +	if (!isLoaded()) +		// Nothing to do +		return; +  	CallEntry currentCall;  	currentCall.totPtr = _totPtr; @@ -428,6 +432,11 @@ void Script::push() {  }  void Script::pop(bool ret) { +	if (!isLoaded()) +		// Nothing to do +		return; + +	// Unmatched pop?  	assert(!_callStack.empty());  	CallEntry lastCall = _callStack.pop(); @@ -439,6 +448,10 @@ void Script::pop(bool ret) {  }  void Script::call(uint32 offset) { +	if (!isLoaded()) +		// Nothing to do +		return; +  	push();  	seek(offset);  }  | 
