[Scummvm-cvs-logs] CVS: scummvm gfx.cpp,1.67,1.68 gui.cpp,1.33,1.34 gui.h,1.17,1.18

James Brown ender at users.sourceforge.net
Wed Apr 17 09:07:44 CEST 2002


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

Modified Files:
	gfx.cpp gui.cpp gui.h 
Log Message:
Add fix for Zak256/Indy3 actor masks. Thanks jah! Excellent work.

Let's hope someone will fix Loom actor masks soon... :)



Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gfx.cpp,v
retrieving revision 1.67
retrieving revision 1.68
diff -C2 -d -r1.67 -r1.68
*** gfx.cpp	17 Apr 2002 03:11:37 -0000	1.67
--- gfx.cpp	17 Apr 2002 16:02:29 -0000	1.68
***************
*** 339,345 ****
  
  	room = getResourceAddress(rtRoom, _roomResource);
! 
! 	if (_features & GF_SMALL_HEADER) {
! 		gdi._numZBuffer = 1;
  	} else {
  		ptr = findResource(MKID('RMIH'), findResource(MKID('RMIM'), room));
--- 339,346 ----
  
  	room = getResourceAddress(rtRoom, _roomResource);
! 	if (_features & GF_OLD256) {
! 		gdi._numZBuffer = 2;
! 	} else if (_features & GF_SMALL_HEADER) {
! 		gdi._numZBuffer = 1; // ENDER
  	} else {
  		ptr = findResource(MKID('RMIH'), findResource(MKID('RMIM'), room));
***************
*** 643,647 ****
  	int sx;
  
! 	CHECK_HEAP if (_vm->_features & GF_SMALL_HEADER)
  		smap_ptr = _smap_ptr = ptr;
  	else
--- 644,649 ----
  	int sx;
  
! 	CHECK_HEAP;
! 	if (_vm->_features & GF_SMALL_HEADER)
  		smap_ptr = _smap_ptr = ptr;
  	else
***************
*** 652,657 ****
  	numzbuf = _disable_zbuffer ? 0 : _numZBuffer;
  
! 	for (i = 1; i < numzbuf; i++) {
! 		zplane_list[i] = findResource(zplane_tags[i], ptr);
  	}
  
--- 654,672 ----
  	numzbuf = _disable_zbuffer ? 0 : _numZBuffer;
  
! 	if (_vm->_features & GF_OLD256) {
! 		/* this is really ugly, FIXME */
! 		if (ptr[-2] == 'B' && ptr[-1] == 'M' &&
! 		    READ_LE_UINT32(ptr - 6) > (READ_LE_UINT32(ptr) + 10)) {
! 			zplane_list[1] = smap_ptr + READ_LE_UINT32(ptr);
! 		} else if (ptr[-4] == 'O' && ptr[-3] == 'I' &&
! 			   READ_LE_UINT32(ptr - 8) > READ_LE_UINT32(ptr) + 12) {
! 			zplane_list[1] = smap_ptr + READ_LE_UINT32(ptr);
! 		} else {
! 			zplane_list[1] = 0;
! 		}
! 	} else {
! 		for (i = 1; i < numzbuf; i++) {
! 			zplane_list[i] = findResource(zplane_tags[i], ptr);
! 		}
  	}
  
***************
*** 674,678 ****
  			_smap_ptr = smap_ptr + READ_LE_UINT32(smap_ptr + stripnr * 4 + 8);
  
! 		CHECK_HEAP sx = x;
  		if (vs->scrollable)
  			sx -= vs->xstart >> 3;
--- 689,694 ----
  			_smap_ptr = smap_ptr + READ_LE_UINT32(smap_ptr + stripnr * 4 + 8);
  
! 		CHECK_HEAP;
! 		sx = x;
  		if (vs->scrollable)
  			sx -= vs->xstart >> 3;
***************
*** 698,702 ****
  		decompressBitmap();
  
! 		CHECK_HEAP if (twobufs) {
  			_bgbak_ptr = where_draw_ptr;
  
--- 714,719 ----
  		decompressBitmap();
  
! 		CHECK_HEAP;
! 		if (twobufs) {
  			_bgbak_ptr = where_draw_ptr;
  
***************
*** 713,719 ****
  			}
  		}
! 		CHECK_HEAP if (flag & dbDrawMaskOnBoth) {
! 			_z_plane_ptr =
! 				zplane_list[1] + READ_LE_UINT16(zplane_list[1] + stripnr * 2 + 8);
  			_mask_ptr_dest = _vm->getResourceAddress(rtBuffer, 9) + y * 40 + x;
  			if (_useOrDecompress && flag & dbAllowMaskOr)
--- 730,736 ----
  			}
  		}
! 		CHECK_HEAP;
! 		if (flag & dbDrawMaskOnBoth) {
! 			_z_plane_ptr = zplane_list[1] + READ_LE_UINT16(zplane_list[1] + stripnr * 2 + 8);
  			_mask_ptr_dest = _vm->getResourceAddress(rtBuffer, 9) + y * 40 + x;
  			if (_useOrDecompress && flag & dbAllowMaskOr)
***************
*** 724,739 ****
  
  		for (i = 1; i < numzbuf; i++) {
  			if (!zplane_list[i])
! 				continue;
! 			_z_plane_ptr =
! 				zplane_list[i] + READ_LE_UINT16(zplane_list[i] + stripnr * 2 + 8);
! 			_mask_ptr_dest =
! 				_vm->getResourceAddress(rtBuffer, 9) + y * 40 + x + _imgBufOffs[i];
! 			if (_useOrDecompress && flag & dbAllowMaskOr)
! 				decompressMaskImgOr();
  			else
! 				decompressMaskImg();
  		}
! 		CHECK_HEAP x++;
  		stripnr++;
  	} while (--numstrip);
--- 741,774 ----
  
  		for (i = 1; i < numzbuf; i++) {
+ 			uint16 offs;
+ 
  			if (!zplane_list[i])
! 				continue;			
! 
! 			if (_vm->_features & GF_SMALL_HEADER)
! 				offs = READ_LE_UINT16(zplane_list[i] + stripnr * 2 + 4);
  			else
! 				offs = READ_LE_UINT16(zplane_list[i] + stripnr * 2 + 8);
! 
! 			_mask_ptr_dest = _vm->getResourceAddress(rtBuffer, 9) + y * 40 + x + _imgBufOffs[i];
! 
! 			if (offs) {
! 				_z_plane_ptr = zplane_list[i] + offs;
! 
! 				if (_useOrDecompress && flag & dbAllowMaskOr)
! 					decompressMaskImgOr();
! 				else
! 					decompressMaskImg();
! 			} else {
! 				if (_useOrDecompress && flag & dbAllowMaskOr)
! 					; /* nothing */
! 				else
! 					for (int h = 0; h < _numLinesToProcess; h++)
! 						_mask_ptr_dest[h * 40] = 0;
! 				/* needs better abstraction, FIXME */
! 			}
  		}
! 		CHECK_HEAP;
! 		x++;
  		stripnr++;
  	} while (--numstrip);

