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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Thu Mar 18 16:09:49 CET 2010


Revision: 48283
          http://scummvm.svn.sourceforge.net/scummvm/?rev=48283&view=rev
Author:   fingolfin
Date:     2010-03-18 15:09:48 +0000 (Thu, 18 Mar 2010)

Log Message:
-----------
ENGINES: Move SaveStateDescriptor etc. to engine/savestate.*

Modified Paths:
--------------
    scummvm/trunk/engines/game.cpp
    scummvm/trunk/engines/game.h
    scummvm/trunk/engines/metaengine.h
    scummvm/trunk/engines/module.mk

Added Paths:
-----------
    scummvm/trunk/engines/savestate.cpp
    scummvm/trunk/engines/savestate.h

Modified: scummvm/trunk/engines/game.cpp
===================================================================
--- scummvm/trunk/engines/game.cpp	2010-03-18 15:09:24 UTC (rev 48282)
+++ scummvm/trunk/engines/game.cpp	2010-03-18 15:09:48 UTC (rev 48283)
@@ -25,7 +25,6 @@
 
 #include "engines/game.h"
 #include "base/plugins.h"
-#include "graphics/surface.h"
 
 
 const PlainGameDescriptor *findPlainGameDescriptor(const char *gameid, const PlainGameDescriptor *list) {
@@ -103,54 +102,3 @@
 		setVal("description", descr);
 	}
 }
-
-void SaveStateDescriptor::setThumbnail(Graphics::Surface *t) {
-	if (_thumbnail.get() == t)
-		return;
-
-	_thumbnail = Common::SharedPtr<Graphics::Surface>(t, Graphics::SharedPtrSurfaceDeleter());
-}
-
-bool SaveStateDescriptor::getBool(const Common::String &key) const {
-	if (contains(key)) {
-		Common::String value = getVal(key);
-		if (value.equalsIgnoreCase("true") ||
-			value.equalsIgnoreCase("yes") ||
-			value.equals("1"))
-			return true;
-		if (value.equalsIgnoreCase("false") ||
-			value.equalsIgnoreCase("no") ||
-			value.equals("0"))
-			return false;
-		error("SaveStateDescriptor: %s '%s' has unknown value '%s' for boolean '%s'",
-				save_slot().c_str(), description().c_str(), value.c_str(), key.c_str());
-	}
-	return false;
-}
-
-void SaveStateDescriptor::setDeletableFlag(bool state) {
-	setVal("is_deletable", state ? "true" : "false");
-}
-
-void SaveStateDescriptor::setWriteProtectedFlag(bool state) {
-	setVal("is_write_protected", state ? "true" : "false");
-}
-
-void SaveStateDescriptor::setSaveDate(int year, int month, int day) {
-	char buffer[32];
-	snprintf(buffer, 32, "%.2d.%.2d.%.4d", day, month, year);
-	setVal("save_date", buffer);
-}
-
-void SaveStateDescriptor::setSaveTime(int hour, int min) {
-	char buffer[32];
-	snprintf(buffer, 32, "%.2d:%.2d", hour, min);
-	setVal("save_time", buffer);
-}
-
-void SaveStateDescriptor::setPlayTime(int hours, int minutes) {
-	char buffer[32];
-	snprintf(buffer, 32, "%.2d:%.2d", hours, minutes);
-	setVal("play_time", buffer);
-}
-

Modified: scummvm/trunk/engines/game.h
===================================================================
--- scummvm/trunk/engines/game.h	2010-03-18 15:09:24 UTC (rev 48282)
+++ scummvm/trunk/engines/game.h	2010-03-18 15:09:48 UTC (rev 48283)
@@ -26,15 +26,10 @@
 #ifndef ENGINES_GAME_H
 #define ENGINES_GAME_H
 
-#include "common/str.h"
 #include "common/array.h"
 #include "common/hash-str.h"
