aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'scumm')
-rw-r--r--scumm/sprite_he.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp
index 19f3b5aa54..782609d003 100644
--- a/scumm/sprite_he.cpp
+++ b/scumm/sprite_he.cpp
@@ -55,14 +55,17 @@ int ScummEngine_v90he::spriteInfoGet_classFlags(int spriteId, int classId) {
}
int ScummEngine_v90he::spriteInfoGet_classFlagsAnd(int spriteId, int num, int *args) {
+ int classId;
+
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
if (!num)
return 1;
for (int i = 0; i < num; i++) {
- checkRange(32, 1, args[i], "class %d out of range in statement");
- if (!(_spriteTable[spriteId].class_flags & (1 << args[i])))
+ classId = args[i] & 0x7F;
+ checkRange(32, 1, classId, "class %d out of range in statement");
+ if (!(_spriteTable[spriteId].class_flags & (1 << classId)))
return 0;
}