[Scummvm-git-logs] scummvm master -> dea4b64839a90b3dfc2503b77439f24ba30f9b47

sev- sev at scummvm.org
Mon Sep 26 20:41:24 CEST 2016


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

Summary:
dea4b64839 FULLPIPE: Assign unique number to objects in the scene, so they stay stable


Commit: dea4b64839a90b3dfc2503b77439f24ba30f9b47
    https://github.com/scummvm/scummvm/commit/dea4b64839a90b3dfc2503b77439f24ba30f9b47
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2016-09-26T20:41:17+02:00

Commit Message:
FULLPIPE: Assign unique number to objects in the scene, so they stay stable

Changed paths:
    engines/fullpipe/scene.cpp
    engines/fullpipe/scenes/scene04.cpp



diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp
index 9e44449..cba688a 100644
--- a/engines/fullpipe/scene.cpp
+++ b/engines/fullpipe/scene.cpp
@@ -333,6 +333,10 @@ void Scene::deleteStaticANIObject(StaticANIObject *obj) {
 }
 
 void Scene::addStaticANIObject(StaticANIObject *obj, bool addList2) {
+	// WORKAROUND: This is used for making sure that the objects
+	// with same priority do not get swapped during drawing
+	obj->_cnum = _staticANIObjectList2.size() + 1;
+
 	if (obj->_odelay)
 		obj->renumPictures(&_staticANIObjectList1);
 
@@ -477,10 +481,6 @@ bool Scene::compareObjPriority(const void *p1, const void *p2) {
 }
 
 void Scene::objectList_sortByPriority(Common::Array<StaticANIObject *> &list, bool skipFirst) {
-	// Ensure the sort is stable
-	for (uint i = 0; i < list.size(); i++)
-		list[i]->_cnum = i;
-
 	if (skipFirst) {
 		Common::Array<StaticANIObject *>::iterator s = list.begin();
 
@@ -493,10 +493,6 @@ void Scene::objectList_sortByPriority(Common::Array<StaticANIObject *> &list, bo
 }
 
 void Scene::objectList_sortByPriority(Common::Array<PictureObject *> &list, bool skipFirst) {
-	// Ensure the sort is stable
-	for (uint i = 0; i < list.size(); i++)
-		list[i]->_cnum = i;
-
 	if (skipFirst) {
 		Common::Array<PictureObject *>::iterator s = list.begin();
 
@@ -519,12 +515,14 @@ void Scene::draw() {
 
 	objectList_sortByPriority(_staticANIObjectList2);
 
-	for (uint i = 0; i < _staticANIObjectList2.size(); i++)
+	for (uint i = 0; i < _staticANIObjectList2.size(); i++) {
 		_staticANIObjectList2[i]->draw2();
+	}
 
 	int priority = -1;
 	for (uint i = 0; i < _staticANIObjectList2.size(); i++) {
 		drawContent(_staticANIObjectList2[i]->_priority, priority, false);
+
 		_staticANIObjectList2[i]->draw();
 
 		priority = _staticANIObjectList2[i]->_priority;
diff --git a/engines/fullpipe/scenes/scene04.cpp b/engines/fullpipe/scenes/scene04.cpp
index 6c746b8..c3557cc 100644
--- a/engines/fullpipe/scenes/scene04.cpp
+++ b/engines/fullpipe/scenes/scene04.cpp
@@ -43,6 +43,8 @@ static const int scene04_speakerPhases[] = {
 	0, 2, -1, -1, -1, -1
 };
 
+void sceneHandler04_putKozyawkaBack(StaticANIObject *ani);
+
 void scene04_speakerCallback(int *phase) {
 	if (g_vars->scene04_soundPlaying) {
 		if (g_vars->scene04_speakerPhase >= 0) {





More information about the Scummvm-git-logs mailing list