[Scummvm-cvs-logs] CVS: scummvm/saga animation.cpp,1.31,1.32 ite_introproc.cpp,1.36,1.37 sprite.cpp,1.30,1.31

Eugene Sandulenko sev at users.sourceforge.net
Tue Dec 28 05:35:05 CET 2004


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

Modified Files:
	animation.cpp ite_introproc.cpp sprite.cpp 
Log Message:
Partial fix for Mac intro. Sprites are still incorrect because of lack of
m68k asm knowledge :)


Index: animation.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/animation.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- animation.cpp	28 Dec 2004 04:09:10 -0000	1.31
+++ animation.cpp	28 Dec 2004 13:34:33 -0000	1.32
@@ -283,6 +283,7 @@
 		link_anim = _anim_tbl[link_anim_id];
 
 		if (link_anim != NULL) {
+			debug(5, "Animation ended going to %d", link_anim_id);
 			link_anim->current_frame = 0;
 			link_anim->state = ANIM_PLAYING;
 		}
@@ -425,7 +426,7 @@
 	ah.unknown07 = readS.readByte();
 	ah.nframes = readS.readByte() - 1;
 	ah.loopframe = readS.readByte() - 1;
-	ah.start = readS.readUint16BE(); //FIXME: check on Mac
+	ah.start = readS.readUint16BE();
 
 	if (ah.start != 65535 && ah.start != 0)
 		error("Anim::readAnimHeader(): found different start: %d. Fix Anim::play()", ah.start);

Index: ite_introproc.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/ite_introproc.cpp,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -d -r1.36 -r1.37
--- ite_introproc.cpp	28 Dec 2004 03:44:07 -0000	1.36
+++ ite_introproc.cpp	28 Dec 2004 13:34:33 -0000	1.37
@@ -198,11 +198,16 @@
 		_vm->_anim->link(1, 2);
 		_vm->_anim->link(2, 3);
 		_vm->_anim->link(3, 4);
-		_vm->_anim->link(4, 5);
-		_vm->_anim->link(5, 6);
 
-		// Scene should end on display of last animation frame
-		_vm->_anim->setFlag(6, ANIM_ENDSCENE);
+		if (_vm->_features & GF_MAC_RESOURCES)
+			_vm->_anim->setFlag(4, ANIM_ENDSCENE);
+		else {
+			_vm->_anim->link(4, 5);
+			_vm->_anim->link(5, 6);
+
+			// Scene should end on display of last animation frame
+			_vm->_anim->setFlag(6, ANIM_ENDSCENE);
+		}
 
 		debug(0, "Beginning animation playback.");
 

Index: sprite.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/saga/sprite.cpp,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- sprite.cpp	22 Dec 2004 13:09:47 -0000	1.30
+++ sprite.cpp	28 Dec 2004 13:34:33 -0000	1.31
@@ -199,17 +199,25 @@
 	sprite_p += offset;
 
 	assert(sprite_p);
-	MemoryReadStreamEndian readS(sprite_p, 5, IS_BIG_ENDIAN);
 
-	x_align = readS.readSByte();
-	y_align = readS.readSByte();
+	MemoryReadStreamEndian readS(sprite_p, 8, IS_BIG_ENDIAN);
+	if (!(_vm->_features & GF_MAC_RESOURCES)) {
+		x_align = readS.readSByte();
+		y_align = readS.readSByte();
+
+		so_width = s_width = readS.readByte();
+		so_height = s_height = readS.readByte();
+	} else {
+		x_align = readS.readSint16();
+		y_align = readS.readSint16();
 
+		so_width = s_width = readS.readUint16();
+		so_height = s_height = readS.readUint16();
+	}
+	debug(0, "%d x %d", s_width, s_height);
 	spr_pt.x = screenCoord.x + x_align;
 	spr_pt.y = screenCoord.y + y_align;
 
-	so_width = s_width = readS.readByte();
-	so_height = s_height = readS.readByte();
-
 	if (scale < 256)
 		scaleSpriteCoords(scale, &s_width, &s_height, &x_align, &y_align);
 





More information about the Scummvm-git-logs mailing list