[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