[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