[Scummvm-cvs-logs] scummvm master -> 99b376afe73ed84d9229265bb8924d89fb993b5e

sev- sev at scummvm.org
Sun May 25 08:33:44 CEST 2014


This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
3ca0f88e1f FULLPIPE: Fix MovGraph::calcMovItems()
99b376afe7 FULLPIPE: Start MovGraph::sub1() implementation


Commit: 3ca0f88e1f1539251cb2955cdb9eb532d105829f
    https://github.com/scummvm/scummvm/commit/3ca0f88e1f1539251cb2955cdb9eb532d105829f
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-05-25T09:32:50+03:00

Commit Message:
FULLPIPE: Fix MovGraph::calcMovItems()

Changed paths:
    engines/fullpipe/motion.cpp
    engines/fullpipe/motion.h



diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index af615cd..b4abe60 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -1176,7 +1176,7 @@ void MovGraph::shuffleTree(MovGraphLink *lnk, MovGraphLink *lnk2, Common::Array<
 	}
 }
 
-Common::Array<Common::Rect *> *MovGraph::getBboxes(MovArr *movarr1, MovArr *movarr2, int *listCount) {
+Common::Array<MovItem *> *MovGraph::calcMovItems(MovArr *movarr1, MovArr *movarr2, int *listCount) {
 	Common::Array<MovGraphLink *> tempObList1;
 	Common::Array<MovGraphLink *> tempObList2;
 
@@ -1189,12 +1189,12 @@ Common::Array<Common::Rect *> *MovGraph::getBboxes(MovArr *movarr1, MovArr *mova
 
 	*listCount = tempObList2.size();
 
-	Common::Array<Common::Rect *> *res = new Common::Array<Common::Rect *>;
+	Common::Array<MovItem *> *res = new Common::Array<MovItem *>;
 
 	for (int i = 0; i < *listCount; i++) {
-		Common::Rect *r = new Common::Rect;
+		MovItem *r = new MovItem;
 
-		calcBbox(r, tempObList2[i], movarr1, movarr2);
+		genMovItem(r, tempObList2[i], movarr1, movarr2);
 
 		delete tempObList2[i];
 	}
@@ -1204,8 +1204,8 @@ Common::Array<Common::Rect *> *MovGraph::getBboxes(MovArr *movarr1, MovArr *mova
 	return res;
 }
 
-void MovGraph::calcBbox(Common::Rect *rect, MovGraphLink *grlink, MovArr *movarr1, MovArr *movarr2) {
-	warning("STUB: MovGraph::calcBbox()");
+void MovGraph::genMovItem(MovItem *movitem, MovGraphLink *grlink, MovArr *movarr1, MovArr *movarr2) {
+	warning("STUB: MovGraph::genMovItem()");
 }
 
 bool MovGraph::calcChunk(int idx, int x, int y, MovArr *arr, int a6) {
diff --git a/engines/fullpipe/motion.h b/engines/fullpipe/motion.h
index 3aa07c1..2765cc3 100644
--- a/engines/fullpipe/motion.h
+++ b/engines/fullpipe/motion.h
@@ -371,8 +371,8 @@ public:
 	int getItemIndexByStaticAni(StaticANIObject *ani);
 	Common::Array<MovArr *> *genMovArr(int x, int y, int *arrSize, int flag1, int flag2);
 	void shuffleTree(MovGraphLink *lnk, MovGraphLink *lnk2, Common::Array<MovGraphLink *> &tempObList1, Common::Array<MovGraphLink *> &tempObList2);
-	Common::Array<Common::Rect *> *getBboxes(MovArr *movarr1, MovArr *movarr2, int *listCount);
-	void calcBbox(Common::Rect *rect, MovGraphLink *grlink, MovArr *movarr1, MovArr *movarr2);
+	Common::Array<MovItem *> *calcMovItems(MovArr *movarr1, MovArr *movarr2, int *listCount);
+	void genMovItem(MovItem *movitem, MovGraphLink *grlink, MovArr *movarr1, MovArr *movarr2);
 	bool calcChunk(int idx, int x, int y, MovArr *arr, int a6);
 	MessageQueue *sub1(StaticANIObject *ani, int x, int y, int a5, int x1, int y1, int a8, int a9);
 	MessageQueue *fillMGMinfo(StaticANIObject *ani, MovArr *movarr, int staticsId);


Commit: 99b376afe73ed84d9229265bb8924d89fb993b5e
    https://github.com/scummvm/scummvm/commit/99b376afe73ed84d9229265bb8924d89fb993b5e
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-05-25T09:32:50+03:00

Commit Message:
FULLPIPE: Start MovGraph::sub1() implementation

Changed paths:
    engines/fullpipe/motion.cpp



diff --git a/engines/fullpipe/motion.cpp b/engines/fullpipe/motion.cpp
index b4abe60..ad86805 100644
--- a/engines/fullpipe/motion.cpp
+++ b/engines/fullpipe/motion.cpp
@@ -817,7 +817,67 @@ MessageQueue *MovGraph::doWalkTo(StaticANIObject *subj, int xpos, int ypos, int
 	return 0;
 }
 
-MessageQueue *MovGraph::sub1(StaticANIObject *ani, int x, int y, int a5, int x1, int y1, int a8, int a9) {
+MessageQueue *MovGraph::sub1(StaticANIObject *ani, int x, int y, int stid, int x1, int y1, int a8, int flag1) {
+#if 0
+	PicAniInfo picinfo;
+
+	ani->getPicAniInfo(&picinfo);
+
+	ani->_statics = ani->getStaticsById(stid);
+	ani->_movement = 0;
+	ani->setOXY(x, y);
+
+	int rescount;
+
+	MovItem *movitem = method28(ani, x1, y1, flag1, &rescount);
+
+	if (!movitem) {
+		ani->setPicAniInfo(&picinfo);
+
+		return 0;
+	}
+
+	v13 = _callback1(ani, movitem, rescount);
+	v14 = MovGraph_getItemIndexByStaticAni(this, ani);
+	v15 = v14 << 6;
+	v16 = 0;
+
+	movgitem = _items[v14];
+	v18 = movgitem->count;
+
+	if (v18 > 0) {
+		v19 = movgitem->movitems;
+		while (v19->movarr != v13) {
+			++v16;
+			++v19;
+			if (v16 >= v18)
+				goto LABEL_6;
+		}
+		v21 = v16;
+		v22 = movgitem->movitems[v21].movarr;
+		v23 = movgitem->movarr._movSteps;
+		movarr = movgitem->movitems[v21].movarr;
+
+		if (v23)
+			CObjectFree(v23);
+
+		memcpy((char *)&this->_items->movarr + v15, v22, 0x20u);
+		*(MovStep **)((char *)&this->_items->movarr._movSteps + v15) = (MovStep *)operator new(8 * movarr->_movStepCount);
+		memcpy(*(void **)((char *)&this->_items->movarr._movSteps + v15), movarr->_movSteps, 8 * movarr->_movStepCount);
+		*(int *)((char *)&this->_items->movarr._afield_8 + v15) = -1;
+		*(MovGraphLink **)((char *)&this->_items->movarr._link + v15) = 0;
+		v24 = fillMGMinfo(*(StaticANIObject **)((char *)&this->_items->ani + v15), (MovArr *)((char *)&this->_items->movarr + v15), a8);
+
+		result = v24;
+	} else {
+	LABEL_6:
+		result = 0;
+	}
+
+	ani->setPicAniInfo(&picinfo);
+
+	return result;
+#endif
 	warning("STUB: *MovGraph::sub1()");
 
 	return 0;






More information about the Scummvm-git-logs mailing list