[Scummvm-cvs-logs] scummvm master -> 1084fc023ccd94bec579db27115cc874b653cc24

Strangerke Strangerke at scummvm.org
Mon Jan 4 14:14:35 CET 2016


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
1084fc023c TONY: As suggested by LordHoto, determine codec based on container signature instead of filename


Commit: 1084fc023ccd94bec579db27115cc874b653cc24
    https://github.com/scummvm/scummvm/commit/1084fc023ccd94bec579db27115cc874b653cc24
Author: Strangerke (strangerke at scummvm.org)
Date: 2016-01-04T14:07:56+01:00

Commit Message:
TONY: As suggested by LordHoto, determine codec based on container signature instead of filename

Changed paths:
    engines/tony/tony.cpp



diff --git a/engines/tony/tony.cpp b/engines/tony/tony.cpp
index 08e30cd..47fd2e3 100644
--- a/engines/tony/tony.cpp
+++ b/engines/tony/tony.cpp
@@ -574,48 +574,29 @@ void TonyEngine::loadState(CORO_PARAM, int n) {
 
 bool TonyEngine::openVoiceDatabase() {
 	// Open the voices database
-	if (_vdbFP.open("voices.vdb"))
-		_vdbCodec = FPCODEC_ADPCM;
-	else if (_vdbFP.open("voices.mdb"))
-		_vdbCodec = FPCODEC_MP3;
-	else if (_vdbFP.open("voices.odb"))
-		_vdbCodec = FPCODEC_OGG;
-	else if (_vdbFP.open("voices.fdb"))
-		_vdbCodec = FPCODEC_FLAC;
-	else
-		return false;
+	if (!_vdbFP.open("voices.vdb"))
+		if (!_vdbFP.open("voices.mdb"))
+			if (!_vdbFP.open("voices.odb"))
+				if (!_vdbFP.open("voices.fdb"))
+					return false;
 
 	_vdbFP.seek(-8, SEEK_END);
 	uint32 numfiles = _vdbFP.readUint32LE();
+	int32 id = _vdbFP.readUint32BE();
 
-	switch (_vdbCodec) {
-	case FPCODEC_ADPCM:
-		if (_vdbFP.readUint32BE() != MKTAG('V', 'D', 'B', '1')) {
-			_vdbFP.close();
-			return false;
-		}
-		break;
-	case FPCODEC_MP3:
-		if (_vdbFP.readUint32BE() != MKTAG('M', 'D', 'B', '1')) {
-			_vdbFP.close();
-			return false;
-		}
-		break;
-	case FPCODEC_OGG:
-		if (_vdbFP.readUint32BE() != MKTAG('O', 'D', 'B', '1')) {
-			_vdbFP.close();
-			return false;
-		}
-		break;
-	case FPCODEC_FLAC:
-		if (_vdbFP.readUint32BE() != MKTAG('F', 'D', 'B', '1')) {
-			_vdbFP.close();
-			return false;
-		}
-		break;
-	default:
+	if (id == MKTAG('V', 'D', 'B', '1'))
+		_vdbCodec = FPCODEC_ADPCM;
+	else if (id == MKTAG('M', 'D', 'B', '1'))
+		_vdbCodec = FPCODEC_MP3;
+	else if (id == MKTAG('O', 'D', 'B', '1'))
+		_vdbCodec = FPCODEC_OGG;
+	else if (id == MKTAG('F', 'D', 'B', '1'))
+		_vdbCodec = FPCODEC_FLAC;
+	else {
+		_vdbFP.close();
 		return false;
 	}
+
 	// Read in the index
 	_vdbFP.seek(-8 - (numfiles * VOICE_HEADER_SIZE), SEEK_END);
 






More information about the Scummvm-git-logs mailing list