[Scummvm-cvs-logs] CVS: scummvm actor.cpp,1.22,1.23 gfx.cpp,1.28,1.29 object.cpp,1.23,1.24 resource.cpp,1.33,1.34 script_v1.cpp,1.19,1.20 scumm.h,1.44,1.45 string.cpp,1.16,1.17

Vincent Hamm yazoo at users.sourceforge.net
Wed Feb 13 09:34:15 CET 2002


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

Modified Files:
	actor.cpp gfx.cpp object.cpp resource.cpp script_v1.cpp 
	scumm.h string.cpp 
Log Message:
a few fix for Zak256

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/actor.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** actor.cpp	12 Feb 2002 18:20:37 -0000	1.22
--- actor.cpp	13 Feb 2002 17:33:52 -0000	1.23
***************
*** 323,327 ****
  
  	if (scale>255)
! 		error("Actor %d at %d, scale %d out of range", a->number, a->y, scale);
  	
  	a->scalex = (byte)scale;
--- 323,327 ----
  
  	if (scale>255)
! 		warning("Actor %d at %d, scale %d out of range", a->number, a->y, scale); 
  	
  	a->scalex = (byte)scale;

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** gfx.cpp	12 Feb 2002 18:20:37 -0000	1.28
--- gfx.cpp	13 Feb 2002 17:33:52 -0000	1.29
***************
*** 1306,1310 ****
                                 color = 0;
                                 for (z=0; z < 4; z++) {READ_256BIT; color+=bits<<i;}
!                                *dst = (run * 16 + color);
                                 NEXT_ROW // y++; if (y>=height) {y=0; x++;}}
                          }
--- 1306,1310 ----
                                 color = 0;
                                 for (z=0; z < 4; z++) {READ_256BIT; color+=bits<<i;}
!                                *dst = (run *16 + color);
                                 NEXT_ROW // y++; if (y>=height) {y=0; x++;}}
                          }
