[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.463,2.464 saveload.cpp,1.213,1.214 scumm.cpp,1.464,1.465

kirben kirben at users.sourceforge.net
Tue Apr 26 08:19:35 CEST 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15047/scumm

Modified Files:
	intern.h saveload.cpp scumm.cpp 
Log Message:

Save addtion HE opcodes specific variables.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.463
retrieving revision 2.464
diff -u -d -r2.463 -r2.464
--- intern.h	26 Apr 2005 14:01:31 -0000	2.463
+++ intern.h	26 Apr 2005 15:13:02 -0000	2.464
@@ -693,8 +693,7 @@
 
 	byte *_heV7RoomOffsets;
 
-	int _heSndSoundFreq, _heSndOffset, _heSndChannel, _heSndSoundId, _heSndFlags, _heSBNGId;
-
+	int32 _heSndSoundId, _heSndOffset, _heSndChannel, _heSndFlags, _heSndSoundFreq;
 public:
 	ScummEngine_v70he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]);
 	~ScummEngine_v70he();
@@ -910,8 +909,10 @@
 	
 	const OpcodeEntryV80he *_opcodesV80he;
 
+	int32 _heSBNGId;
+
 public:
-	ScummEngine_v80he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v72he(detector, syst, gs, md5sum) {}
+	ScummEngine_v80he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]);
 
 protected:
 	virtual void setupOpcodes();
@@ -953,27 +954,28 @@
 		const char *desc;
 	};
 
+	const OpcodeEntryV90he *_opcodesV90he;
+
 	struct FloodStateParameters {
 		Common::Rect box;
-		int field_10;
-		int field_14;
-		int field_18;
-		int field_1C;
+		int32 field_10;
+		int32 field_14;
+		int32 field_18;
+		int32 field_1C;
 	};
 
-	int _heObject, _heObjectNum;
-	int _hePaletteNum;
-	
-	const OpcodeEntryV90he *_opcodesV90he;
 	FloodStateParameters _floodStateParams;
 
-	int _curMaxSpriteId;
-	int _curSpriteId;
-	int _curSpriteGroupId;
-	int _varNumSpriteGroups;
-	int _numSpritesToProcess;
-	int _varNumSprites;
-	int _varMaxSprites;
+	int32 _heObject, _heObjectNum;
+	int32 _hePaletteNum;
+
+	int32 _curMaxSpriteId;
+	int32 _curSpriteId;
+	int32 _curSpriteGroupId;
+	int32 _numSpritesToProcess;
+	int32 _varNumSpriteGroups;
+	int32 _varNumSprites;
+	int32 _varMaxSprites;
 	SpriteInfo *_spriteTable;
 	SpriteGroup *_spriteGroups;
 	SpriteInfo **_activeSpritesTable;
@@ -1192,7 +1194,7 @@
 		const char *desc;
 	};
 
-	int _heResId, _heResType;
+	int32 _heResId, _heResType;
 
 	const OpcodeEntryV100he *_opcodesV100he;
 
@@ -1204,6 +1206,8 @@
 	virtual void executeOpcode(byte i);
 	virtual const char *getOpcodeDesc(byte i);
 	
+	virtual void saveOrLoad(Serializer *s, uint32 savegameVersion);
+
 	virtual void decodeParseString(int a, int b);
 
 	/* HE version 100 script opcodes */

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/saveload.cpp,v
retrieving revision 1.213
retrieving revision 1.214
diff -u -d -r1.213 -r1.214
--- saveload.cpp	26 Apr 2005 14:18:32 -0000	1.213
+++ saveload.cpp	26 Apr 2005 15:13:03 -0000	1.214
@@ -958,15 +958,63 @@
 		MKEND()
 	};
 
+	const SaveLoadEntry HE70Entries[] = {
+		MKLINE(ScummEngine_v70he, _heSndSoundId, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v70he, _heSndOffset, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v70he, _heSndChannel, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v70he, _heSndFlags, sleInt32, VER(51)),
+		MKEND()
+	};
+
 	if (_heversion >= 71) {
 		s->saveLoadArrayOf(_wiz._polygons, ARRAYSIZE(_wiz._polygons), sizeof(_wiz._polygons[0]), polygonEntries);
 	}
+
+	s->saveLoadEntries(this, HE70Entries);
 }
 
 void ScummEngine_v90he::saveOrLoad(Serializer *s, uint32 savegameVersion) {
 	ScummEngine_v70he::saveOrLoad(s, savegameVersion);
 
+	const SaveLoadEntry floodStateEntries[] = {
+		MKLINE(FloodStateParameters, box.left, sleInt32, VER(51)),
+		MKLINE(FloodStateParameters, box.top, sleInt32, VER(51)),
+		MKLINE(FloodStateParameters, box.right, sleInt32, VER(51)),
+		MKLINE(FloodStateParameters, box.bottom, sleInt32, VER(51)),
+		MKLINE(FloodStateParameters, field_10, sleInt32, VER(51)),
+		MKLINE(FloodStateParameters, field_14, sleInt32, VER(51)),
+		MKLINE(FloodStateParameters, field_18, sleInt32, VER(51)),
+		MKLINE(FloodStateParameters, field_1C, sleInt32, VER(51)),
+		MKEND()
+	};
+
+	const SaveLoadEntry HE90Entries[] = {
+		MKLINE(ScummEngine_v90he, _curMaxSpriteId, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v90he, _curSpriteId, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v90he, _curSpriteGroupId, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v90he, _numSpritesToProcess, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v90he, _heObject, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v90he, _heObjectNum, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v90he, _hePaletteNum, sleInt32, VER(51)),
+		MKEND()
+	};
+
 	saveOrLoadSpriteData(&*s, savegameVersion);
+
+	s->saveLoadArrayOf(&_floodStateParams, 1, sizeof(_floodStateParams), floodStateEntries);
+	s->saveLoadEntries(this, HE90Entries);
+}
+
+void ScummEngine_v100he::saveOrLoad(Serializer *s, uint32 savegameVersion) {
+	ScummEngine_v90he::saveOrLoad(s, savegameVersion);
+
+	const SaveLoadEntry HE100Entries[] = {
+		MKLINE(ScummEngine_v100he, _heResId, sleInt32, VER(51)),
+		MKLINE(ScummEngine_v100he, _heResType, sleInt32, VER(51)),
+		MKEND()
+	};
+
+	s->saveLoadEntries(this, HE100Entries);
 }
 
 void ScummEngine::saveLoadResource(Serializer *ser, int type, int idx) {

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.464
retrieving revision 1.465
diff -u -d -r1.464 -r1.465
--- scumm.cpp	26 Apr 2005 07:52:37 -0000	1.464
+++ scumm.cpp	26 Apr 2005 15:13:04 -0000	1.465
@@ -1266,7 +1266,6 @@
 	_heSndChannel = 0;
 	_heSndFlags = 0;
 	_heSndSoundFreq = 0;
-	_heSBNGId = 0;
 
 	VAR_NUM_SOUND_CHANNELS = 0xFF;
 }
@@ -1296,6 +1295,11 @@
 	VAR_WIZ_TCOLOR = 0xFF;
 }
 
+ScummEngine_v80he::ScummEngine_v80he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16])
+ : ScummEngine_v72he(detector, syst, gs, md5sum) {
+	_heSBNGId = 0;
+}
+
 ScummEngine_v8::ScummEngine_v8(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16])
  : ScummEngine_v7(detector, syst, gs, md5sum) {
 	_objectIDMap = 0;





More information about the Scummvm-git-logs mailing list