[Scummvm-cvs-logs] scummvm master -> c61c89dd350b765ec1b3d39097e250c042d5358b

m-kiewitz m_kiewitz at users.sourceforge.net
Fri Feb 5 18:40:41 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:
c61c89dd35 SCI: QfG1/2/3/4 character file detection changed


Commit: c61c89dd350b765ec1b3d39097e250c042d5358b
    https://github.com/scummvm/scummvm/commit/c61c89dd350b765ec1b3d39097e250c042d5358b
Author: Martin Kiewitz (m_kiewitz at users.sourceforge.net)
Date: 2016-02-05T18:40:14+01:00

Commit Message:
SCI: QfG1/2/3/4 character file detection changed

No longer checking for .sav file suffix, but instead checking
room number instead. The user is able to change the suffix,
which would have resulted in a compressed character file.

Changed paths:
    engines/sci/engine/file.cpp



diff --git a/engines/sci/engine/file.cpp b/engines/sci/engine/file.cpp
index a602cb4..0b1001b 100644
--- a/engines/sci/engine/file.cpp
+++ b/engines/sci/engine/file.cpp
@@ -66,13 +66,29 @@ reg_t file_open(EngineState *s, const Common::String &filename, int mode, bool u
 
 	bool isCompressed = true;
 	const SciGameId gameId = g_sci->getGameId();
-	if ((gameId == GID_QFG1 || gameId == GID_QFG1VGA || gameId == GID_QFG2 || gameId == GID_QFG3)
-		&& englishName.hasSuffix(".sav")) {
-		// QFG Characters are saved via the CharSave object.
-		// We leave them uncompressed so that they can be imported in later QFG
-		// games.
-		// Rooms/Scripts: QFG1: 601, QFG2: 840, QFG3/4: 52
-		isCompressed = false;
+
+	// QFG Characters are saved via the CharSave object.
+	// We leave them uncompressed so that they can be imported in later QFG
+	// games, even when using the original interpreter.
+	// We check for room numbers in here, because the file suffix can be changed by the user.
+	// Rooms/Scripts: QFG1(EGA/VGA): 601, QFG2: 840, QFG3/4: 52
+	switch (gameId) {
+	case GID_QFG1:
+	case GID_QFG1VGA:
+		if (s->currentRoomNumber() == 601)
+			isCompressed = false;
+		break;
+	case GID_QFG2:
+		if (s->currentRoomNumber() == 840)
+			isCompressed = false;
+		break;
+	case GID_QFG3:
+	case GID_QFG4:
+		if (s->currentRoomNumber() == 52)
+			isCompressed = false;
+		break;
+	default:
+		break;
 	}
 
 	if (mode == _K_FILE_MODE_OPEN_OR_FAIL) {






More information about the Scummvm-git-logs mailing list