From 5ea076752b22796e82d8bca1414b9b652acd7ad3 Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Tue, 30 Oct 2018 12:59:12 +0100 Subject: [PATCH] fix d2 palette bug --- src/palette.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/palette.c b/src/palette.c index 56b962f..5d3b37b 100644 --- a/src/palette.c +++ b/src/palette.c @@ -21,17 +21,17 @@ HRESULT __stdcall ddraw_palette_GetEntries(IDirectDrawPaletteImpl *This, DWORD dwFlags, DWORD dwBase, DWORD dwNumEntries, LPPALETTEENTRY lpEntries) { - int i; + int i, x; printf("DirectDrawPalette::GetEntries(This=%p, dwFlags=%08X, dwBase=%d, dwNumEntries=%d, lpEntries=%p)\n", This, (int)dwFlags, (int)dwBase, (int)dwNumEntries, lpEntries); - for(i=dwBase;idata_rgb) { - lpEntries[i].peRed = This->data_rgb[i].rgbRed; - lpEntries[i].peGreen = This->data_rgb[i].rgbGreen; - lpEntries[i].peBlue = This->data_rgb[i].rgbBlue; + lpEntries[x].peRed = This->data_rgb[i].rgbRed; + lpEntries[x].peGreen = This->data_rgb[i].rgbGreen; + lpEntries[x].peBlue = This->data_rgb[i].rgbBlue; } } @@ -40,26 +40,26 @@ HRESULT __stdcall ddraw_palette_GetEntries(IDirectDrawPaletteImpl *This, DWORD d HRESULT __stdcall ddraw_palette_SetEntries(IDirectDrawPaletteImpl *This, DWORD dwFlags, DWORD dwStartingEntry, DWORD dwCount, LPPALETTEENTRY lpEntries) { - int i; + int i, x; #if _DEBUG_X printf("DirectDrawPalette::SetEntries(This=%p, dwFlags=%08X, dwStartingEntry=%d, dwCount=%d, lpEntries=%p)\n", This, (int)dwFlags, (int)dwStartingEntry, (int)dwCount, lpEntries); #endif - for(i=dwStartingEntry;idata_bgr[i] = (lpEntries[i].peBlue<<16)|(lpEntries[i].peGreen<<8)|lpEntries[i].peRed; + This->data_bgr[i] = (lpEntries[x].peBlue << 16) | (lpEntries[x].peGreen << 8) | lpEntries[x].peRed; if (This->data_rgb) { - This->data_rgb[i].rgbRed = lpEntries[i].peRed; - This->data_rgb[i].rgbGreen = lpEntries[i].peGreen; - This->data_rgb[i].rgbBlue = lpEntries[i].peBlue; + This->data_rgb[i].rgbRed = lpEntries[x].peRed; + This->data_rgb[i].rgbGreen = lpEntries[x].peGreen; + This->data_rgb[i].rgbBlue = lpEntries[x].peBlue; This->data_rgb[i].rgbReserved = 0; } } - - if(ddraw->primary && ddraw->primary->palette == This && ddraw->render.run) + + if (ddraw->primary && ddraw->primary->palette == This && ddraw->render.run) { InterlockedExchange(&ddraw->render.paletteUpdated, TRUE); ReleaseSemaphore(ddraw->render.sem, 1, NULL);