From 27323efa4ba27d2828fd4650326de60271f60b41 Mon Sep 17 00:00:00 2001
From: FunkyFr3sh <cc.red.alert.1@googlemail.com>
Date: Sun, 27 Sep 2020 13:38:41 +0200
Subject: [PATCH] Fix for twisted metal 2

---
 ddraw.rc       | 2 +-
 inc/main.h     | 2 +-
 src/main.c     | 5 +++--
 src/settings.c | 4 ++--
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/ddraw.rc b/ddraw.rc
index 475393c..e5737c6 100644
--- a/ddraw.rc
+++ b/ddraw.rc
@@ -4,7 +4,7 @@
 #define VERSION_MAJOR    1
 #define VERSION_MINOR    3
 #define VERSION_BUILD    6
-#define VERSION_REVISION 0  
+#define VERSION_REVISION 1  
 
 #define VERSION          VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD, VERSION_REVISION
 #define VERSION_STRING   ver_str(VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD, VERSION_REVISION)
diff --git a/inc/main.h b/inc/main.h
index b245998..5080845 100644
--- a/inc/main.h
+++ b/inc/main.h
@@ -131,7 +131,7 @@ typedef struct IDirectDrawImpl
     BOOL hidecursor;
     BOOL accurateTimers;
     BOOL resizable;
-    BOOL ddrawrefcount0;
+    BOOL tm2hack;
     BOOL sierrahack;
     BOOL bnetActive;
     BOOL bnetWasFullscreen;
diff --git a/src/main.c b/src/main.c
index bb29ac2..36c7911 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1837,10 +1837,11 @@ ULONG __stdcall ddraw_Release(IDirectDrawImpl *This)
     }
     else
     {
-        This->lpVtbl->SetDisplayMode1 = ddraw_SetDisplayMode;
+        if (!This->tm2hack)
+            This->lpVtbl->SetDisplayMode1 = ddraw_SetDisplayMode;
     }
 
-    if (This->ddrawrefcount0)
+    if (This->tm2hack)
         return 0;
 
     return This->Ref;
diff --git a/src/settings.c b/src/settings.c
index b04f439..ce0d2fc 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -43,7 +43,7 @@ void Settings_Load()
     ddraw->vhack = GetBool("vhack", FALSE);
     ddraw->accurateTimers = GetBool("accuratetimers", FALSE);
     ddraw->resizable = GetBool("resizable", TRUE);
-    ddraw->ddrawrefcount0 = GetBool("ddrawrefcount0", FALSE); // Twisted Metal 2 DirectDraw Error hack
+    ddraw->tm2hack = GetBool("tm2hack", FALSE); // Twisted Metal 2 hack
     ddraw->sierrahack = GetBool("sierrahack", FALSE); // Sierra Caesar III, Pharaoh, and Zeus hack
 
     WindowRect.right = GetInt("width", 0);
@@ -452,7 +452,7 @@ static void CreateSettingsIni()
             "renderer=gdi\n"
             "maxgameticks=60\n"
             "handlemouse=false\n"
-            "ddrawrefcount0=true\n"
+            "tm2hack=true\n"
             "\n"
             "; Caesar III\n"
             "[c3]\n"