Index: gui.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -C2 -d -r1.33 -r1.34
*** gui.cpp	17 Apr 2002 15:24:48 -0000	1.33
--- gui.cpp	17 Apr 2002 16:02:29 -0000	1.34
***************
*** 185,188 ****
--- 185,191 ----
  								_gui_variables[w->_string_number]);
  				break;
+ 			case GUI_SCROLLTEXT:
+ 				sprintf(text, "%s", _gui_scroller);
+ 				break;
  #ifdef _WIN32_WCE
  			case GUI_KEYTEXT:
***************
*** 410,417 ****
  const GuiWidget about_dialog[] = {
  	{GUI_STAT, 0xFF, GWF_DEFAULT, 30, 20, 260, 120, 0, 0},
- 	// {GUI_CUSTOMTEXT, 0x01, 0, 30 + 95, 20 + 10, 100, 15, 0, }, .. pocketscummvm
  	{GUI_CUSTOMTEXT, 0x01, 0, 30 + 68, 20 + 10 + 15 + 5, 160, 15, 0, 9},	// Build
  	{GUI_CUSTOMTEXT, 0x01, 0, 30 + 10, 20 + 10 + 15 + 5 + 15, 230, 15, 0, 10},	// ScummVM Url
  	{GUI_CUSTOMTEXT, 0x01, 0, 30 + 75, 20 + 10 + 15 + 5 + 15 + 15 + 15, 150, 15, 0, 11},	// Lucasarts
  	{GUI_RESTEXT, 0x01, GWF_BUTTON, 30 + 113, 20 + 96, 54, 16, 40, 9},
  	{0, 0, 0, 0, 0, 0, 0, 0, 0}
--- 413,420 ----
  const GuiWidget about_dialog[] = {
  	{GUI_STAT, 0xFF, GWF_DEFAULT, 30, 20, 260, 120, 0, 0},
  	{GUI_CUSTOMTEXT, 0x01, 0, 30 + 68, 20 + 10 + 15 + 5, 160, 15, 0, 9},	// Build
  	{GUI_CUSTOMTEXT, 0x01, 0, 30 + 10, 20 + 10 + 15 + 5 + 15, 230, 15, 0, 10},	// ScummVM Url
  	{GUI_CUSTOMTEXT, 0x01, 0, 30 + 75, 20 + 10 + 15 + 5 + 15 + 15 + 15, 150, 15, 0, 11},	// Lucasarts
+ 	{GUI_SCROLLTEXT, 0x01, 0, 30 + 95, 20 + 10, 100, 15, 0},
  	{GUI_RESTEXT, 0x01, GWF_BUTTON, 30 + 113, 20 + 96, 54, 16, 40, 9},
  	{0, 0, 0, 0, 0, 0, 0, 0, 0}
***************
*** 820,823 ****
--- 823,828 ----
  	_shadowcolor = 0;
  	_s = s;
+ 
+ 	strcpy(_gui_scroller, "Brought to you by:");
  }
  

Index: gui.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** gui.h	16 Apr 2002 17:42:14 -0000	1.17
--- gui.h	17 Apr 2002 16:02:29 -0000	1.18
***************
*** 35,39 ****
  	GUI_VARTEXT = 5,
  	GUI_ACTIONTEXT = 6,
! 	GUI_KEYTEXT = 7
  };
  
--- 35,40 ----
  	GUI_VARTEXT = 5,
  	GUI_ACTIONTEXT = 6,
! 	GUI_KEYTEXT = 7,
! 	GUI_SCROLLTEXT = 8
  };
  
***************
*** 114,117 ****
--- 115,120 ----
  	void queryMessage(const char *msg, const char *alts);
  	byte getDefaultColor(int color);
+ 
+ 	char _gui_scroller[255];
  
  	// Dialogs





More information about the Scummvm-git-logs mailing list