diff options
author | Eugene Sandulenko | 2013-11-12 01:42:07 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2013-11-12 01:42:33 +0200 |
commit | 5f48f45906a37e546e12abbe7344b9d3c712bfad (patch) | |
tree | b008f0d2886d57b15d0c58142d6844f213a14619 | |
parent | 852619929acc429571589cd6198157a4d14481d5 (diff) | |
download | scummvm-rg350-5f48f45906a37e546e12abbe7344b9d3c712bfad.tar.gz scummvm-rg350-5f48f45906a37e546e12abbe7344b9d3c712bfad.tar.bz2 scummvm-rg350-5f48f45906a37e546e12abbe7344b9d3c712bfad.zip |
FULLPIPE: More work on MovGraph2::buildMovInfo1MessageQueue()
-rw-r--r-- | engines/fullpipe/motion.cpp | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp index ffa23cd071..2d36f9de25 100644 --- a/engines/fullpipe/motion.cpp +++ b/engines/fullpipe/motion.cpp @@ -674,7 +674,7 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) { v10 = v9[i + 1].subIndex; if (v10 != 10) { - if (v40 >= movInfo->_itemsCount - 2 || v9[i + 2].subIndex != 10) { + if (i >= movInfo->_itemsCount - 2 || v9[i + 2].subIndex != 10) { v16 = v9[i].subIndex; v17 = (char *)this->items[1] + 16 * (v10 + 8); subidx = 93 * movInfo->field_0; @@ -689,7 +689,7 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) { v14 = 8 * v13; v15 = (MovGraph2Item *)(&v12[184 * v11] + v14); } - if (v40 < movInfo->_itemsCount - 2 + if (i < movInfo->_itemsCount - 2 || (v19 = v9[i + 1].x, v20 = (char *)&v9[i].x, v47 = (int *)v20, v21 = *(_DWORD *)v20, v21 == v19) && v9[i].y == v9[i + 1].y || v21 == -1 @@ -742,41 +742,40 @@ MessageQueue *MovGraph2::buildMovInfo1MessageQueue(MovInfo1 *movInfo) { movinfo.pt1.y = curY; movinfo.pt1.x = curX; movinfo.distance1 = curDistance; - v29 = v9[i + 2].x; movinfo.pt2.x = v9[i + 2].x; movinfo.pt2.y = v9[i + 2].y; movinfo.distance2 = v9[i + 2].field_C; - if (v40 >= movInfo->_itemsCount - 4 - || (v30 = v9[i + 2].subIndex, v30 == 10) - || (v31 = v9[i + 3].subIndex, v31 == 10) - || v30 == v31 + if (i >= movInfo->_itemsCount - 4 + || v9[i + 2].subIndex == 10 + || v9[i + 3].subIndex == 10 + || v9[i + 2].subIndex == v9[i + 3].subIndex || v9[i + 4].subIndex != 10) { - if (v40 >= movInfo->itemsCount - 3 - || (v33 = v9[i + 2].subIndex, v33 == 10) - || (v34 = v9[i + 3].subIndex, v34 == 10) - || v33 == v34) { - movinfo.flags = movinfo.flags & 2 | movInfo->flags & 1; + if (i >= movInfo->itemsCount - 3 + || v9[i + 2].subIndex == 10 + || v9[i + 3].subIndex == 10 + || v9[i + 2].subIndex == v9[i + 3].subIndex) { + movinfo.flags &= 3; } else { - v35 = (MovInfo1 *)((char *)&this->items[1][movInfo->field_0] + 184 * v33 + 16 * (v34 + 8)); - movinfo.pt2.x = v29 - v35->pt1.y; + v35 = (MovInfo1 *)((char *)&this->items[1][movInfo->field_0] + 184 * v9[i + 2].subIndex + 16 * (v9[i + 3].subIndex + 8)); + movinfo.pt2.x -= v35->pt1.y; movinfo.pt2.y -= v35->pt2.x; - movinfo.flags = movinfo.flags & 2 | movInfo->flags & 1; + movinfo.flags &= 3; } } else { - v32 = (MovInfo1 *)((char *)&this->items[1][movInfo->field_0] + 184 * v30 + 16 * (v31 + 4)); + v32 = (MovInfo1 *)((char *)&this->items[1][movInfo->field_0] + 184 * v9[i + 2].subIndex + 16 * (v9[i + 3].subIndex + 4)); if (movinfo.item1Index && movinfo.item1Index != 1) { movinfo.pt2.y -= v32->pt2.x; movinfo.flags = movinfo.flags & 2 | 1; } else { - movinfo.pt2.x = v29 - v32->pt1.y; + movinfo.pt2.x -= v32->pt1.y; movinfo.flags = movinfo.flags & 2 | 1; } } - i++; + i++; // intentional - v36 = MovGraph2_sub_454CD0(this, &movinfo); + v36 = sub1(&movinfo); if (!v36) { delete mq; |