[Scummvm-cvs-logs] CVS: scummvm sdl.cpp,1.29,1.30 object.cpp,1.19,1.20 actor.cpp,1.20,1.21
Ludvig Strigeus
strigeus at users.sourceforge.net
Sat Dec 29 04:46:06 CET 2001
Update of /cvsroot/scummvm/scummvm
In directory usw-pr-cvs1:/tmp/cvs-serv11551
Modified Files:
sdl.cpp object.cpp actor.cpp
Log Message:
fixed two bugs in indy4.
actors were facing in the wrong direction on the stairs,
actors moved strangely in monte carlo
Index: sdl.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sdl.cpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** sdl.cpp 2001/12/28 17:56:53 1.29
--- sdl.cpp 2001/12/29 12:45:54 1.30
***************
*** 288,294 ****
--- 288,306 ----
dst = (byte*)screen->pixels + y*640*2 + x*2;
addDirtyRect(x,y,w,h);
+ #ifdef DEBUG_CODE
+ byte black = GetAsyncKeyState(VK_SHIFT)<0 ? 0 : 0xFF;
do {
i=0;
do {
+ dst[i*2] = dst[i*2+1] = src[i] & black;
+ } while (++i!=w);
+ memcpy(dst+640, dst, w*2);
+ dst += 640*2;
+ src += 320;
+ } while (--h);
+ #else
+ do {
+ i=0;
+ do {
dst[i*2] = dst[i*2+1] = src[i];
} while (++i!=w);
***************
*** 297,302 ****
src += 320;
} while (--h);
-
#endif
SDL_UnlockSurface(screen);
--- 309,314 ----
src += 320;
} while (--h);
#endif
+ #endif
SDL_UnlockSurface(screen);
***************
*** 327,331 ****
for (i=0; i<numDirtyRects; i++)
area += (dirtyRects[i].w * dirtyRects[i].h);
! debug(2,"update area %f %%", (float)area/640);
#endif
--- 339,343 ----
for (i=0; i<numDirtyRects; i++)
area += (dirtyRects[i].w * dirtyRects[i].h);
! debug(2,"update area %f %%", (float)area/(640*400/100));
#endif
***************
*** 501,505 ****
SDL_CreateThread((int (*)(void *))&music_thread, &scumm);
}
-
--- 513,516 ----
Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/object.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** object.cpp 2001/12/27 17:51:58 1.19
--- object.cpp 2001/12/29 12:45:54 1.20
***************
*** 153,158 ****
y = od->y_pos + (int16)READ_LE_UINT16(&imhd->hotspot[state].y);
} else {
! x = od->walk_x;
! y = od->walk_y;
}
--- 153,158 ----
y = od->y_pos + (int16)READ_LE_UINT16(&imhd->hotspot[state].y);
} else {
! x = (int16)READ_LE_UINT16(&od->walk_x);
! y = (int16)READ_LE_UINT16(&od->walk_y);
}
Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/actor.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** actor.cpp 2001/12/27 17:51:57 1.20
--- actor.cpp 2001/12/29 12:45:54 1.21
***************
*** 163,166 ****
--- 163,167 ----
int specdir;
byte flags;
+ byte dirflag;
if (!a->ignoreBoxes) {
***************
*** 175,192 ****
flags = getBoxFlags(a->walkbox);
if ((flags&8) || getClass(a->number, 0x1E)) {
dir = 360 - dir;
}
if ((flags&0x10) || getClass(a->number, 0x1D)) {
dir = 180 - dir;
}
switch(flags & 7) {
case 1:
! return a->walkdata.XYFactor >0 ? 90 : 270;
case 2:
! return a->walkdata.YXFactor >0 ? 180 : 0;
case 3: return 270;
case 4: return 90;
--- 176,199 ----
flags = getBoxFlags(a->walkbox);
+
+ dirflag = ((a->walkdata.XYFactor>0) ? 1 : 0) |
+ ((a->walkdata.YXFactor>0) ? 2 : 0);
+
if ((flags&8) || getClass(a->number, 0x1E)) {
dir = 360 - dir;
+ dirflag ^= 1;
}
if ((flags&0x10) || getClass(a->number, 0x1D)) {
dir = 180 - dir;
+ dirflag ^= 2;
}
switch(flags & 7) {
case 1:
! return (dirflag&1) ? 90 : 270;
case 2:
! return (dirflag&2) ? 180 : 0;
case 3: return 270;
case 4: return 90;
More information about the Scummvm-git-logs
mailing list