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

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Fri Aug 3 00:12:20 CEST 2007


Revision: 28418
          http://scummvm.svn.sourceforge.net/scummvm/?rev=28418&view=rev
Author:   drmccoy
Date:     2007-08-02 15:12:20 -0700 (Thu, 02 Aug 2007)

Log Message:
-----------
Saving works now in Lost in Time

Modified Paths:
--------------
    scummvm/trunk/engines/gob/detection.cpp
    scummvm/trunk/engines/gob/gob.cpp
    scummvm/trunk/engines/gob/gob.h
    scummvm/trunk/engines/gob/saveload.h
    scummvm/trunk/engines/gob/saveload_v3.cpp

Modified: scummvm/trunk/engines/gob/detection.cpp
===================================================================
--- scummvm/trunk/engines/gob/detection.cpp	2007-08-02 20:59:03 UTC (rev 28417)
+++ scummvm/trunk/engines/gob/detection.cpp	2007-08-02 22:12:20 UTC (rev 28418)
@@ -52,9 +52,9 @@
 	{"ween", "Ween: The Prophecy"},
 	{"bargon", "Bargon Attack"},
 	{"ajworld", "A.J's World of Discovery"},
-	{"lostintime", "Lost in Time"},
 	{"gob3", "Goblins Quest 3"},
 	{"gob3cd", "Goblins Quest 3 CD"},
+	{"lostintime", "Lost in Time"},
 	{"inca2", "Inca II: Wiracocha"},
 	{"woodruff", "The Bizarre Adventures of Woodruff and the Schnibble"},
 //	{"dynasty", "The Last Dynasty"},
@@ -871,7 +871,7 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		kGameTypeGob3,
+		kGameTypeLostInTime,
 		kFeaturesAdlib,
 		"intro"
 	},
@@ -884,7 +884,7 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		kGameTypeGob3,
+		kGameTypeLostInTime,
 		kFeaturesCD,
 		"intro"
 	},
@@ -897,7 +897,7 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		kGameTypeGob3,
+		kGameTypeLostInTime,
 		kFeaturesCD,
 		"intro"
 	},
@@ -910,7 +910,7 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		kGameTypeGob3,
+		kGameTypeLostInTime,
 		kFeaturesCD,
 		"intro"
 	},
@@ -923,7 +923,7 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		kGameTypeGob3,
+		kGameTypeLostInTime,
 		kFeaturesCD,
 		"intro"
 	},
@@ -936,7 +936,7 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		kGameTypeGob3,
+		kGameTypeLostInTime,
 		kFeaturesCD,
 		"intro"
 	},
@@ -949,7 +949,7 @@
 			kPlatformPC,
 			Common::ADGF_NO_FLAGS
 		},
-		kGameTypeGob3,
+		kGameTypeLostInTime,
 		kFeaturesCD,
 		"intro"
 	},

Modified: scummvm/trunk/engines/gob/gob.cpp
===================================================================
--- scummvm/trunk/engines/gob/gob.cpp	2007-08-02 20:59:03 UTC (rev 28417)
+++ scummvm/trunk/engines/gob/gob.cpp	2007-08-02 22:12:20 UTC (rev 28418)
@@ -310,6 +310,20 @@
 			_saveLoad = new SaveLoad_v3(this, _targetName.c_str());
 			break;
 
+		case kGameTypeLostInTime:
+			_init = new Init_v3(this);
+			_video = new Video_v2(this);
+			_inter = new Inter_v3(this);
+			_parse = new Parse_v2(this);
+			_mult = new Mult_v2(this);
+			_draw = new Draw_v2(this);
+			_game = new Game_v2(this);
+			_map = new Map_v2(this);
+			_goblin = new Goblin_v3(this);
+			_scenery = new Scenery_v2(this);
+			_saveLoad = new SaveLoad_v3(this, _targetName.c_str(), 4768, 0, 50);
+			break;
+
 		case kGameTypeWoodruff:
 			_init = new Init_v3(this);
 			_video = new Video_v2(this);