***************
*** 1338,1342 ****
                  NEXT_ROW
          } else {
!                 uint run = color - numcolors + 1;
                  color = *src++;
                 do {
--- 1338,1342 ----
                  NEXT_ROW
          } else {
!                 uint run = color - numcolors +1;
                  color = *src++;
                 do {

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** object.cpp	12 Feb 2002 21:28:07 -0000	1.23
--- object.cpp	13 Feb 2002 17:33:52 -0000	1.24
***************
*** 33,37 ****
  
  void Scumm::putClass(int obj, int cls, bool set) {
! 	checkRange(_numGlobalObjects-1, 0, obj, "Object %d out of range in getClass");
  
  	cls &= 0x7F;
--- 33,37 ----
  
  void Scumm::putClass(int obj, int cls, bool set) {
! 	checkRange(_numGlobalObjects-1, 0, obj, "Object %d out of range in putClass");
  
  	cls &= 0x7F;

Index: resource.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/resource.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** resource.cpp	12 Feb 2002 22:25:41 -0000	1.33
--- resource.cpp	13 Feb 2002 17:33:52 -0000	1.34
***************
*** 417,425 ****
                         assert(num == _numGlobalObjects);
                         for (i=0; i<num; i++) { /* not too sure about all that */
!                                _classData[i] = fileReadWordLE(); //+ fileReadByte();
!                                fileReadByte();
                                 _objectOwnerTable[i] = fileReadByte();
!                                _objectStateTable[i] = _objectOwnerTable[i]>>OF_STATE_SHL;
!                                _objectOwnerTable[i] &= OF_OWNER_MASK;
                         }
                 
--- 417,425 ----
                         assert(num == _numGlobalObjects);
                         for (i=0; i<num; i++) { /* not too sure about all that */
!                                _classData[i] = fileReadByte() + 256*fileReadByte()+ 256*256*fileReadByte();
!                      //          fileReadByte();
                                 _objectOwnerTable[i] = fileReadByte();
!                      //          _objectStateTable[i] = _objectOwnerTable[i]>>OF_STATE_SHL;
!                      //          _objectOwnerTable[i] &= OF_OWNER_MASK;
                         }
                 

Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script_v1.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** script_v1.cpp	13 Feb 2002 09:17:26 -0000	1.19
--- script_v1.cpp	13 Feb 2002 17:33:52 -0000	1.20
***************
*** 127,131 ****
  	&Scumm::o5_badOpcode,
  	/* 50 */
! 	&Scumm::o5_badOpcode,
  	&Scumm::o5_animateActor,
  	&Scumm::o5_actorFollowCamera,
--- 127,131 ----
  	&Scumm::o5_badOpcode,
  	/* 50 */
! 	&Scumm::o5_pickupObjectOld,
  	&Scumm::o5_animateActor,
  	&Scumm::o5_actorFollowCamera,
***************
*** 287,291 ****
  	&Scumm::o5_badOpcode,
  	/* D0 */
! 	&Scumm::o5_badOpcode,
  	&Scumm::o5_animateActor,
  	&Scumm::o5_actorFollowCamera,
--- 287,291 ----
  	&Scumm::o5_badOpcode,
  	/* D0 */
! 	&Scumm::o5_pickupObjectOld,
  	&Scumm::o5_animateActor,
  	&Scumm::o5_actorFollowCamera,
***************
*** 374,377 ****
--- 374,380 ----
  
  		switch(_opcode&0x1F) {
+ 		case 0: /* dummy case */
+ 			getVarOrDirectByte(0x80);
+ 			break;
  		case 1: /* costume */
  			setActorCostume(a, getVarOrDirectByte(0x80));
***************
*** 440,443 ****
--- 443,448 ----
  			a->scalex = getVarOrDirectByte(0x80);
  			a->scaley = getVarOrDirectByte(0x40);
+ 			if(a->scalex>255 || a->scaley>255)
+ 				error("Setting an bad actor scale!");
  			a->needRedraw = true;
  			a->needBgReset = true;
***************
*** 476,491 ****
  void Scumm::o5_actorSetClass() {
  	int act = getVarOrDirectWord(0x80);
! 	int i;
  
  	while ( (_opcode=fetchScriptByte()) != 0xFF) {
! 		i = getVarOrDirectWord(0x80);
! 		if (i==0) {
  			_classData[act] = 0;
  			continue;
  		}
! 		if (i&0x80)
! 			putClass(act, i, 1);
  		else
! 			putClass(act, i, 0);
  	}
  }
--- 481,496 ----
  void Scumm::o5_actorSetClass() {
  	int act = getVarOrDirectWord(0x80);
! 	int newClass;
  
  	while ( (_opcode=fetchScriptByte()) != 0xFF) {
! 		newClass = getVarOrDirectWord(0x80);
! 		if (newClass==0) {
  			_classData[act] = 0;
  			continue;
  		}
! 		if (newClass&0x80)
! 			putClass(act, newClass, 1);
  		else
! 			putClass(act, newClass, 0);
  	}
  }
***************
*** 583,588 ****
  		i = getVarOrDirectByte(0x80);
  		j = getVarOrDirectByte(0x40);
!         if (!(_gameId==GID_LOOM256)) 
!            setCursorImg(i, j, 1);
  		break;
  	case 11: /* set cursor hotspot */
--- 588,593 ----
  		i = getVarOrDirectByte(0x80);
  		j = getVarOrDirectByte(0x40);
! 		if(_gameId != GID_LOOM256)
! 	           	setCursorImg(i, j, 1);
  		break;
  	case 11: /* set cursor hotspot */
***************
*** 1404,1410 ****
                          b = getVarOrDirectWord(0x40);
                         checkRange(256, 0, a, "o5_roomOps: 2: Illegal room color slot (%d)");
!                        _currentPalette[a]=b;
                          _fullRedraw = 1;
-                         setDirtyColors(a,a);
                 } else {
                          a = getVarOrDirectWord(0x80);
--- 1409,1414 ----
                          b = getVarOrDirectWord(0x40);
                         checkRange(256, 0, a, "o5_roomOps: 2: Illegal room color slot (%d)");
!                        _currentPalette[a]=b; /*FIXME: should be shadow palette */
                          _fullRedraw = 1;
                 } else {
                          a = getVarOrDirectWord(0x80);
***************
*** 1422,1425 ****
--- 1426,1438 ----
  		setShake(0);
  		break;
+ 	case 7: /* room scale for old games */
+ 		a = getVarOrDirectByte(0x80);
+ 		b = getVarOrDirectByte(0x40);
+ 		_opcode=fetchScriptByte();
+ 		c = getVarOrDirectByte(0x80);
+ 		d = getVarOrDirectByte(0x40);
+ 		_opcode=fetchScriptByte();
+ 		e = getVarOrDirectByte(0x40);
+ 		setScaleItem(e-1,b,a,d,c);
  	case 8: /* room scale? */
  		a = getVarOrDirectByte(0x80);
***************
*** 2076,2078 ****
--- 2089,2106 ----
  	}
  	warning("Unsupported oldRoomEffect");
+ }
+ 
+ void Scumm::o5_pickupObjectOld() {
+ 
+ 	int obj;
+ 
+ 	obj = getVarOrDirectByte(0x80);
+ 
+ 	if(getObjectIndex(obj) != 1)
+ 		return;
+ 
+ 
+ 	
+ 	warning("Unsupported pickupObjectOld");
+ 
  }

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -C2 -d -r1.44 -r1.45
*** scumm.h	12 Feb 2002 22:25:41 -0000	1.44
--- scumm.h	13 Feb 2002 17:33:52 -0000	1.45
***************
*** 303,311 ****
--- 303,317 ----
  	VAR_ROOM = 4,
  	VAR_OVERRIDE = 5,
+ 	VAR_MACHINE_SPEED = 6,
+ 	VAR_ME = 7,
  	VAR_NUM_ACTOR = 8,
+ 	VAR_CURRENT_LIGHTS = 9,
  	VAR_CURRENTDRIVE = 10,
  	VAR_TMR_1 = 11,
  	VAR_TMR_2 = 12,
  	VAR_TMR_3 = 13,
+ 	VAR_MUSIC_FLAG = 14,
+ 	VAR_ACTOR_RANGE_MIN = 15,
+ 	VAR_ACTOR_RANGE_MAX = 16,
  	VAR_CAMERA_MIN_X = 17,
  	VAR_CAMERA_MAX_X = 18,
***************
*** 1504,1508 ****
  	void o5_walkActorToObject();
          void o5_oldRoomEffect();
! 
  	void o6_pushByte();
  	void o6_pushWord();
--- 1510,1515 ----
  	void o5_walkActorToObject();
          void o5_oldRoomEffect();
! 	void o5_pickupObjectOld();
! 	
  	void o6_pushByte();
  	void o6_pushWord();

Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/string.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** string.cpp	13 Feb 2002 07:02:49 -0000	1.16
--- string.cpp	13 Feb 2002 17:33:52 -0000	1.17
***************
*** 186,189 ****
--- 186,192 ----
  	byte *buffer;
  
+ 	if(_gameId==GID_ZAK256)
+ 		return;
+ 
  #if !defined(FULL_THROTTLE)
  	if (!_haveMsg || (camera._dest.x>>3) != (camera._cur.x>>3) ||





More information about the Scummvm-git-logs mailing list