-#include "common/ptr.h"
+#include "engines/savestate.h"	// TODO: Push this #include out to .cpp files needing it
 
-namespace Graphics {
-	struct Surface;
-}
-
 /**
  * A simple structure used to map gameids (like "monkey", "sword1", ...) to
  * nice human readable and descriptive game titles (like "The Secret of Monkey Island").
@@ -114,101 +109,4 @@
 	}
 };
 
-/**
- * A hashmap describing details about a given save state.
- * TODO
- * Guaranteed to contain save_slot and description values.
- * Additional ideas: Playtime, creation date, thumbnail, ...
- */
-class SaveStateDescriptor : public Common::StringMap {
-protected:
-	Common::SharedPtr<Graphics::Surface> _thumbnail; // can be 0
-
-public:
-	SaveStateDescriptor() : _thumbnail() {
-		setVal("save_slot", "-1");	// FIXME: default to 0 (first slot) or to -1 (invalid slot) ?
-		setVal("description", "");
-	}
-
-	SaveStateDescriptor(int s, const Common::String &d) : _thumbnail() {
-		char buf[16];
-		sprintf(buf, "%d", s);
-		setVal("save_slot", buf);
-		setVal("description", d);
-	}
-
-	SaveStateDescriptor(const Common::String &s, const Common::String &d) : _thumbnail() {
-		setVal("save_slot", s);
-		setVal("description", d);
-	}
-
-	/** The saveslot id, as it would be passed to the "-x" command line switch. */
-	Common::String &save_slot() { return getVal("save_slot"); }
-
-	/** The saveslot id, as it would be passed to the "-x" command line switch (read-only variant). */
-	const Common::String &save_slot() const { return getVal("save_slot"); }
-
-	/** A human readable description of the save state. */
-	Common::String &description() { return getVal("description"); }
-
-	/** A human readable description of the save state (read-only variant). */
-	const Common::String &description() const { return getVal("description"); }
-
-	/** Optional entries only included when querying via MetaEngine::querySaveMetaInfo */
-
-	/**
-	 * Returns the value of a given key as boolean.
-	 * It accepts 'true', 'yes' and '1' for true and
-	 * 'false', 'no' and '0' for false.
-	 * (FIXME:) On unknown value it errors out ScummVM.
-	 * On unknown key it returns false as default.
-	 */
-	bool getBool(const Common::String &key) const;
-
-	/**
-	 * Sets the 'is_deletable' key, which indicates if the
-	 * given savestate is safe for deletion.
-	 */
-	void setDeletableFlag(bool state);
-
-	/**
-	 * Sets the 'is_write_protected' key, which indicates if the
-	 * given savestate can be overwritten or not
-	 */
-	void setWriteProtectedFlag(bool state);
-
-	/**
-	 * Return a thumbnail graphics surface representing the savestate visually.
-	 * This is usually a scaled down version of the game graphics. The size
-	 * should be either 160x100 or 160x120 pixels, depending on the aspect
-	 * ratio of the game. If another ratio is required, contact the core team.
-	 */
-	const Graphics::Surface *getThumbnail() const { return _thumbnail.get(); }
-
-	/**
-	 * Set a thumbnail graphics surface representing the savestate visually.
-	 * Ownership of the surface is transferred to the SaveStateDescriptor.
-	 * Hence the caller must not delete the surface.
-	 */
-	void setThumbnail(Graphics::Surface *t);
-
-	/**
-	 * Sets the 'save_date' key properly, based on the given values.
-	 */
-	void setSaveDate(int year, int month, int day);
-
-	/**
-	 * Sets the 'save_time' key properly, based on the given values.
-	 */
-	void setSaveTime(int hour, int min);
-
-	/**
-	 * Sets the 'play_time' key properly, based on the given values.
-	 */
-	void setPlayTime(int hours, int minutes);
-};
-
-/** List of savestates. */
-typedef Common::Array<SaveStateDescriptor> SaveStateList;
-
 #endif

