[Scummvm-cvs-logs] CVS: scummvm gfx.h,1.4,1.5 object.cpp,1.60,1.61 script_v2.cpp,1.48,1.49 scumm.h,1.132,1.133 scummvm.cpp,1.121,1.122

Vincent Hamm yazoo at users.sourceforge.net
Sun Apr 21 14:21:07 CEST 2002


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

Modified Files:
	gfx.h object.cpp script_v2.cpp scumm.h scummvm.cpp 
Log Message:
Some code cleanup in the blast object code for implementation of futur features

Index: gfx.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** gfx.h	17 Apr 2002 03:11:37 -0000	1.4
--- gfx.h	21 Apr 2002 21:20:32 -0000	1.5
***************
*** 74,82 ****
  };
  
! struct EnqueuedObject {		/* Objects to draw */
  	uint16 a,b,c,d,e;
  	int16 x,y;
  	uint16 width,height;
! 	uint16 j,k,l;
  };
  
--- 74,83 ----
  };
  
! struct BlastObject {		/* BlastObjects to draw */
  	uint16 a,b,c,d,e;
  	int16 x,y;
  	uint16 width,height;
! 	uint16 j,k,l;
! 	uint16 mode;
  };
  

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.60
retrieving revision 1.61
diff -C2 -d -r1.60 -r1.61
*** object.cpp	20 Apr 2002 04:09:01 -0000	1.60
--- object.cpp	21 Apr 2002 21:20:32 -0000	1.61
***************
*** 1152,1159 ****
  }
  
! void Scumm::enqueueObject(int a, int b, int c, int d, int e, int f, int g,
! 													int h, int mode)
  {
! 	EnqueuedObject *eo;
  	ObjectData *od;
  
--- 1152,1159 ----
  }
  
! void Scumm::enqueueObject(int objectNumber, int objectX, int objectY, int objectWidth, int objectHeight, int f, int g,
! 													int image, int mode)
  {
! 	BlastObject *eo;
  	ObjectData *od;
  
***************
*** 1162,1203 ****
  
  	eo = &_enqueuedObjects[_enqueuePos++];
! 	eo->a = a;
  	eo->b = _enqueue_b;
  	eo->c = _enqueue_c;
  	eo->d = _enqueue_d;
  	eo->e = _enqueue_e;
! 	eo->x = b;
! 	eo->y = c;
! 	if (d == 0) {
! 		od = &_objs[getObjectIndex(a)];
  		eo->width = od->width;
  	} else {
! 		eo->width = d;
  	}
! 	if (e == 0) {
! 		od = &_objs[getObjectIndex(a)];
  		eo->height = od->height;
  	} else {
! 		eo->height = e;
  	}
  
  	eo->j = f;
  	eo->k = g;
! 	eo->l = h;
  }
  
! void Scumm::drawEnqueuedObjects()
  {
! 	EnqueuedObject *eo;
  	int i;
  
  	eo = _enqueuedObjects;
  	for (i = 0; i < _enqueuePos; i++, eo++) {
! 		drawEnqueuedObject(eo);
  	}
  }
  
  
! void Scumm::drawEnqueuedObject(EnqueuedObject * eo)
  {
  	VirtScreen *vs;
--- 1162,1204 ----
  
  	eo = &_enqueuedObjects[_enqueuePos++];
! 	eo->a = objectNumber;
  	eo->b = _enqueue_b;
  	eo->c = _enqueue_c;
  	eo->d = _enqueue_d;
  	eo->e = _enqueue_e;
! 	eo->x = objectX;
! 	eo->y = objectY;
! 	if (objectWidth == 0) {
! 		od = &_objs[getObjectIndex(objectNumber)];
  		eo->width = od->width;
  	} else {
! 		eo->width = objectWidth;
  	}
! 	if (objectHeight == 0) {
! 		od = &_objs[getObjectIndex(objectNumber)];
  		eo->height = od->height;
  	} else {
! 		eo->height = objectHeight;
  	}
  
  	eo->j = f;
  	eo->k = g;
! 	eo->l = image;
! 	eo->mode = mode;
  }
  
! void Scumm::drawBlastObjects()
  {
! 	BlastObject *eo;
  	int i;
  
  	eo = _enqueuedObjects;
  	for (i = 0; i < _enqueuePos; i++, eo++) {
! 		drawBlastObject(eo);
  	}
  }
  
  
! void Scumm::drawBlastObject(BlastObject * eo)
  {
  	VirtScreen *vs;
***************
*** 1233,1237 ****
  	assert(ptr);
  	ptr = findResource(IMxx_tags[eo->l], ptr);
! //        assert(ptr);
  	if (!ptr)											/* FIXME: Sam and Max highway subgame */
  		return;
--- 1234,1238 ----
  	assert(ptr);
  	ptr = findResource(IMxx_tags[eo->l], ptr);
! 
  	if (!ptr)											/* FIXME: Sam and Max highway subgame */
  		return;
***************
*** 1258,1269 ****
  }
  