Modified: scummvm/trunk/engines/gob/gob.h
===================================================================
--- scummvm/trunk/engines/gob/gob.h	2007-08-02 20:59:03 UTC (rev 28417)
+++ scummvm/trunk/engines/gob/gob.h	2007-08-02 22:12:20 UTC (rev 28418)
@@ -85,7 +85,8 @@
 	kGameTypeGob3,
 	kGameTypeWoodruff,
 	kGameTypeBargon,
-	kGameTypeWeen
+	kGameTypeWeen,
+	kGameTypeLostInTime
 };
 
 enum Features {

Modified: scummvm/trunk/engines/gob/saveload.h
===================================================================
--- scummvm/trunk/engines/gob/saveload.h	2007-08-02 20:59:03 UTC (rev 28417)
+++ scummvm/trunk/engines/gob/saveload.h	2007-08-02 22:12:20 UTC (rev 28418)
@@ -136,7 +136,8 @@
 public:
 	virtual SaveType getSaveType(const char *fileName);
 
-	SaveLoad_v3(GobEngine *vm, const char *targetName);
+	SaveLoad_v3(GobEngine *vm, const char *targetName, uint32 screenshotSize = 19968,
+			uint32 indexOffset = 40, uint32 screenshotOffset = 80);
 	virtual ~SaveLoad_v3() {}
 
 protected:
@@ -144,6 +145,10 @@
 	bool _firstSizeGame;
 	int8 _saveSlot;
 
+	uint32 _screenshotSize;
+	uint32 _indexOffset;
+	uint32 _screenshotOffset;
+
 	virtual uint32 getSaveGameSize();
 
 	virtual int32 getSizeGame();

Modified: scummvm/trunk/engines/gob/saveload_v3.cpp
===================================================================
--- scummvm/trunk/engines/gob/saveload_v3.cpp	2007-08-02 20:59:03 UTC (rev 28417)
+++ scummvm/trunk/engines/gob/saveload_v3.cpp	2007-08-02 22:12:20 UTC (rev 28418)
@@ -34,9 +34,14 @@
 
 namespace Gob {
 
-SaveLoad_v3::SaveLoad_v3(GobEngine *vm, const char *targetName) :
+SaveLoad_v3::SaveLoad_v3(GobEngine *vm, const char *targetName,
+		uint32 screenshotSize, uint32 indexOffset, uint32 screenshotOffset) :
 	SaveLoad_v2(vm, targetName) {
 
+	_screenshotSize = screenshotSize;
+	_indexOffset = indexOffset;
+	_screenshotOffset = screenshotOffset;
+
 	_saveSlot = -1;
 	_stagesCount = 3;
 
@@ -81,7 +86,7 @@
 
 	size = 1040 + (READ_LE_UINT32(_vm->_game->_totFileData + 0x2C) * 4) * 2;
 	if (_useScreenshots)
-		size += 19968;
+		size += _screenshotSize;
 
 	return size;
 }
@@ -126,7 +131,7 @@
 		in = saveMan->openForLoading(setCurSlot(i));
 		if (in) {
 			delete in;
-			size = (i + 1) * 19968 + 80;
+			size = (i + 1) * _screenshotSize + _screenshotOffset;
 			break;
 		}
 	}
@@ -218,11 +223,11 @@
 	Common::SaveFileManager *saveMan = g_system->getSavefileManager();
 	Common::InSaveFile *in;
 
-	int slot = (offset - 80) / 19968;
-	int slotR = (offset - 80) % 19968;
+	int slot = (offset - _screenshotOffset) / _screenshotSize;
+	int slotR = (offset - _screenshotOffset) % _screenshotSize;
 
 	_useScreenshots = true;
-	if ((size == 40) && (offset == 40)) {
+	if ((size == 40) && (offset == _indexOffset)) {
 		char buf[40];
 
 		memset(buf, 0, 40);
@@ -335,12 +340,12 @@
 }
 
 bool SaveLoad_v3::saveScreenshot(int16 dataVar, int32 size, int32 offset) {
-	int slot = (offset - 80) / 19968;
-	int slotR = (offset - 80) % 19968;
+	int slot = (offset - _screenshotOffset) / _screenshotSize;
+	int slotR = (offset - _screenshotOffset) % _screenshotSize;
 
 	_useScreenshots = true;
 
-	if ((offset < 80) && (size > 0)) {
+	if ((offset < _screenshotOffset) && (size > 0)) {
 
 		return true;
 


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