[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.335,2.336 scumm.h,1.534,1.535 sprite_he.cpp,1.1,1.2 sprite_he.h,1.1,1.2

kirben kirben at users.sourceforge.net
Sun Feb 20 05:09:11 CET 2005


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

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

Add a few sprite functions.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.335
retrieving revision 2.336
diff -u -d -r2.335 -r2.336
--- intern.h	20 Feb 2005 11:14:50 -0000	2.335
+++ intern.h	20 Feb 2005 13:07:56 -0000	2.336
@@ -858,6 +858,7 @@
 	virtual void scummInit();
 
 protected:
+	virtual void allocateArrays();
 	virtual void setupOpcodes();
 	virtual void executeOpcode(byte i);
 	virtual const char *getOpcodeDesc(byte i);
@@ -870,6 +871,15 @@
 	uint8 getWizPixelColor(int restype, int resnum, int state, int x, int y, int flags);
 	int computeWizHistogram(int resnum, int state, int x, int y, int w, int h);
 	
+	int spriteInfoGet_flags_1(int spriteNum);
+	int spriteInfoGet_flags_2(int spriteNum);
+	int spriteInfoGet_flags_3(int spriteNum);
+	int spriteInfoGet_flags_4(int spriteNum);
+	int spriteInfoGet_flags_5(int spriteNum);
+	int spriteInfoGet_flags_6(int spriteNum);
+	int spriteInfoGet_flags_7(int spriteNum);	
+	int spriteInfoGet_flags_8(int spriteNum);
+
 	/* HE version 90 script opcodes */
 	void o90_dup();
 	void o90_min();

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.534
retrieving revision 1.535
diff -u -d -r1.534 -r1.535
--- scumm.h	20 Feb 2005 00:17:22 -0000	1.534
+++ scumm.h	20 Feb 2005 13:07:56 -0000	1.535
@@ -637,7 +637,7 @@
 	const byte *_resourceLastSearchBuf; // FIXME: need to put it to savefile?
 	uint32 _resourceLastSearchSize;    // FIXME: need to put it to savefile?
 
-	void allocateArrays();
+	virtual void allocateArrays();
 	void openRoom(int room);
 	void closeRoom();
 	void deleteRoomOffsets();

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- sprite_he.cpp	20 Feb 2005 10:56:59 -0000	1.1
+++ sprite_he.cpp	20 Feb 2005 13:07:57 -0000	1.2
@@ -30,4 +30,67 @@
 
 namespace Scumm {
 
+void ScummEngine_v90he::allocateArrays() {
+	_spriteGroups = (SpriteGroup *)calloc(_numSprites, sizeof(SpriteGroup));
+	_spriteTable = (SpriteInfo *)calloc(_numSprites, sizeof(SpriteInfo));
+	
+	ScummEngine::allocateArrays();
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_1(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_1: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags >> 0xE;
+	return (val & 1);
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_2(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_2: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags >> 0xD;
+	return (val & 1);
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_3(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_3: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags >> 0xF;
+	return (val & 1);
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_4(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_4: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags >> 0xC;
+	return (val & 1);
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_5(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_5: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags >> 0x13;
+	return (val & 1);
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_6(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_6: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags;
+	return (val & 0x200000);
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_7(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_7: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags >> 0x16;
+	return (val & 1);
+}
+
+int ScummEngine_v90he::spriteInfoGet_flags_8(int spriteNum) {
+	checkRange(_numSprites, 1, spriteNum, "_spriteTableGet_flags_8: Invalid sprite %d");
+
+	int val = _spriteTable[spriteNum].flags >> 0x1E;
+	return (val & 1);
+}
+
 } // End of namespace Scumm

Index: sprite_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- sprite_he.h	20 Feb 2005 10:56:59 -0000	1.1
+++ sprite_he.h	20 Feb 2005 13:07:57 -0000	1.2
@@ -81,6 +81,9 @@
 	int field_3C;
 };
 
+	SpriteInfo *_spriteTable;
+	SpriteGroup *_spriteGroups;
+
 } // End of namespace Scumm
 
 #endif





More information about the Scummvm-git-logs mailing list