! void Scumm::removeEnqueuedObjects()
  {
! 	EnqueuedObject *eo;
  	int i;
  
  	eo = _enqueuedObjects;
  	for (i = 0; i < _enqueuePos; i++, eo++) {
! 		removeEnqueuedObject(eo);
  	}
  
--- 1259,1270 ----
  }
  
! void Scumm::removeBlastObjects()
  {
! 	BlastObject *eo;
  	int i;
  
  	eo = _enqueuedObjects;
  	for (i = 0; i < _enqueuePos; i++, eo++) {
! 		removeBlastObject(eo);
  	}
  
***************
*** 1271,1275 ****
  }
  
! void Scumm::removeEnqueuedObject(EnqueuedObject * eo)
  {
  	restoreBG(eo->x, eo->y, eo->x + eo->width, eo->y + eo->height);
--- 1272,1276 ----
  }
  
! void Scumm::removeBlastObject(BlastObject * eo)
  {
  	restoreBG(eo->x, eo->y, eo->x + eo->width, eo->y + eo->height);

Index: script_v2.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/script_v2.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -C2 -d -r1.48 -r1.49
*** script_v2.cpp	21 Apr 2002 19:38:00 -0000	1.48
--- script_v2.cpp	21 Apr 2002 21:20:32 -0000	1.49
***************
*** 154,158 ****
  		&Scumm::o6_drawBlastObject,
  		/* 64 */
! 		&Scumm::o6_bompWindow,
  		&Scumm::o6_stopObjectCode,
  		&Scumm::o6_stopObjectCode,
--- 154,158 ----
  		&Scumm::o6_drawBlastObject,
  		/* 64 */
! 		&Scumm::o6_setBlastObjectWindow,
  		&Scumm::o6_stopObjectCode,
  		&Scumm::o6_stopObjectCode,
***************
*** 676,680 ****
  	_opcodes_lookup = opcode_lookup;
  }
! void Scumm::o6_bompWindow()
  {																// Set BOMP processing window
  	int a, b, c, d;
--- 676,680 ----
  	_opcodes_lookup = opcode_lookup;
  }
! void Scumm::o6_setBlastObjectWindow()
  {																// Set BOMP processing window
  	int a, b, c, d;

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm.h,v
retrieving revision 1.132
retrieving revision 1.133
diff -C2 -d -r1.132 -r1.133
*** scumm.h	21 Apr 2002 19:38:00 -0000	1.132
--- scumm.h	21 Apr 2002 21:20:32 -0000	1.133
***************
*** 1218,1229 ****
  	uint16 _enqueue_b,_enqueue_c,_enqueue_d,_enqueue_e;
  	int _enqueuePos; 
! 	EnqueuedObject _enqueuedObjects[32];
  
  	void enqueueObject(int a, int b, int c, int d, int e, int f, int g, int h, int mode);
  	void clearEnqueue() { _enqueuePos = 0; }
! 	void drawEnqueuedObjects();
! 	void drawEnqueuedObject(EnqueuedObject *eo);
! 	void removeEnqueuedObjects();
! 	void removeEnqueuedObject(EnqueuedObject *eo);
  
  	int _drawObjectQueNr;
--- 1218,1229 ----
  	uint16 _enqueue_b,_enqueue_c,_enqueue_d,_enqueue_e;
  	int _enqueuePos; 
! 	BlastObject _enqueuedObjects[32];
  
  	void enqueueObject(int a, int b, int c, int d, int e, int f, int g, int h, int mode);
  	void clearEnqueue() { _enqueuePos = 0; }
! 	void drawBlastObjects();
! 	void drawBlastObject(BlastObject *eo);
! 	void removeBlastObjects();
! 	void removeBlastObject(BlastObject *eo);
  
  	int _drawObjectQueNr;
***************
*** 1445,1449 ****
  	void unkMiscOp9();
  
! 	void o6_bompWindow();
  	void o6_pushByte();
  	void o6_pushWord();
--- 1445,1449 ----
  	void unkMiscOp9();
  
! 	void o6_setBlastObjectWindow();
  	void o6_pushByte();
  	void o6_pushWord();

Index: scummvm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scummvm.cpp,v
retrieving revision 1.121
retrieving revision 1.122
diff -C2 -d -r1.121 -r1.122
*** scummvm.cpp	21 Apr 2002 17:54:59 -0000	1.121
--- scummvm.cpp	21 Apr 2002 21:20:32 -0000	1.122
***************
*** 354,360 ****
  		}
  
! 		drawEnqueuedObjects();
  		drawDirtyScreenParts();
! 		removeEnqueuedObjects();
  
  		if (!(_features & GF_AFTER_V6))
--- 354,360 ----
  		}
  
! 		drawBlastObjects();
  		drawDirtyScreenParts();
! 		removeBlastObjects();
  
  		if (!(_features & GF_AFTER_V6))





More information about the Scummvm-git-logs mailing list