The patch looks fine to me. There is just one comment opn these lines :
if (SameSurface)
{
static BOOL WarnSurface = FALSE;
if (!WarnSurface)
{
FIXME("\tSame source and destination could cause display problems\n");
WarnSurface = TRUE;
}
- }
Why did you add this ? If you verified your patch and it's working, why add additionnal debug informations that will only confuse people :-) ?
Moreover, I do not know the performance hit between a 'memcpy' and a 'memmove', but well, one could have put the old code in a if (!SameSurface) to have the fastest path available to the most common case.
A part from these nitpicks, the patch looks fine and I will test it this evening on FalloutTactics to see if it fixes the screen corruption :-)
Lionel