Add a few sprite functions.
svn-id: r16823
This commit is contained in:
parent
6d4eec5ecd
commit
e4b51cbdf2
4 changed files with 77 additions and 1 deletions
|
@ -858,6 +858,7 @@ public:
|
|||
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 @@ protected:
|
|||
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();
|
||||
|
|
|
@ -637,7 +637,7 @@ protected:
|
|||
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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -81,6 +81,9 @@ struct SpriteGroup {
|
|||
int field_3C;
|
||||
};
|
||||
|
||||
SpriteInfo *_spriteTable;
|
||||
SpriteGroup *_spriteGroups;
|
||||
|
||||
} // End of namespace Scumm
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue