[Scummvm-cvs-logs] scummvm master -> e7b0316d8b6f3813e6a9da83e330ade55f8d1cda

sev- sev at scummvm.org
Fri Jan 3 00:15:07 CET 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:
979cf9ffd7 FULLPIPE: Fix Background::addPictureObject()
e7b0316d8b FULLPIPE: Fix flicker in scenes. Woo hoo!


Commit: 979cf9ffd7ca12ddc33ef89acfd008bb445884a9
    https://github.com/scummvm/scummvm/commit/979cf9ffd7ca12ddc33ef89acfd008bb445884a9
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T14:55:29-08:00

Commit Message:
FULLPIPE: Fix Background::addPictureObject()

Changed paths:
    engines/fullpipe/gfx.cpp
    engines/fullpipe/scene.cpp



diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp
index 8b2aca4..435a06d 100644
--- a/engines/fullpipe/gfx.cpp
+++ b/engines/fullpipe/gfx.cpp
@@ -129,8 +129,8 @@ void Background::addPictureObject(PictureObject *pct) {
 		pct->renumPictures(&_picObjList);
 
 	bool inserted = false;
-	for (uint i = 0; i < _picObjList.size(); i++) {
-		if (((PictureObject *)_picObjList[i])->_priority == pct->_priority) {
+	for (uint i = 1; i < _picObjList.size(); i++) {
+		if (((PictureObject *)_picObjList[i])->_priority <= pct->_priority) {
 			_picObjList.insert_at(i, pct);
 			inserted = true;
 			break;
@@ -329,8 +329,8 @@ void GameObject::renumPictures(PtrList *lst) {
 	int *buf = (int *)calloc(lst->size() + 2, sizeof(int));
 
 	for (uint i = 0; i < lst->size(); i++) {
-		if (_id == ((PictureObject *)((*lst)[i]))->_id)
-			buf[((PictureObject *)((*lst)[i]))->_okeyCode] = 1;
+		if (_id == ((GameObject *)((*lst)[i]))->_id)
+			buf[((GameObject *)((*lst)[i]))->_okeyCode] = 1;
 	}
 
 	if (buf[_okeyCode]) {
diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp
index 558a909..008983b 100644
--- a/engines/fullpipe/scene.cpp
+++ b/engines/fullpipe/scene.cpp
@@ -526,6 +526,7 @@ void Scene::updateScrolling2() {
 		((PictureObject *)_picObjList[0])->getDimensions(&point);
 
 		int flags = ((PictureObject *)_picObjList[0])->_flags;
+		warning("flags: %d %d %d %d", flags & 2, flags & 0x20, point.x, point.y);
 
 		if (g_fp->_sceneRect.left < 0 && !(flags & 2))
 			offsetX = -g_fp->_sceneRect.left;


Commit: e7b0316d8b6f3813e6a9da83e330ade55f8d1cda
    https://github.com/scummvm/scummvm/commit/e7b0316d8b6f3813e6a9da83e330ade55f8d1cda
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2014-01-02T15:14:16-08:00

Commit Message:
FULLPIPE: Fix flicker in scenes. Woo hoo!

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



diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp
index 008983b..928bd5c 100644
--- a/engines/fullpipe/scene.cpp
+++ b/engines/fullpipe/scene.cpp
@@ -442,8 +442,16 @@ bool Scene::compareObjPriority(const void *p1, const void *p2) {
 	return false;
 }
 
-void Scene::objectList_sortByPriority(PtrList &list) {
-	Common::sort(list.begin(), list.end(), Scene::compareObjPriority);
+void Scene::objectList_sortByPriority(PtrList &list, bool skipFirst) {
+	if (skipFirst) {
+		PtrList::iterator s = list.begin();
+
+		++s;
+
+		Common::sort(s, list.end(), Scene::compareObjPriority);
+	} else {
+		Common::sort(list.begin(), list.end(), Scene::compareObjPriority);
+	}
 }
 
 void Scene::draw() {
@@ -526,7 +534,6 @@ void Scene::updateScrolling2() {
 		((PictureObject *)_picObjList[0])->getDimensions(&point);
 
 		int flags = ((PictureObject *)_picObjList[0])->_flags;
-		warning("flags: %d %d %d %d", flags & 2, flags & 0x20, point.x, point.y);
 
 		if (g_fp->_sceneRect.left < 0 && !(flags & 2))
 			offsetX = -g_fp->_sceneRect.left;
@@ -609,7 +616,7 @@ void Scene::drawContent(int minPri, int maxPri, bool drawBg) {
 	debug(8, "Scene::drawContent(>%d, <%d, %d)", minPri, maxPri, drawBg);
 
 	if (_picObjList.size() > 2) { // We need to z-sort them
-		objectList_sortByPriority(_picObjList);
+		objectList_sortByPriority(_picObjList, true);
 	}
 
 	if (minPri == -1 && _picObjList.size())
diff --git a/engines/fullpipe/scene.h b/engines/fullpipe/scene.h
index db0da5d..b8defe2 100644
--- a/engines/fullpipe/scene.h
+++ b/engines/fullpipe/scene.h
@@ -79,7 +79,7 @@ class Scene : public Background {
 
   private:
 	static bool compareObjPriority(const void *p1, const void *p2);
-	void objectList_sortByPriority(PtrList &list);
+	void objectList_sortByPriority(PtrList &list, bool skipFirst = false);
 };
 
 class SceneTag : public CObject {






More information about the Scummvm-git-logs mailing list