aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--object.cpp17
-rw-r--r--script_v1.cpp7
2 files changed, 24 insertions, 0 deletions
diff --git a/object.cpp b/object.cpp
index 9339b74001..742e38a50a 100644
--- a/object.cpp
+++ b/object.cpp
@@ -49,6 +49,23 @@ void Scumm::putClass(int obj, int cls, bool set)
cls = 24;
}
+ if (_features & GF_SMALL_HEADER) {
+ if (cls == 21 )
+ {
+ Actor *a;
+ a=derefActor(obj);
+ a->forceClip=1;
+ return;
+ }
+ if (cls == 20 )
+ {
+ Actor *a;
+ a=derefActor(obj);
+ a->mask=0;
+ return;
+ }
+ }
+
if (set)
_classData[obj] |= (1 << (cls - 1));
else
diff --git a/script_v1.cpp b/script_v1.cpp
index 500dd35fd3..2523f147e0 100644
--- a/script_v1.cpp
+++ b/script_v1.cpp
@@ -825,6 +825,13 @@ void Scumm::o5_actorSetClass()
newClass = getVarOrDirectWord(0x80);
if (newClass == 0) {
_classData[act] = 0;
+ if( _features & GF_SMALL_HEADER)
+ {
+ Actor *a;
+ a=derefActor(act);
+ a->forceClip=0;
+ }
+
continue;
}