diff --git a/src/ddsurface.c b/src/ddsurface.c index 0e8b18d..70b3eac 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -231,8 +231,8 @@ HRESULT dds_Blt( if (This->bpp == 8) { - unsigned char key_low = color_key.dwColorSpaceLowValue & 0xFF; - unsigned char key_high = color_key.dwColorSpaceHighValue & 0xFF; + unsigned char key_low = (unsigned char)color_key.dwColorSpaceLowValue; + unsigned char key_high = (unsigned char)color_key.dwColorSpaceHighValue; for (int y = 0; y < dst_h; y++) { @@ -262,8 +262,8 @@ HRESULT dds_Blt( } else if (This->bpp == 16) { - unsigned short key_low = color_key.dwColorSpaceLowValue & 0xFFFF; - unsigned short key_high = color_key.dwColorSpaceHighValue & 0xFFFF; + unsigned short key_low = (unsigned short)color_key.dwColorSpaceLowValue; + unsigned short key_high = (unsigned short)color_key.dwColorSpaceHighValue; for (int y = 0; y < dst_h; y++) { @@ -686,8 +686,8 @@ HRESULT dds_BltFast( { if (This->bpp == 8) { - unsigned char key_low = src_surface->color_key.dwColorSpaceLowValue & 0xFF; - unsigned char key_high = src_surface->color_key.dwColorSpaceHighValue & 0xFF; + unsigned char key_low = (unsigned char)src_surface->color_key.dwColorSpaceLowValue; + unsigned char key_high = (unsigned char)src_surface->color_key.dwColorSpaceHighValue; for (int y = 0; y < dst_h; y++) { @@ -707,8 +707,8 @@ HRESULT dds_BltFast( } else if (This->bpp == 16) { - unsigned short key_low = src_surface->color_key.dwColorSpaceLowValue & 0xFFFF; - unsigned short key_high = src_surface->color_key.dwColorSpaceHighValue & 0xFFFF; + unsigned short key_low = (unsigned short)src_surface->color_key.dwColorSpaceLowValue; + unsigned short key_high = (unsigned short)src_surface->color_key.dwColorSpaceHighValue; for (int y = 0; y < dst_h; y++) {