[Scummvm-cvs-logs] SF.net SVN: scummvm:[41625] scummvm/trunk/engines/scumm

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Thu Jun 18 08:18:31 CEST 2009


Revision: 41625
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41625&view=rev
Author:   Kirben
Date:     2009-06-18 06:18:31 +0000 (Thu, 18 Jun 2009)

Log Message:
-----------
Correct actor layering method in HE90+ games.

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/actor.cpp
    scummvm/trunk/engines/scumm/he/script_v100he.cpp
    scummvm/trunk/engines/scumm/he/script_v72he.cpp

Modified: scummvm/trunk/engines/scumm/actor.cpp
===================================================================
--- scummvm/trunk/engines/scumm/actor.cpp	2009-06-18 06:10:13 UTC (rev 41624)
+++ scummvm/trunk/engines/scumm/actor.cpp	2009-06-18 06:18:31 UTC (rev 41625)
@@ -1348,6 +1348,22 @@
 				}
 			}
 		}
+	} else if (_game.heversion >= 90) {
+		for (int j = 0; j < numactors; ++j) {
+			for (int i = 0; i < numactors; ++i) {
+				int sc_actor1 = _sortedActors[j]->_layer;
+				int sc_actor2 = _sortedActors[i]->_layer;
+				if (sc_actor1 < sc_actor2) {
+					SWAP(_sortedActors[i], _sortedActors[j]);
+				} else if (sc_actor1 == sc_actor2) {
+					sc_actor1 = _sortedActors[j]->getPos().y;
+					sc_actor2 = _sortedActors[i]->getPos().y;
+					if (sc_actor1 < sc_actor2) {
+						SWAP(_sortedActors[i], _sortedActors[j]);
+					}
+				}
+			}
+		}
 	} else {
 		for (int j = 0; j < numactors; ++j) {
 			for (int i = 0; i < numactors; ++i) {

Modified: scummvm/trunk/engines/scumm/he/script_v100he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/script_v100he.cpp	2009-06-18 06:10:13 UTC (rev 41624)
+++ scummvm/trunk/engines/scumm/he/script_v100he.cpp	2009-06-18 06:18:31 UTC (rev 41625)
@@ -420,8 +420,7 @@
 		a->_needRedraw = true;
 		break;
 	case 59:
-		// HE games use reverse order of layering, so we adjust
-		a->_layer = -pop();
+		a->_layer = pop();
 		a->_needRedraw = true;
 		break;
 	case 63:

Modified: scummvm/trunk/engines/scumm/he/script_v72he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/script_v72he.cpp	2009-06-18 06:10:13 UTC (rev 41624)
+++ scummvm/trunk/engines/scumm/he/script_v72he.cpp	2009-06-18 06:18:31 UTC (rev 41625)
@@ -770,8 +770,7 @@
 		a->setTalkCondition(k);
 		break;
 	case 43: // HE 90+
-		// HE games use reverse order of layering, so we adjust
-		a->_layer = -pop();
+		a->_layer = pop();
 		a->_needRedraw = true;
 		break;
 	case 64:


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list