aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2005-02-23 12:04:42 +0000
committerTravis Howell2005-02-23 12:04:42 +0000
commit1b7e174f884a953c5a123b6824166b08c706b79b (patch)
tree768a9274cd4b478beb390419d4f14e999cace113 /scumm
parentf215c1ceae381c0546d490821f756f7d325ceabb (diff)
downloadscummvm-rg350-1b7e174f884a953c5a123b6824166b08c706b79b.tar.gz
scummvm-rg350-1b7e174f884a953c5a123b6824166b08c706b79b.tar.bz2
scummvm-rg350-1b7e174f884a953c5a123b6824166b08c706b79b.zip
Add sprite function
svn-id: r16881
Diffstat (limited to 'scumm')
-rw-r--r--scumm/sprite_he.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp
index 8dbf90f5f8..584b43862b 100644
--- a/scumm/sprite_he.cpp
+++ b/scumm/sprite_he.cpp
@@ -55,10 +55,20 @@ int ScummEngine_v90he::spriteInfoGet_classFlags(int spriteId, int classId) {
}
int ScummEngine_v90he::spriteInfoGet_classFlags2(int spriteId, int num, int *args) {
+ int cls;
+ bool b, cond = true;
+
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
- // TODO
- return 0;
+ while (--num >= 0) {
+ cls = args[num];
+ checkRange(32, 1, cls, "class %d out of range in statement");
+ b = ((_spriteTable[spriteId].class_flags & cls) != 0) ? 1 : 0;
+ if ((cls & 0x80 && !b) || (!(cls & 0x80) && b))
+ cond = 0;
+ }
+
+ return cond;
}
int ScummEngine_v90he::spriteInfoGet_flags_1(int spriteId) {