Modified: scummvm/trunk/engines/metaengine.h
===================================================================
--- scummvm/trunk/engines/metaengine.h	2010-03-18 15:09:24 UTC (rev 48282)
+++ scummvm/trunk/engines/metaengine.h	2010-03-18 15:09:48 UTC (rev 48283)
@@ -29,6 +29,8 @@
 #include "common/error.h"
 
 #include "engines/game.h"
+#include "engines/savestate.h"
+
 #include "base/plugins.h"
 
 class Engine;

Modified: scummvm/trunk/engines/module.mk
===================================================================
--- scummvm/trunk/engines/module.mk	2010-03-18 15:09:24 UTC (rev 48282)
+++ scummvm/trunk/engines/module.mk	2010-03-18 15:09:48 UTC (rev 48283)
@@ -4,7 +4,8 @@
 	advancedDetector.o \
 	dialogs.o \
 	engine.o \
-	game.o
+	game.o \
+	savestate.o
 
 # Include common rules
 include $(srcdir)/rules.mk

Added: scummvm/trunk/engines/savestate.cpp
===================================================================
--- scummvm/trunk/engines/savestate.cpp	                        (rev 0)
+++ scummvm/trunk/engines/savestate.cpp	2010-03-18 15:09:48 UTC (rev 48283)
@@ -0,0 +1,77 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#include "engines/savestate.h"
+#include "graphics/surface.h"
+
+void SaveStateDescriptor::setThumbnail(Graphics::Surface *t) {
+	if (_thumbnail.get() == t)
+		return;
+
+	_thumbnail = Common::SharedPtr<Graphics::Surface>(t, Graphics::SharedPtrSurfaceDeleter());
+}
+
+bool SaveStateDescriptor::getBool(const Common::String &key) const {
+	if (contains(key)) {
+		Common::String value = getVal(key);
+		if (value.equalsIgnoreCase("true") ||
+			value.equalsIgnoreCase("yes") ||
+			value.equals("1"))
+			return true;
+		if (value.equalsIgnoreCase("false") ||
+			value.equalsIgnoreCase("no") ||
+			value.equals("0"))
+			return false;
+		error("SaveStateDescriptor: %s '%s' has unknown value '%s' for boolean '%s'",
+				save_slot().c_str(), description().c_str(), value.c_str(), key.c_str());
+	}
+	return false;
+}
+
+void SaveStateDescriptor::setDeletableFlag(bool state) {
+	setVal("is_deletable", state ? "true" : "false");
+}
+
+void SaveStateDescriptor::setWriteProtectedFlag(bool state) {
+	setVal("is_write_protected", state ? "true" : "false");
+}
+
+void SaveStateDescriptor::setSaveDate(int year, int month, int day) {
+	char buffer[32];
+	snprintf(buffer, 32, "%.2d.%.2d.%.4d", day, month, year);
+	setVal("save_date", buffer);
+}
+
+void SaveStateDescriptor::setSaveTime(int hour, int min) {
+	char buffer[32];
+	snprintf(buffer, 32, "%.2d:%.2d", hour, min);
+	setVal("save_time", buffer);
+}
+
+void SaveStateDescriptor::setPlayTime(int hours, int minutes) {
+	char buffer[32];
+	snprintf(buffer, 32, "%.2d:%.2d", hours, minutes);
+	setVal("play_time", buffer);
+}


Property changes on: scummvm/trunk/engines/savestate.cpp
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author URL Id
Added: svn:eol-style
   + native

