aboutsummaryrefslogtreecommitdiff
path: root/scumm/actor.cpp
diff options
context:
space:
mode:
authorMax Horn2003-05-22 00:51:42 +0000
committerMax Horn2003-05-22 00:51:42 +0000
commitf43fb0dab8c9f91d9490ab742c1e65015d5bf00e (patch)
tree3516f97191d1c2b438a845172346d0ea3c01e794 /scumm/actor.cpp
parent340f3a650e9188217f827e7282eb6c9cc8664c8f (diff)
downloadscummvm-rg350-f43fb0dab8c9f91d9490ab742c1e65015d5bf00e.tar.gz
scummvm-rg350-f43fb0dab8c9f91d9490ab742c1e65015d5bf00e.tar.bz2
scummvm-rg350-f43fb0dab8c9f91d9490ab742c1e65015d5bf00e.zip
freeze scripts & hide mouse during cutscenes; addde Actor::isPlayer method that should work in V2, too; fixed o2_walkActorToObject
svn-id: r7815
Diffstat (limited to 'scumm/actor.cpp')
-rw-r--r--scumm/actor.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/scumm/actor.cpp b/scumm/actor.cpp
index 2daa42f3c1..92bbabcf0d 100644
--- a/scumm/actor.cpp
+++ b/scumm/actor.cpp
@@ -631,7 +631,7 @@ AdjustBoxResult Actor::adjustXYToBeInBox(int dstX, int dstY) {
flags = _vm->getBoxFlags(box);
// Skip over invisible boxes
- if (flags & kBoxInvisible && !(flags & kBoxPlayerOnly && !isInClass(kObjectClassPlayer)))
+ if (flags & kBoxInvisible && !(flags & kBoxPlayerOnly && !isPlayer()))
continue;
// For increased performance, we perform a quick test if
@@ -1392,7 +1392,7 @@ void Actor::walkActorOld() {
// FIXME: not sure if this is needed in non-Zak games, but I think it shouldn't
// hurt there either.
int flags = _vm->getBoxFlags(next_box);
- if (flags & kBoxLocked && !(flags & kBoxPlayerOnly && !isInClass(kObjectClassPlayer))) {
+ if (flags & kBoxLocked && !(flags & kBoxPlayerOnly && !isPlayer())) {
moving |= MF_LAST_LEG;
return;
}
@@ -1526,3 +1526,12 @@ void Actor::classChanged(int cls, bool value) {
bool Actor::isInClass(int cls) {
return _vm->getClass(number, cls);
}
+
+bool Actor::isPlayer() {
+ if (_vm->_features & GF_AFTER_V2)
+ return _vm->VAR(42) <= number && number <= _vm->VAR(43);
+ else
+ return isInClass(kObjectClassPlayer);
+}
+
+