diff options
| -rw-r--r-- | engines/bladerunner/aud_stream.cpp | 10 | ||||
| -rw-r--r-- | engines/bladerunner/scene.cpp | 7 | 
2 files changed, 9 insertions, 8 deletions
diff --git a/engines/bladerunner/aud_stream.cpp b/engines/bladerunner/aud_stream.cpp index 97623f9b7e..4eadb5baf6 100644 --- a/engines/bladerunner/aud_stream.cpp +++ b/engines/bladerunner/aud_stream.cpp @@ -62,9 +62,9 @@ AudStream::~AudStream() {  int AudStream::readBuffer(int16 *buffer, const int numSamples) {  	int samplesRead = 0; -	assert(numSamples % 2 == 0); -  	if (_compressionType == 99) { +		assert(numSamples % 2 == 0); +  		while (samplesRead < numSamples) {  			if (_deafBlockRemain == 0) {  				if (_end - _p == 0) @@ -95,8 +95,10 @@ int AudStream::readBuffer(int16 *buffer, const int numSamples) {  			samplesRead += 2 * bytesConsumed;  		}  	} else { -		//assert(0 && "readBuffer: Unimplemented"); -		warning("AudStream::readBuffer unknown compression type %d", _compressionType); +		int bytesToCopy = MIN(2 * numSamples, _end - _p); +		memcpy(buffer, _p, bytesToCopy); +		_p += bytesToCopy; +		samplesRead = bytesToCopy / 2;  	}  	return samplesRead; diff --git a/engines/bladerunner/scene.cpp b/engines/bladerunner/scene.cpp index 65efe1306b..0ced4d8b93 100644 --- a/engines/bladerunner/scene.cpp +++ b/engines/bladerunner/scene.cpp @@ -93,16 +93,15 @@ bool Scene::open(int setId, int sceneId, bool isLoadingGame) {  	if (isLoadingGame) {  		// TODO: Advance VQA frame  		if (sceneId >= 73 && sceneId <= 76) -			_vm->_script->InitializeScene(); +			_vm->_script->SceneLoaded();  		return true;  	}  	// TODO: set VQADecoder parameters +	//_vm->_scene->advanceFrame(0, 0); -	// TODO: Set actor position from scene info  	_vm->_playerActor->setAtXYZ(_actorStartPosition, _actorStartFacing); - -	// TODO: Set actor set +	//_vm->_playerActor->setSetId(setId);  	_vm->_script->SceneLoaded();  | 
