[Scummvm-cvs-logs] SF.net SVN: scummvm:[43811] scummvm/trunk/engines/sci

waltervn at users.sourceforge.net waltervn at users.sourceforge.net
Sun Aug 30 03:37:27 CEST 2009


Revision: 43811
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43811&view=rev
Author:   waltervn
Date:     2009-08-30 01:37:27 +0000 (Sun, 30 Aug 2009)

Log Message:
-----------
SCI: Cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/sci/console.cpp
    scummvm/trunk/engines/sci/decompressor.cpp
    scummvm/trunk/engines/sci/resource.cpp
    scummvm/trunk/engines/sci/resource.h
    scummvm/trunk/engines/sci/sci.cpp
    scummvm/trunk/engines/sci/sci.h

Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp	2009-08-29 20:48:59 UTC (rev 43810)
+++ scummvm/trunk/engines/sci/console.cpp	2009-08-30 01:37:27 UTC (rev 43811)
@@ -381,8 +381,7 @@
 }
 
 bool Console::cmdGetVersion(int argc, const char **argv) {
-	DebugPrintf("Resource file version:        %s\n", versionNames[_vm->getresourceManager()->sciVersion()]);
-	DebugPrintf("Emulated interpreter version: %s\n", versionNames[_vm->getVersion()]);
+	DebugPrintf("Emulated interpreter version: %s\n", ((SciEngine *)g_engine)->getSciVersionDesc(_vm->getVersion()).c_str());
 
 	return true;
 }

Modified: scummvm/trunk/engines/sci/decompressor.cpp
===================================================================
--- scummvm/trunk/engines/sci/decompressor.cpp	2009-08-29 20:48:59 UTC (rev 43810)
+++ scummvm/trunk/engines/sci/decompressor.cpp	2009-08-30 01:37:27 UTC (rev 43811)
@@ -31,6 +31,7 @@
 
 #include "sci/decompressor.h"
 #include "sci/sci.h"