Added: scummvm/trunk/engines/savestate.h
===================================================================
--- scummvm/trunk/engines/savestate.h	                        (rev 0)
+++ scummvm/trunk/engines/savestate.h	2010-03-18 15:09:48 UTC (rev 48283)
@@ -0,0 +1,136 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * $URL$
+ * $Id$
+ *
+ */
+
+#ifndef ENGINES_SAVESTATE_H
+#define ENGINES_SAVESTATE_H
+
+#include "common/array.h"
+#include "common/hash-str.h"
+#include "common/ptr.h"
+
+
+namespace Graphics {
+	struct Surface;
+}
+
+/**
+ * A hashmap describing details about a given save state.
+ * TODO
+ * Guaranteed to contain save_slot and description values.
+ * Additional ideas: Playtime, creation date, thumbnail, ...
+ */
+class SaveStateDescriptor : public Common::StringMap {
+protected:
+	Common::SharedPtr<Graphics::Surface> _thumbnail; // can be 0
+
+public:
+	SaveStateDescriptor() : _thumbnail() {
+		setVal("save_slot", "-1");	// FIXME: default to 0 (first slot) or to -1 (invalid slot) ?
+		setVal("description", "");
+	}
+
+	SaveStateDescriptor(int s, const Common::String &d) : _thumbnail() {
+		char buf[16];
+		sprintf(buf, "%d", s);
+		setVal("save_slot", buf);
+		setVal("description", d);
+	}
+
+	SaveStateDescriptor(const Common::String &s, const Common::String &d) : _thumbnail() {
+		setVal("save_slot", s);
+		setVal("description", d);
+	}
+
+	/** The saveslot id, as it would be passed to the "-x" command line switch. */
+	Common::String &save_slot() { return getVal("save_slot"); }
+
+	/** The saveslot id, as it would be passed to the "-x" command line switch (read-only variant). */
+	const Common::String &save_slot() const { return getVal("save_slot"); }
+
+	/** A human readable description of the save state. */
+	Common::String &description() { return getVal("description"); }
+
+	/** A human readable description of the save state (read-only variant). */
+	const Common::String &description() const { return getVal("description"); }
+
+	/** Optional entries only included when querying via MetaEngine::querySaveMetaInfo */
+
+	/**
+	 * Returns the value of a given key as boolean.
+	 * It accepts 'true', 'yes' and '1' for true and
+	 * 'false', 'no' and '0' for false.
+	 * (FIXME:) On unknown value it errors out ScummVM.
+	 * On unknown key it returns false as default.
+	 */
+	bool getBool(const Common::String &key) const;
+
+	/**
+	 * Sets the 'is_deletable' key, which indicates if the
+	 * given savestate is safe for deletion.
+	 */
+	void setDeletableFlag(bool state);
+
+	/**
+	 * Sets the 'is_write_protected' key, which indicates if the
+	 * given savestate can be overwritten or not
+	 */
+	void setWriteProtectedFlag(bool state);
+
+	/**
+	 * Return a thumbnail graphics surface representing the savestate visually.
+	 * This is usually a scaled down version of the game graphics. The size
+	 * should be either 160x100 or 160x120 pixels, depending on the aspect
+	 * ratio of the game. If another ratio is required, contact the core team.
+	 */
+	const Graphics::Surface *getThumbnail() const { return _thumbnail.get(); }
+
+	/**
+	 * Set a thumbnail graphics surface representing the savestate visually.
+	 * Ownership of the surface is transferred to the SaveStateDescriptor.
+	 * Hence the caller must not delete the surface.
+	 */
+	void setThumbnail(Graphics::Surface *t);
+
+	/**
+	 * Sets the 'save_date' key properly, based on the given values.
+	 */
+	void setSaveDate(int year, int month, int day);
+
+	/**
+	 * Sets the 'save_time' key properly, based on the given values.
+	 */
+	void setSaveTime(int hour, int min);
+
+	/**
+	 * Sets the 'play_time' key properly, based on the given values.
+	 */
+	void setPlayTime(int hours, int minutes);
+};
+
+/** List of savestates. */
+typedef Common::Array<SaveStateDescriptor> SaveStateList;
+
+
+#endif


Property changes on: scummvm/trunk/engines/savestate.h
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:keywords
   + Date Rev Author URL Id
Added: svn:eol-style
   + native


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