[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.426,2.427 saveload.cpp,1.203,1.204 saveload.h,1.51,1.52 sprite_he.cpp,1.122,1.123 sprite_he.h,1.32,1.33

kirben kirben at users.sourceforge.net
Fri Apr 8 16:28:15 CEST 2005


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

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

load/save sprite data in HE90+ games.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.426
retrieving revision 2.427
diff -u -d -r2.426 -r2.427
--- intern.h	8 Apr 2005 11:09:44 -0000	2.426
+++ intern.h	8 Apr 2005 23:27:35 -0000	2.427
@@ -1048,6 +1048,7 @@
 	void spriteAddImageToList(int spriteId, int imageNum, int *spriteIdptr);
 
 public:
+	void saveOrLoadSpriteData(Serializer *s, uint32 savegameVersion);
 	void spritesBlitToScreen();
 	void spritesMarkDirty(bool unkFlag);
 	void spritesSortActiveSprites();

Index: saveload.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/saveload.cpp,v
retrieving revision 1.203
retrieving revision 1.204
diff -u -d -r1.203 -r1.204
--- saveload.cpp	6 Apr 2005 17:31:08 -0000	1.203
+++ saveload.cpp	8 Apr 2005 23:27:35 -0000	1.204
@@ -759,6 +759,9 @@
 		else
 			NES_loadCostumeSet(_NESCostumeSet);
 
+	if (_heversion >= 90) {
+		((ScummEngine_v90he *)this)->saveOrLoadSpriteData(&*s, savegameVersion);
+	}
 	if (_heversion >= 71) {
 		Wiz *wiz = &((ScummEngine_v70he *)this)->_wiz;
 		s->saveLoadArrayOf(wiz->_polygons, ARRAYSIZE(wiz->_polygons), sizeof(wiz->_polygons[0]), polygonEntries);

Index: saveload.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/saveload.h,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -d -r1.51 -r1.52
--- saveload.h	25 Mar 2005 22:11:08 -0000	1.51
+++ saveload.h	8 Apr 2005 23:27:35 -0000	1.52
@@ -32,7 +32,7 @@
 // Can be useful for other ports too :)
 
 #define VER(x) x
-#define CURRENT_VER 47
+#define CURRENT_VER 48
 
 // To work around a warning in GCC 3.2 (and 3.1 ?) regarding non-POD types,
 // we use a small trick: instead of 0 we use 42. Why? Well, it seems newer GCC

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.122
retrieving revision 1.123
diff -u -d -r1.122 -r1.123
--- sprite_he.cpp	8 Apr 2005 12:05:15 -0000	1.122
+++ sprite_he.cpp	8 Apr 2005 23:27:35 -0000	1.123
@@ -24,6 +24,7 @@
 
 #include "scumm/intern.h"
 #include "scumm/resource.h"
+#include "scumm/saveload.h"
 #include "scumm/scumm.h"
 #include "scumm/sprite_he.h"
 #include "scumm/usage_bits.h"
@@ -1356,4 +1357,73 @@
 	}
 }
 
+void ScummEngine_v90he::saveOrLoadSpriteData(Serializer *s, uint32 savegameVersion) {
+	static const SaveLoadEntry spriteEntries[] = {
+		MKLINE(SpriteInfo, id, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, zorder, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, flags, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, resId, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, resState, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, groupNum, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, paletteNum, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, zorderPriority, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, bbox.left, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, bbox.top, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, bbox.right, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, bbox.bottom, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, dx, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, dy, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, pos.x, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, pos.y, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, tx, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, ty, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_44, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, curImageState, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, curResId, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, imglistNum, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, xmapNum, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, res_wiz_states, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, angle, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, zoom, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, delayCount, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, curAngle, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, curZoom, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, imgFlags, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_74, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, delayAmount, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_7C, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_80, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, classFlags, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_88, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_8C, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_90, sleInt32, VER(48)),
+		MKLINE(SpriteInfo, field_94, sleInt32, VER(48)),
+		MKEND()
+	};
+	
+	static const SaveLoadEntry spriteGroupEntries[] = {
+		MKLINE(SpriteGroup, bbox.left, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, bbox.top, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, bbox.right, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, bbox.bottom, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, zorderPriority, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, flags, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, tx, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, ty, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, dstResNum, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, scaling, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, scaleX, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, scaleY, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, scale_x_ratio_mul, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, scale_x_ratio_div, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, scale_y_ratio_mul, sleInt32, VER(48)),
+		MKLINE(SpriteGroup, scale_y_ratio_div, sleInt32, VER(48)),
+		MKEND()
+	};
+
+	s->saveLoadArrayOf(_activeSpritesTable, _varNumSprites, sizeof(_activeSpritesTable[0]), spriteEntries);
+	s->saveLoadArrayOf(_spriteTable, _varNumSprites, sizeof(_spriteTable[0]), spriteEntries);
+	s->saveLoadArrayOf(_spriteGroups, _varNumSpriteGroups, sizeof(_spriteGroups[0]), spriteGroupEntries);
+}
+
 } // End of namespace Scumm

Index: sprite_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- sprite_he.h	3 Apr 2005 02:24:28 -0000	1.32
+++ sprite_he.h	8 Apr 2005 23:27:36 -0000	1.33
@@ -81,6 +81,7 @@
 	int field_88;
 	int field_8C;
 	int field_90;
+	int field_94;
 };
 
 struct SpriteGroup {





More information about the Scummvm-git-logs mailing list