mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
add Dungeon Keeper preset + required hack
This commit is contained in:
parent
82b245228c
commit
737a26bfb3
@ -51,5 +51,6 @@ struct IDirectDrawPaletteImplVtbl
|
|||||||
} IDirectDrawPaletteImplVtbl;
|
} IDirectDrawPaletteImplVtbl;
|
||||||
|
|
||||||
HRESULT __stdcall ddraw_CreatePalette(IDirectDrawImpl *This, DWORD dwFlags, LPPALETTEENTRY DDColorArray, LPDIRECTDRAWPALETTE FAR * DDPalette, IUnknown FAR * unkOuter);
|
HRESULT __stdcall ddraw_CreatePalette(IDirectDrawImpl *This, DWORD dwFlags, LPPALETTEENTRY DDColorArray, LPDIRECTDRAWPALETTE FAR * DDPalette, IUnknown FAR * unkOuter);
|
||||||
|
extern IDirectDrawPaletteImpl *LastFreedPalette;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
#include "palette.h"
|
#include "palette.h"
|
||||||
#include "surface.h"
|
#include "surface.h"
|
||||||
|
|
||||||
|
IDirectDrawPaletteImpl *LastFreedPalette; // Dungeon Keeper hack
|
||||||
|
|
||||||
HRESULT __stdcall ddraw_palette_GetEntries(IDirectDrawPaletteImpl *This, DWORD dwFlags, DWORD dwBase, DWORD dwNumEntries, LPPALETTEENTRY lpEntries)
|
HRESULT __stdcall ddraw_palette_GetEntries(IDirectDrawPaletteImpl *This, DWORD dwFlags, DWORD dwBase, DWORD dwNumEntries, LPPALETTEENTRY lpEntries)
|
||||||
{
|
{
|
||||||
int i, x;
|
int i, x;
|
||||||
@ -91,6 +93,7 @@ ULONG __stdcall ddraw_palette_Release(IDirectDrawPaletteImpl *This)
|
|||||||
|
|
||||||
if(This->Ref == 0)
|
if(This->Ref == 0)
|
||||||
{
|
{
|
||||||
|
LastFreedPalette = This;
|
||||||
HeapFree(GetProcessHeap(), 0, This);
|
HeapFree(GetProcessHeap(), 0, This);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -236,6 +236,11 @@ static void CreateSettingsIni()
|
|||||||
"noactivateapp=true\n"
|
"noactivateapp=true\n"
|
||||||
"sleep=10\n"
|
"sleep=10\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
"[KEEPER95]\n"
|
||||||
|
"border=false\n"
|
||||||
|
"posX=0\n"
|
||||||
|
"posY=0\n"
|
||||||
|
"\n"
|
||||||
|
|
||||||
, fh);
|
, fh);
|
||||||
fclose(fh);
|
fclose(fh);
|
||||||
|
@ -64,7 +64,7 @@ ULONG __stdcall ddraw_surface_Release(IDirectDrawSurfaceImpl *This)
|
|||||||
if (This->bmi)
|
if (This->bmi)
|
||||||
HeapFree(GetProcessHeap(), 0, This->bmi);
|
HeapFree(GetProcessHeap(), 0, This->bmi);
|
||||||
|
|
||||||
if(This->palette)
|
if(This->palette && This->palette != LastFreedPalette)
|
||||||
{
|
{
|
||||||
IDirectDrawPalette_Release(This->palette);
|
IDirectDrawPalette_Release(This->palette);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user