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