[Scummvm-cvs-logs] CVS: scummvm sdl.cpp,1.24,1.25

Ludvig Strigeus strigeus at users.sourceforge.net
Mon Dec 3 14:12:06 CET 2001


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

Modified Files:
	sdl.cpp 
Log Message:
fixed mouse bug in non-scaled mode

Index: sdl.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sdl.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** sdl.cpp	2001/12/01 17:06:13	1.24
--- sdl.cpp	2001/12/03 22:11:53	1.25
***************
*** 325,331 ****
  		bak = old_backup;
  
! 		for (y=0; y<h; y++,bak+=BAK_WIDTH,dst+=320) {
  			if ( (uint)(old_mouse_y + y) < 200) {
! 				for (x=0; x<w; x++) {
  					if ((uint)(old_mouse_x + x) < 320) {
  						dst[x] = bak[x];
--- 325,331 ----
  		bak = old_backup;
  
! 		for (y=0; y<old_mouse_h; y++,bak+=BAK_WIDTH,dst+=320) {
  			if ( (uint)(old_mouse_y + y) < 200) {
! 				for (x=0; x<old_mouse_w; x++) {
  					if ((uint)(old_mouse_x + x) < 320) {
  						dst[x] = bak[x];
***************
*** 370,478 ****
  		old_mouse_w = w;
  		old_mouse_h = h;
- 	}
- }
- 
- void drawMouse(Scumm *s, int xdraw, int ydraw, int color, byte *mask, bool visible) {
- 	int x,y;
- 	uint32 bits;
- 	byte *dst,*bak;
- 
- 	if (hide_mouse)
- 		visible = false;
- 
- 	if (SDL_LockSurface(screen)==-1)
- 		error("SDL_LockSurface failed: %s.\n", SDL_GetError());
- 
- #if defined(SCALEUP_2x2)
- 
- 	if (has_mouse) {
- 		dst = (byte*)screen->pixels + old_mouse_y*640*2 + old_mouse_x*2;
- 		bak = old_backup;
- 
- 		for (y=0; y<16; y++,bak+=48,dst+=640*2) {
- 			if ( (uint)(old_mouse_y + y) < 200) {
- 				for (x=0; x<24; x++) {
- 					if ((uint)(old_mouse_x + x) < 320) {
- 						dst[x*2+640] = dst[x*2] = bak[x*2];
- 						dst[x*2+640+1] = dst[x*2+1] = bak[x*2+1];
- 					}
- 				}
- 			}
- 		}
- 	}
- 
- 	if (visible) {
- 		dst = (byte*)screen->pixels + ydraw*640*2 + xdraw*2;
- 		bak = old_backup;
- 
- 		for (y=0; y<16; y++,dst+=640*2,bak+=48) {
- 			bits = mask[3] | (mask[2]<<8) | (mask[1]<<16);
- 			mask += 4;
- 			if ((uint)(ydraw+y)<200) {
- 				for (x=0; x<24; x++,bits<<=1) {
- 					if ((uint)(xdraw+x)<320) {
- 						bak[x*2] = dst[x*2];
- 						bak[x*2+1] = dst[x*2+1];
- 						if (bits&(1<<23)) {
- 							dst[x*2] = color;
- 							dst[x*2+1] = color;
- 							dst[x*2+640] = color;
- 							dst[x*2+1+640] = color;
- 						}
- 					}
- 				}
- 			}
- 		}
- 	}
- #else
- 	if (has_mouse) {
- 		dst = (byte*)screen->pixels + old_mouse_y*320 + old_mouse_x;
- 		bak = old_backup;
- 
- 		for (y=0; y<16; y++,bak+=24,dst+=320) {
- 			if ( (uint)(old_mouse_y + y) < 200) {
- 				for (x=0; x<24; x++) {
- 					if ((uint)(old_mouse_x + x) < 320) {
- 						dst[x] = bak[x];
- 					}
- 				}
- 			}
- 		}
- 	}
- 	if (visible) {
- 		dst = (byte*)screen->pixels + ydraw*320 + xdraw;
- 		bak = old_backup;
- 
- 		for (y=0; y<16; y++,dst+=320,bak+=24) {
- 			bits = mask[3] | (mask[2]<<8) | (mask[1]<<16);
- 			mask += 4;
- 			if ((uint)(ydraw+y)<200) {
- 				for (x=0; x<24; x++,bits<<=1) {
- 					if ((uint)(xdraw+x)<320) {
- 						bak[x] = dst[x];
- 						if (bits&(1<<23)) {
- 							dst[x] = color;
- 						}
- 					}
- 				}
- 			}
- 		}
- 	}
- 
- 
- #endif	
- 
- 	SDL_UnlockSurface(screen);
- 
- 	if (has_mouse) {
- 		has_mouse = false;
- 		addDirtyRectClipped(old_mouse_x, old_mouse_y, 24, 16);
- 	}
- 
- 	if (visible) {
- 		has_mouse = true;
- 		addDirtyRectClipped(xdraw, ydraw, 24, 16);
- 		old_mouse_x = xdraw;
- 		old_mouse_y = ydraw;
  	}
  }
--- 370,373 ----





More information about the Scummvm-git-logs mailing list