[Scummvm-cvs-logs] CVS: scummvm object.cpp,1.57,1.58 script_v1.cpp,1.81,1.82

James Brown ender at users.sourceforge.net
Fri Apr 19 10:39:37 CEST 2002


Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv24310

Modified Files:
	object.cpp script_v1.cpp 
Log Message:
Fix various Zak256 crashes. Ticket machine works, taking Blue Crystal crashes.



Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.57
retrieving revision 1.58
diff -C2 -d -r1.57 -r1.58
*** object.cpp	18 Apr 2002 15:34:45 -0000	1.57
--- object.cpp	19 Apr 2002 16:26:43 -0000	1.58
***************
*** 823,830 ****
  
  	fo->roomptr = roomptr = getResourceAddress(rtRoom, room);
! 	if (!roomptr) {								// FIXME: ZAK256 AIRPORT WORKAROUND (buying book from devotee)
! 		warning("findObjectInRoom: failed getting roomptr to %d", room);
! 		return;
! 	}
  	roomhdr = (RoomHeader *)findResourceData(MKID('RMHD'), roomptr);
  
--- 823,829 ----
  
  	fo->roomptr = roomptr = getResourceAddress(rtRoom, room);
! 	if (!roomptr)
! 		error("findObjectInRoom: failed getting roomptr to %d", room);
! 
  	roomhdr = (RoomHeader *)findResourceData(MKID('RMHD'), roomptr);
  

Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script_v1.cpp,v
retrieving revision 1.81
retrieving revision 1.82
diff -C2 -d -r1.81 -r1.82
*** script_v1.cpp	19 Apr 2002 15:34:35 -0000	1.81
--- script_v1.cpp	19 Apr 2002 16:26:44 -0000	1.82
***************
*** 825,835 ****
  		newClass = getVarOrDirectWord(0x80);
  		if (newClass == 0) {
! 			_classData[act] = 0;
! 			if( _features & GF_SMALL_HEADER)
! 			{
! 				Actor *a;
! 				a=derefActor(act);
! 				a->forceClip=0;
! 			}
  				
  			continue;
--- 825,842 ----
  		newClass = getVarOrDirectWord(0x80);
  		if (newClass == 0) {
! 			_classData[act] = 0;
! 
! 			if( _features & GF_SMALL_HEADER)
! 
! 			{
! 
! 				Actor *a;
! 
! 				a=derefActor(act);
! 
! 				a->forceClip=0;
! 
! 			}
! 
  				
  			continue;
***************
*** 905,909 ****
  	int i, j, k;
  	int16 table[16];
! 
  	switch ((_opcode = fetchScriptByte()) & 0x1F) {
  	case 1:											/* cursor show */
--- 912,916 ----
  	int i, j, k;
  	int16 table[16];
! 	byte origop = _opcode;
  	switch ((_opcode = fetchScriptByte()) & 0x1F) {
  	case 1:											/* cursor show */
***************
*** 923,929 ****
  	case 5:											/* cursor soft on */
  		_cursorState++;
- 		if (_cursorState > 1) {
- 			error("Cursor state greater than 1 in script");
- 		}
  		verbMouseOver(0);
  		break;
--- 930,933 ----
***************
*** 1082,1090 ****
  		od = &_objs[idx];
  		xpos = ypos = 255;
! 		if (temp != 0xFF) {
! 			od->x_pos = temp<<3;
  			od->y_pos = temp2<<3;
! 		}
! 
  		addObjectToDrawQue(idx);
  
--- 1086,1098 ----
  		od = &_objs[idx];
  		xpos = ypos = 255;
! 		if (temp != 0xFF) {
! 
! 			od->x_pos = temp<<3;
! 
  			od->y_pos = temp2<<3;
! 		}
! 
! 
! 
  		addObjectToDrawQue(idx);
  
***************
*** 1691,1694 ****
--- 1699,1706 ----
  {
  	int obj, room;
+ 	if (_features & GF_OLD256) {
+ 		o5_drawObject();
+ 		return;
+ 	}
  
  	obj = getVarOrDirectWord(0x80);
***************
*** 1964,1968 ****
  		e = getVarOrDirectByte(0x40);
  		setScaleItem(e - 1, b, a, d, c);
! 	case 8:											/* room scale? */
  		a = getVarOrDirectByte(0x80);
  		b = getVarOrDirectByte(0x40);
--- 1976,1981 ----
  		e = getVarOrDirectByte(0x40);
  		setScaleItem(e - 1, b, a, d, c);
! 	case 8:											/* room scale? */
! 
  		a = getVarOrDirectByte(0x80);
  		b = getVarOrDirectByte(0x40);





More information about the Scummvm-git-logs mailing list