aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe
diff options
context:
space:
mode:
authorEugene Sandulenko2013-11-16 20:58:47 +0200
committerEugene Sandulenko2013-11-16 22:29:26 +0200
commitc870f52d015857b523ae148e6e915f7a90820f70 (patch)
treeb9f47f5787d178b2ac0377a12ccb2e25b8bc490d /engines/fullpipe
parent297d5764fd89a2cad540c390563e119eb70608ff (diff)
downloadscummvm-rg350-c870f52d015857b523ae148e6e915f7a90820f70.tar.gz
scummvm-rg350-c870f52d015857b523ae148e6e915f7a90820f70.tar.bz2
scummvm-rg350-c870f52d015857b523ae148e6e915f7a90820f70.zip
FULLPIPE: MovGraph2::buildMovInfo1MessageQueue(), more types
Diffstat (limited to 'engines/fullpipe')
-rw-r--r--engines/fullpipe/motion.cpp18
-rw-r--r--engines/fullpipe/motion.h2
2 files changed, 11 insertions, 9 deletions
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index dfb2f60777..2d23470115 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -674,12 +674,14 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) {
if (i >= movInfo->itemsCount - 2 || movInfo->items[i + 2].subIndex != 10) {
v12 = (char *)_items[1] + 16 * (movInfo->items[i + 1].subIndex + 8);
movinfo.flags = 0;
- subidx = 8 * 93 * movInfo->field_0;
- v15 = (MovGraph2Item *)(&v12[184 * movInfo->items[i].subIndex] + subidx);
+ subidx = 744 * movInfo->field_0;
+ v15 = (MG2I *)(&v12[184 * movInfo->items[i].subIndex] + subidx);
+
+ v15 = &_items[movInfo->field_0]->_subItems[movInfo->items[i].subIndex]
} else {
v12 = (char *)_items[1] + 16 * (movInfo->items[i + 1].subIndex + 4);
movinfo.flags = 2;
- subidx = 8 * 93 * movInfo->field_0;
+ subidx = 744 * movInfo->field_0;
v15 = (MovGraph2Item *)(&v12[184 * movInfo->items[i].subIndex] + subidx);
}
if (i < movInfo->itemsCount - 2
@@ -690,7 +692,7 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) {
|| movInfo->items[i + 1].x == -1
|| movInfo->items[i + 1].y == -1) {
- ExCommand *ex = new ExCommand(_items[1][movInfo->field_0].objectId, 1, v15->_objectId, 0, 0, 0, 1, 0, 0, 0);
+ ExCommand *ex = new ExCommand(_items[1][movInfo->field_0].objectId, 1, v15->_movementId, 0, 0, 0, 1, 0, 0, 0);
ex->_excFlags |= 2;
ex->_keyCode = _items[1][movInfo->field_0].obj->GameObject.okeyCode;
@@ -698,13 +700,13 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) {
ex->_field_14 = -1;
mq->_exCommands.push_back(ex);
- curX += v15->_subItems[0].staticsId2;
- curY += v15->_subItems[0].staticsId1;
+ curX += v15->_mx;
+ curY += v15->_my;
} else {
memset(mgminfo, 0, sizeof(mgminfo));
mgminfo.ani = *(StaticANIObject **)((char *)&this->items[1]->obj + subidx);
- mgminfo.staticsId2 = v15->obj->staticsObj2->staticsId;
+ mgminfo.staticsId2 = v15->_mov->staticsObj2->staticsId;
mgminfo.x1 = movInfo->items[i + 1].x;
mgminfo.y1 = movInfo->items[i + 1].y;
mgminfo.field_1C = movInfo->items[i + 1].field_C;
@@ -714,7 +716,7 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) {
mgminfo.y2 = movInfo->items[i].y;
mgminfo.field_10 = 1;
mgminfo.flags = 0x7f;
- mgminfo.movementId = v15->_objectId;
+ mgminfo.movementId = v15->_movementId;
MessageQueue *mq2 = (MessageQueue *)MGM_sub_445330((MGM *)&this->movGraph.mgm, &mgminfo);
mq->transferExCommands(mq2);
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index 0df520ce4a..746c5c6c54 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -303,7 +303,7 @@ struct MovInfo1 {
int flags;
};
-struct MovGraph2Item {
+ struct MovGraph2Item { // 744
int _objectId;
StaticANIObject *_obj;
MovGraph2ItemSub _subItems[4]; // 184