[Scummvm-cvs-logs] SF.net SVN: scummvm:[41626] scummvm/branches/gsoc2009-16bit

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Thu Jun 18 09:12:53 CEST 2009


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

Log Message:
-----------
Merged revisions 41625 via svnmerge from 
https://scummvm.svn.sourceforge.net/svnroot/scummvm/scummvm/trunk

........
  r41625 | Kirben | 2009-06-18 16:18:31 +1000 (Thu, 18 Jun 2009) | 1 line
  
  Correct actor layering method in HE90+ games.
........

Modified Paths:
--------------
    scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp
    scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp
    scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v72he.cpp

Property Changed:
----------------
    scummvm/branches/gsoc2009-16bit/


Property changes on: scummvm/branches/gsoc2009-16bit
___________________________________________________________________
Modified: svnmerge-integrated
   - /scummvm/trunk:1-41217 /scummvm/branches/gsoc2008-tfmx:1-31765 /scummvm/branches/gsoc2008-gui:1-31703
   + /scummvm/trunk:1-41217,41625 /scummvm/branches/gsoc2008-tfmx:1-31765 /scummvm/branches/gsoc2008-gui:1-31703

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp	2009-06-18 06:18:31 UTC (rev 41625)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp	2009-06-18 07:12:53 UTC (rev 41626)
@@ -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/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp	2009-06-18 06:18:31 UTC (rev 41625)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp	2009-06-18 07:12:53 UTC (rev 41626)
@@ -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/branches/gsoc2009-16bit/engines/scumm/he/script_v72he.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v72he.cpp	2009-06-18 06:18:31 UTC (rev 41625)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v72he.cpp	2009-06-18 07:12:53 UTC (rev 41626)
@@ -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