[Scummvm-cvs-logs] CVS: scummvm/scumm object.cpp,1.226,1.227

kirben kirben at users.sourceforge.net
Mon Apr 18 00:31:03 CEST 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20901/scumm

Modified Files:
	object.cpp 
Log Message:

Add work around for inveotry background/items in putttime/puttzoo not always been drawn.


Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.226
retrieving revision 1.227
diff -u -d -r1.226 -r1.227
--- object.cpp	17 Apr 2005 23:24:31 -0000	1.226
+++ object.cpp	18 Apr 2005 07:30:26 -0000	1.227
@@ -371,7 +371,7 @@
 	do {
 		a = od->parentstate;
 		if (!od->parent) {
-			if ((_version <= 6 && !(_features & GF_HUMONGOUS)) || od->fl_object_index == 0)
+			if (_version <= 6 || od->fl_object_index == 0)
 				drawObject(i, arg);
 			break;
 		}
@@ -383,7 +383,21 @@
 	int i;
 	const int mask = (_version <= 2) ? 0x8 : 0xF;
 
-	if (_gameId == GID_SAMNMAX) {
+	if (_features & GF_HUMONGOUS) {
+		// In HE games, normal objects are drawn, followed by FlObjects.
+		for (i = (_numLocalObjects-1); i > 0; i--)
+			if (_objs[i].obj_nr > 0 && (_objs[i].state & mask) && _objs[i].fl_object_index == 0)
+				drawRoomObject(i, arg);
+		}
+		// HACK: Reverse order is required to draw inventory background and items 
+		// in correct order in putttime/puttzoo. Otherwise the inventory background 
+		// is drawn over the items. But this doesn't match original, maybe masking 
+		// issue somewhere?
+		for (i = 1; i < _numLocalObjects; i++) {
+			if (_objs[i].obj_nr > 0 && (_objs[i].state & mask) && _objs[i].fl_object_index != 0)
+				drawRoomObject(i, arg);
+		}
+	if (_gameId == GID_SAMNMAX || _heversion >= 72) {
 		// In Sam & Max, objects are drawn in reverse order.
 		for (i = 1; i < _numLocalObjects; i++)
 			if (_objs[i].obj_nr > 0)





More information about the Scummvm-git-logs mailing list