aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2016-09-04 01:16:45 +0200
committerEugene Sandulenko2016-09-04 01:16:45 +0200
commit49cfa190df7825cb18b4985866b903ef9d01dcfd (patch)
treeb54445710636e12942775f9e2d6c8db764d7b7f4 /engines/fullpipe
parent35c18c3811dbb714e39419ca432acf8fdc6d55e3 (diff)
downloadscummvm-rg350-49cfa190df7825cb18b4985866b903ef9d01dcfd.tar.gz
scummvm-rg350-49cfa190df7825cb18b4985866b903ef9d01dcfd.tar.bz2
scummvm-rg350-49cfa190df7825cb18b4985866b903ef9d01dcfd.zip
FULLPIPE: Fix GameObject::setPicAniInfo(). Now all animations get restored correctly.
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/gfx.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp
index eba5d442d5..59c2e41fce 100644
--- a/engines/fullpipe/gfx.cpp
+++ b/engines/fullpipe/gfx.cpp
@@ -398,18 +398,23 @@ bool GameObject::setPicAniInfo(PicAniInfo *picAniInfo) {
return false;
}
- if (picAniInfo->type & 3) {
+ if (picAniInfo->type & 2) {
setOXY(picAniInfo->ox, picAniInfo->oy);
_priority = picAniInfo->priority;
_okeyCode = picAniInfo->field_8;
setFlags(picAniInfo->flags);
_field_8 = picAniInfo->field_24;
+
+ return true;
}
if (picAniInfo->type & 1) {
StaticANIObject *ani = (StaticANIObject *)this;
ani->_messageQueueId = (picAniInfo->type >> 16) & 0xffff;
+ ani->_okeyCode = picAniInfo->field_8;
+ ani->setFlags(picAniInfo->flags);
+ ani->_field_8 = picAniInfo->field_24;
if (picAniInfo->staticsId) {
ani->_statics = ani->getStaticsById(picAniInfo->staticsId);
@@ -425,10 +430,15 @@ bool GameObject::setPicAniInfo(PicAniInfo *picAniInfo) {
ani->_movement = 0;
}
+ ani->setOXY(picAniInfo->ox, picAniInfo->oy);
+ ani->_priority = picAniInfo->priority;
+
ani->setSomeDynamicPhaseIndex(picAniInfo->someDynamicPhaseIndex);
+
+ return true;
}
- return true;
+ return false;
}
Picture::Picture() {