+#include "sci/resource.h"
 
 namespace Sci {
 int Decompressor::unpack(Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked) {

Modified: scummvm/trunk/engines/sci/resource.cpp
===================================================================
--- scummvm/trunk/engines/sci/resource.cpp	2009-08-29 20:48:59 UTC (rev 43810)
+++ scummvm/trunk/engines/sci/resource.cpp	2009-08-30 01:37:27 UTC (rev 43811)
@@ -520,7 +520,7 @@
 	_sciVersion = detectSciVersion();
 
 	if (_sciVersion != SCI_VERSION_AUTODETECT)
-		debug("resourceManager: Detected %s", versionNames[_sciVersion]);
+		debug("resourceManager: Detected %s", ((SciEngine *)g_engine)->getSciVersionDesc(_sciVersion).c_str());
 	else
 		warning("resourceManager: Couldn't determine SCI version");
 

Modified: scummvm/trunk/engines/sci/resource.h
===================================================================
--- scummvm/trunk/engines/sci/resource.h	2009-08-29 20:48:59 UTC (rev 43810)
+++ scummvm/trunk/engines/sci/resource.h	2009-08-30 01:37:27 UTC (rev 43811)
@@ -37,6 +37,7 @@
 #include "gfx/gfx_resource.h"		// for ViewType
 
 #include "sci/decompressor.h"
+#include "sci/sci.h"
 
 namespace Common {
 class ReadStream;
@@ -47,22 +48,6 @@
 /** The maximum allowed size for a compressed or decompressed resource */
 #define SCI_MAX_RESOURCE_SIZE 0x0400000
 
-/** SCI versions */
-enum SciVersion {
-	SCI_VERSION_AUTODETECT,
-	SCI_VERSION_0_EARLY, // Early KQ4, 1988 xmas card
-	SCI_VERSION_0_LATE, // KQ4, LSL2, LSL3, SQ3 etc
-	SCI_VERSION_01, // KQ1 and multilingual games (S.old.*)
-	SCI_VERSION_1_EGA, // EGA with parser, QFG2
-	SCI_VERSION_1_EARLY, // KQ5. (EGA/VGA)
-	SCI_VERSION_1_MIDDLE, // LSL1, JONESCD. (EGA?/VGA)
-	SCI_VERSION_1_LATE, // ECO1, LSL5. (EGA/VGA)
-	SCI_VERSION_1_1, // KQ6, ECO2
-	SCI_VERSION_2, // GK1, PQ4 (Floppy), QFG4 (Floppy)
-	SCI_VERSION_2_1, // GK2, KQ7, SQ6, Torin
-	SCI_VERSION_3 // LSL7, RAMA, Lighthouse
-};
-
 /** Resource status types */
 enum ResourceStatus {
 	kResStatusNoMalloc = 0,

Modified: scummvm/trunk/engines/sci/sci.cpp
===================================================================
--- scummvm/trunk/engines/sci/sci.cpp	2009-08-29 20:48:59 UTC (rev 43810)
+++ scummvm/trunk/engines/sci/sci.cpp	2009-08-30 01:37:27 UTC (rev 43811)
@@ -43,22 +43,6 @@
 
 class GfxDriver;
 
-// FIXME: error-prone
-const char *versionNames[] = {
-	"Autodetect",
-	"SCI0 Early",
-	"SCI0 Late",
-	"SCI01",
-	"SCI1 EGA",
-	"SCI1 Early",
-	"SCI1 Middle",
-	"SCI1 Late",
-	"SCI1.1",
-	"SCI2",
-	"SCI2.1",
-	"SCI3"
-};
-
 SciEngine::SciEngine(OSystem *syst, const SciGameDescription *desc)
 		: Engine(syst), _gameDescription(desc) {
 	// Put your engine in a sane state, but do nothing big yet;
@@ -212,7 +196,7 @@
 		return Common::kUnknownError;
 	}
 
-	printf("Emulating SCI version %s\n", versionNames[_resourceManager->sciVersion()]);
+	printf("Emulating SCI version %s\n", getSciVersionDesc(_resourceManager->sciVersion()).c_str());
 
 	game_run(&_gamestate); // Run the game
 
@@ -290,4 +274,35 @@
 	_mixer->pauseAll(pause);
 }
 
+Common::String SciEngine::getSciVersionDesc(SciVersion version) const {
+	switch (version) {
+	case SCI_VERSION_AUTODETECT:
+		return "Autodetect";
+	case SCI_VERSION_0_EARLY:
+		return "Early SCI0";
+	case SCI_VERSION_0_LATE:
+		return "Late SCI0";
+	case SCI_VERSION_01:
+		return "SCI01";
+	case SCI_VERSION_1_EGA:
+		return "SCI1 EGA";
+	case SCI_VERSION_1_EARLY:
+		return "Early SCI1";
+	case SCI_VERSION_1_MIDDLE:
+		return "Middle SCI1";
+	case SCI_VERSION_1_LATE:
+		return "Late SCI1";
+	case SCI_VERSION_1_1:
+		return "SCI1.1";
+	case SCI_VERSION_2:
+		return "SCI2";
+	case SCI_VERSION_2_1:
+		return "SCI2.1";
+	case SCI_VERSION_3:
+		return "SCI3";
+	default:
+		return "Unknown";
+	}
+}
+
 } // End of namespace Sci

Modified: scummvm/trunk/engines/sci/sci.h
===================================================================
--- scummvm/trunk/engines/sci/sci.h	2009-08-29 20:48:59 UTC (rev 43810)
+++ scummvm/trunk/engines/sci/sci.h	2009-08-30 01:37:27 UTC (rev 43811)
@@ -29,14 +29,13 @@
 #include "engines/engine.h"
 #include "engines/advancedDetector.h"
 
-#include "sci/resource.h"
-
 namespace Sci {
 
 class Console;
 struct EngineState;
 class Kernel;
 class Vocabulary;
+class ResourceManager;
 
 // our engine debug levels
 enum kDebugLevels {
@@ -79,6 +78,22 @@
 	GF_SCI0_OLDGETTIME		= (1 << 0)
 };
 
+/** SCI versions */
+enum SciVersion {
+	SCI_VERSION_AUTODETECT,
+	SCI_VERSION_0_EARLY, // Early KQ4, 1988 xmas card
+	SCI_VERSION_0_LATE, // KQ4, LSL2, LSL3, SQ3 etc
+	SCI_VERSION_01, // KQ1 and multilingual games (S.old.*)
+	SCI_VERSION_1_EGA, // EGA with parser, QFG2
+	SCI_VERSION_1_EARLY, // KQ5. (EGA/VGA)
+	SCI_VERSION_1_MIDDLE, // LSL1, JONESCD. (EGA?/VGA)
+	SCI_VERSION_1_LATE, // ECO1, LSL5. (EGA/VGA)
+	SCI_VERSION_1_1, // KQ6, ECO2
+	SCI_VERSION_2, // GK1, PQ4 (Floppy), QFG4 (Floppy)
+	SCI_VERSION_2_1, // GK2, KQ7, SQ6, Torin
+	SCI_VERSION_3 // LSL7, RAMA, Lighthouse
+};
+
 class SciEngine : public Engine {
 	friend class Console;
 public:
@@ -110,6 +125,8 @@
 	/** Remove the 'TARGET-' prefix of the given filename, if present. */
 	Common::String unwrapFilename(const Common::String &name) const;
 
+	Common::String getSciVersionDesc(SciVersion version) const;
+
 private:
 	const SciGameDescription *_gameDescription;
 	ResourceManager *_resourceManager;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list