[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