[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