diff Render.cpp @ 2410:2d3c3d1dff0c

added RenderStruct.h
author Ritor1
date Tue, 15 Jul 2014 15:44:45 +0600
parents 2fe8feb3dcd1
children e2d352b3a0a5
line wrap: on
line diff
--- a/Render.cpp	Mon Jul 14 19:48:47 2014 +0600
+++ b/Render.cpp	Tue Jul 15 15:44:45 2014 +0600
@@ -1333,9 +1333,9 @@
   //IDirectDraw4 *v9; // eax@16
   //IDirectDraw4 *v10; // eax@20
   //IDirectDraw4 *v13; // eax@35
-  const char *v23; // [sp-4h] [bp-DCh]@9
-  const char *v24; // [sp-4h] [bp-DCh]@13
-  const char *v25; // [sp-4h] [bp-DCh]@19
+  //const char *v23; // [sp-4h] [bp-DCh]@9
+  //const char *v24; // [sp-4h] [bp-DCh]@13
+  //const char *v25; // [sp-4h] [bp-DCh]@19
   DWORD v26; // [sp-4h] [bp-DCh]@30
   DDSCAPS2 v27; // [sp+Ch] [bp-CCh]@37
   DDSURFACEDESC2 ddsd2; // [sp+1Ch] [bp-BCh]@11
@@ -1370,9 +1370,7 @@
   {
     if (FAILED(pHost->SetCooperativeLevel(hWnd, DDSCL_MULTITHREADED | DDSCL_NORMAL)))
     {
-      v23 = "Init - Failed to set cooperative level.\n";
-      sprintf(pErrorMessage, v23);
-LABEL_65:
+      sprintf(pErrorMessage, "Init - Failed to set cooperative level.\n");
       if (pHost)
       {
         pHost->Release();
@@ -1390,8 +1388,18 @@
       pHost->GetDisplayMode(&ddsd2);
       if ( FORCE_16_BITS && ddsd2.ddpfPixelFormat.dwRGBBitCount != 16 )
       {
-        v24 = "Init - Desktop isn't in 16 bit mode.\n";
-        goto LABEL_14;
+        sprintf(pErrorMessage, "Init - Desktop isn't in 16 bit mode.\n");
+        if (pFrontBuffer)
+        {
+          pFrontBuffer->Release();
+          pFrontBuffer = 0;
+        }
+        if (pHost)
+        {
+          pHost->Release();
+          pHost = 0;
+        }
+        return 0;
       }
 
       ddsd2.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT;
@@ -1400,20 +1408,38 @@
       ddsd2.dwHeight = game_height;
       if (pHost->CreateSurface(&ddsd2, &pBackBuffer, 0) )
       {
-        v24 = "Init - Failed to create back buffer.\n";
-LABEL_14:
-        sprintf(pErrorMessage, v24);
+        sprintf(pErrorMessage, "Init - Failed to create back buffer.\n");
         if (pFrontBuffer)
         {
           pFrontBuffer->Release();
           pFrontBuffer = 0;
         }
-        goto LABEL_65;
+        if (pHost)
+        {
+          pHost->Release();
+          pHost = 0;
+        }
+        return 0;
       }
       if ( pHost->CreateClipper(0, &v30, 0) )
       {
-        v25 = "Init - Failed to create clipper.\n";
-        goto LABEL_45;
+        sprintf(pErrorMessage, "Init - Failed to create clipper.\n");
+        if (pBackBuffer)
+        {
+          pBackBuffer->Release();
+          pBackBuffer = 0;
+        }
+        if (pFrontBuffer)
+        {
+          pFrontBuffer->Release();
+          pFrontBuffer= 0;
+        }
+        if (pHost)
+        {
+          pHost->Release();
+          pHost = 0;
+        }
+        return 0;
       }
       v30->SetHWnd(0, hWnd);
       pFrontBuffer->SetClipper(v30);
@@ -1431,7 +1457,25 @@
       if ( pDirect3D->EnumZBufferFormats(*pAvailableDevices[uDeviceID].pGUID,
              (HRESULT (__stdcall *)(DDPIXELFORMAT *, void *))D3DZBufferFormatEnumerator,
              &ddsd2.ddpfPixelFormat) )
-        goto LABEL_21;
+	  {
+        sprintf(pErrorMessage, "Init - Failed to enumerate Z buffer formats.\n");
+        if (pBackBuffer)
+        {
+          pBackBuffer->Release();
+          pBackBuffer = 0;
+        }
+        if (pFrontBuffer)
+        {
+          pFrontBuffer->Release();
+          pFrontBuffer= 0;
+        }
+        if (pHost)
+        {
+          pHost->Release();
+          pHost = 0;
+        }
+        return 0;	  
+	  }
       if ( uDeviceID == 2 || uDeviceID == 3 )
         ddsd2.ddsCaps.dwCaps |= DDSCAPS_SYSTEMMEMORY;
 
@@ -1439,10 +1483,7 @@
       {
         if ( !pBackBuffer->AddAttachedSurface(pZBuffer) )
         {
-          if ( !pDirect3D->CreateDevice(*pAvailableDevices[uDeviceID].pGUID,
-                  pBackBuffer,
-                  &pDevice,
-                  0) )
+          if ( !pDirect3D->CreateDevice(*pAvailableDevices[uDeviceID].pGUID, pBackBuffer, &pDevice, 0) )
           {
             memset(&d3dvp2, 0, sizeof(D3DVIEWPORT2));
             d3dvp2.dvClipWidth = 2.0;
@@ -1452,30 +1493,82 @@
             d3dvp2.dvMinZ = 0.0;
             goto LABEL_54;
           }
-LABEL_51:
           sprintf(pErrorMessage, "Init - Failed to create D3D device.\n");
           if (pDirect3D)
           {
             pDirect3D->Release();
             pDirect3D = 0;
           }
-          goto LABEL_59;
+          if (pZBuffer)
+          {
+            pZBuffer->Release();
+            pZBuffer = 0;
+          }
+          if (pBackBuffer)
+          {
+            pBackBuffer->Release();
+            pBackBuffer = 0;
+          }
+          if (pFrontBuffer)
+          {
+            pFrontBuffer->Release();
+            pFrontBuffer= 0;
+          }
+          if (pHost)
+          {
+            pHost->Release();
+            pHost = 0;
+          }
+          return 0;
         }
-LABEL_48:
         sprintf(pErrorMessage, "Init - Failed to attach z-buffer to back buffer.\n");
         if (pZBuffer)
         {
           pZBuffer->Release();
           pZBuffer = 0;
         }
-        goto LABEL_61;
-      }
-      goto LABEL_44;
-    }
-LABEL_36:
-    v23 = "Init - Failed to create front buffer.\n";
-    sprintf(pErrorMessage, v23);
-    goto LABEL_65;
+        if (pBackBuffer)
+        {
+          pBackBuffer->Release();
+          pBackBuffer = 0;
+        }
+        if (pFrontBuffer)
+        {
+          pFrontBuffer->Release();
+          pFrontBuffer= 0;
+        }
+        if (pHost)
+        {
+          pHost->Release();
+          pHost = 0;
+        }
+        return 0;
+      }
+      sprintf(pErrorMessage, "Init - Failed to create z-buffer.\n");
+      if (pBackBuffer)
+      {
+        pBackBuffer->Release();
+        pBackBuffer = 0;
+      }
+      if (pFrontBuffer)
+      {
+        pFrontBuffer->Release();
+        pFrontBuffer= 0;
+      }
+      if (pHost)
+      {
+        pHost->Release();
+        pHost = 0;
+      }
+      return 0;
+    }
+    sprintf(pErrorMessage, "Init - Failed to create front buffer.\n");
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;
   }
   if ( uDeviceID == 1 )
     v26 = 1045;
@@ -1483,15 +1576,23 @@
     v26 = 1041;
   if (pHost->SetCooperativeLevel(hWnd, v26) )
   {
-    v23 = "Init - Failed to set cooperative level.\n";
-    sprintf(pErrorMessage, v23);
-    goto LABEL_65;
+    sprintf(pErrorMessage, "Init - Failed to set cooperative level.\n");
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;
   }
   if (pHost->SetDisplayMode(window->GetWidth(), window->GetHeight(), 16, 0, 0) )
   {
-    v23 = "Init - Failed to set display mode.\n";
-    sprintf(pErrorMessage, v23);
-    goto LABEL_65;
+    sprintf(pErrorMessage, "Init - Failed to set display mode.\n");
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;
   }
 
   memset(&ddsd2, 0, sizeof(DDSURFACEDESC2));
@@ -1500,7 +1601,15 @@
   ddsd2.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_3DDEVICE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
   ddsd2.dwBackBufferCount = 1;
   if ( pHost->CreateSurface(&ddsd2, &pFrontBuffer, 0) )
-    goto LABEL_36;
+  {
+    sprintf(pErrorMessage, "Init - Failed to create front buffer.\n");
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;  
+  }
   //a3a = &pBackBuffer;
   //v14 = *v34;
   memset(&v27, 0, sizeof(DDSCAPS2));
@@ -1510,8 +1619,23 @@
   pHost->QueryInterface(IID_IDirect3D3, (LPVOID *)&pDirect3D);
   if (FAILED(pFrontBuffer->GetAttachedSurface(&v27, &pBackBuffer)))
   {
-    v25 = "Init - Failed to get D3D interface.\n";
-    goto LABEL_45;
+    sprintf(pErrorMessage, "Init - Failed to get D3D interface.\n");
+    if (pBackBuffer)
+    {
+      pBackBuffer->Release();
+      pBackBuffer = 0;
+    }
+    if (pFrontBuffer)
+    {
+      pFrontBuffer->Release();
+      pFrontBuffer= 0;
+    }
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;
   }
 
   ddsd2.dwFlags = DDSD_CAPS | DDSD_WIDTH | DDSD_HEIGHT | DDSD_PIXELFORMAT;
@@ -1522,41 +1646,103 @@
          (HRESULT (__stdcall *)(DDPIXELFORMAT *, void *))D3DZBufferFormatEnumerator,
          &ddsd2.ddpfPixelFormat) )
   {
-LABEL_21:
-    v25 = "Init - Failed to enumerate Z buffer formats.\n";
-    goto LABEL_45;
+    sprintf(pErrorMessage, "Init - Failed to enumerate Z buffer formats.\n");
+    if (pBackBuffer)
+    {
+      pBackBuffer->Release();
+      pBackBuffer = 0;
+    }
+    if (pFrontBuffer)
+    {
+      pFrontBuffer->Release();
+      pFrontBuffer= 0;
+    }
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;
   }
   if ( uDeviceID == 2 || uDeviceID == 3 )
     BYTE1(ddsd2.ddsCaps.dwCaps) |= 8u;
   //uDeviceIDa = &pZBuffer;
   if (pHost->CreateSurface(&ddsd2, &pZBuffer, 0) )
   {
-LABEL_44:
-    v25 = "Init - Failed to create z-buffer.\n";
-LABEL_45:
-    sprintf(pErrorMessage, v25);
+    sprintf(pErrorMessage, "Init - Failed to create z-buffer.\n");
+    if (pBackBuffer)
+    {
+      pBackBuffer->Release();
+      pBackBuffer = 0;
+    }
+    if (pFrontBuffer)
+    {
+      pFrontBuffer->Release();
+      pFrontBuffer= 0;
+    }
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;
+  }
+  if (pBackBuffer->AddAttachedSurface(pZBuffer))
+  {
+    sprintf(pErrorMessage, "Init - Failed to attach z-buffer to back buffer.\n");
+    if (pZBuffer)
+    {
+      pZBuffer->Release();
+      pZBuffer = 0;
+    }
     if (pBackBuffer)
     {
       pBackBuffer->Release();
       pBackBuffer = 0;
     }
-LABEL_63:
-    //v19 = &pFrontBuffer;
     if (pFrontBuffer)
     {
       pFrontBuffer->Release();
       pFrontBuffer= 0;
     }
-    goto LABEL_65;
-  }
-  if (pBackBuffer->AddAttachedSurface(pZBuffer))
-    goto LABEL_48;
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;  
+  }
   //v33 = &pDevice;
-  if (pDirect3D->CreateDevice(*pAvailableDevices[uDeviceID].pGUID,
-         pBackBuffer,
-         &pDevice,
-         0) )
-    goto LABEL_51;
+  if (pDirect3D->CreateDevice(*pAvailableDevices[uDeviceID].pGUID, pBackBuffer, &pDevice, 0) )
+  {
+    sprintf(pErrorMessage, "Init - Failed to create D3D device.\n");
+    if (pDirect3D)
+    {
+      pDirect3D->Release();
+      pDirect3D = 0;
+    }
+    if (pZBuffer)
+    {
+      pZBuffer->Release();
+      pZBuffer = 0;
+    }
+    if (pBackBuffer)
+    {
+      pBackBuffer->Release();
+      pBackBuffer = 0;
+    }
+    if (pFrontBuffer)
+    {
+      pFrontBuffer->Release();
+      pFrontBuffer= 0;
+    }
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;  
+  }
   memset(&d3dvp2, 0, sizeof(D3DVIEWPORT2));
   d3dvp2.dvClipWidth = 2.0;
   d3dvp2.dvClipY = 1.0;
@@ -1584,19 +1770,27 @@
       pDirect3D->Release();
       pDirect3D = 0;
     }
-LABEL_59:
     if (pZBuffer)
     {
       pZBuffer->Release();
       pZBuffer = 0;
     }
-LABEL_61:
     if (pBackBuffer)
     {
       pBackBuffer->Release();
       pBackBuffer = 0;
     }
-    goto LABEL_63;
+    if (pFrontBuffer)
+    {
+      pFrontBuffer->Release();
+      pFrontBuffer= 0;
+    }
+    if (pHost)
+    {
+      pHost->Release();
+      pHost = 0;
+    }
+    return 0;
   }
 
   pDevice->AddViewport(pViewport);
@@ -2769,26 +2963,26 @@
 //----- (0049FD3A) --------------------------------------------------------
 void Render::_49FD3A_fullscreen()
 {
-  Render *v2; // esi@1
-  IDirectDrawSurface4 *v3; // eax@6
-  IDirectDrawSurface4 *v4; // ST0C_4@6
+  //Render *v2; // esi@1
+  //IDirectDrawSurface4 *v3; // eax@6
+  //IDirectDrawSurface4 *v4; // ST0C_4@6
   RECT v5; // [sp+8h] [bp-10h]@6
 
-  Render* a1 = this;
-  v2 = a1;
-  if ( a1->pRenderD3D )
+  //Render* a1 = this;
+  //v2 = this;
+  if ( this->pRenderD3D )
   {
     if (pFrontBuffer4->IsLost() == DDERR_SURFACELOST)
       pFrontBuffer4->Restore();
     if (pBackBuffer4->IsLost() == DDERR_SURFACELOST)
       pBackBuffer4->Restore();
-    v3 = v2->pBackBuffer4;
-    v4 = v2->pFrontBuffer4;
+    //v3 = this->pBackBuffer4;
+    //v4 = this->pFrontBuffer4;
     v5.top = 0;
     v5.bottom = window->GetHeight();
     v5.left = 0;
     v5.right = window->GetWidth();
-    v3->BltFast(0, 0, v4, &v5, 16u);
+    this->pBackBuffer4->BltFast(0, 0, this->pFrontBuffer4, &v5, 16);
   }
 }
 
@@ -2805,7 +2999,7 @@
 //----- (0049FE05) --------------------------------------------------------
 void Render::Release()
 {
-  Render *v1; // esi@1
+  //Render *v1; // esi@1
   //RenderD3D *v2; // ecx@1
   //char v3; // zf@4
   //void *v4; // ebx@6
@@ -2822,22 +3016,22 @@
 //  unsigned __int16 **v15; // ebx@28
 //  void **v16; // esi@29
 
-  v1 = this;
+ // v1 = this;
   if (pRenderD3D)
   {
-    if ( v1->using_software_screen_buffer )
+    if ( this->using_software_screen_buffer )
     {
       pRenderD3D->ClearTarget(true, 0, false, 1.0);
       pRenderD3D->Present(0);
       pRenderD3D->ClearTarget(true, 0, false, 1.0);
     }
-    //v1->pColorKeySurface4 = 0;
-    v1->pBackBuffer4 = nullptr;
-    v1->pFrontBuffer4 = nullptr;
-    v1->pDirectDraw4 = nullptr;
-    delete [] v1->pTargetSurface_unaligned;
-    v1->pTargetSurface = nullptr;
-    v1->pTargetSurface_unaligned = nullptr;
+    //this->pColorKeySurface4 = 0;
+    this->pBackBuffer4 = nullptr;
+    this->pFrontBuffer4 = nullptr;
+    this->pDirectDraw4 = nullptr;
+    delete [] this->pTargetSurface_unaligned;
+    this->pTargetSurface = nullptr;
+    this->pTargetSurface_unaligned = nullptr;
     if (pRenderD3D)
     {
       pRenderD3D->Release();
@@ -2850,72 +3044,72 @@
   /*{
     if ( bWinNT4_0 == 1 )
     {
-      v5 = (IDirectDraw *)v1->pDirectDraw2;
+      v5 = (IDirectDraw *)this->pDirectDraw2;
       if ( !v5 )
         return;
-      v5->SetCooperativeLevel(v1->hWnd, 8u);
-      v1->pDirectDraw2->FlipToGDISurface();
-      v6 = v1->pSomeSurface2;
+      v5->SetCooperativeLevel(this->hWnd, 8u);
+      this->pDirectDraw2->FlipToGDISurface();
+      v6 = this->pSomeSurface2;
       if ( v6 )
       {
         v6->Release();
-        v1->pSomeSurface2 = 0;
-      }
-      v7 = v1->pBackBuffer2;
+        this->pSomeSurface2 = 0;
+      }
+      v7 = this->pBackBuffer2;
       if ( v7 )
       {
         v7->Release();
-        v1->pBackBuffer2 = 0;
-      }
-      v8 = v1->pFrontBuffer2;
+        this->pBackBuffer2 = 0;
+      }
+      v8 = this->pFrontBuffer2;
       if ( v8 )
       {
         v8->Release();
-        v1->pFrontBuffer2 = 0;
-      }
-      v9 = v1->pDirectDraw2;
+        this->pFrontBuffer2 = 0;
+      }
+      v9 = this->pDirectDraw2;
       if ( v9 )
       {
         v9->Release();
-        v1->pDirectDraw2 = 0;
+        this->pDirectDraw2 = 0;
       }
     }
     else
     {
-      v10 = v1->pDirectDraw4;
+      v10 = this->pDirectDraw4;
       if ( !v10 )
         return;
-      v10->SetCooperativeLevel(v1->hWnd, 1032u);
-      v1->pDirectDraw4->FlipToGDISurface();
-      v11 = v1->pColorKeySurface4;
+      v10->SetCooperativeLevel(this->hWnd, 1032u);
+      this->pDirectDraw4->FlipToGDISurface();
+      v11 = this->pColorKeySurface4;
       if ( v11 )
       {
         v11->Release();
-        v1->pColorKeySurface4 = 0;
-      }
-      v12 = v1->pBackBuffer4;
+        this->pColorKeySurface4 = 0;
+      }
+      v12 = this->pBackBuffer4;
       if ( v12 )
       {
         v12->Release();
-        v1->pBackBuffer4 = 0;
-      }
-      v13 = v1->pFrontBuffer4;
+        this->pBackBuffer4 = 0;
+      }
+      v13 = this->pFrontBuffer4;
       if ( v13 )
       {
         v13->Release();
-        v1->pFrontBuffer4 = 0;
-      }
-      v14 = v1->pDirectDraw4;
+        this->pFrontBuffer4 = 0;
+      }
+      v14 = this->pDirectDraw4;
       if ( v14 )
       {
         v14->Release();
-        v1->pDirectDraw4 = 0;
-      }
-    }
-    v15 = &v1->pTargetSurface;
-    if ( v1->pTargetSurface )
-    {
-      v16 = (void **)&v1->ptr_400E8;
+        this->pDirectDraw4 = 0;
+      }
+    }
+    v15 = &this->pTargetSurface;
+    if ( this->pTargetSurface )
+    {
+      v16 = (void **)&this->ptr_400E8;
       free(*v16);
       *v15 = 0;
       *v16 = 0;
@@ -2923,9 +3117,6 @@
   }*/
 }
 
-
-
-
 void Present32(unsigned __int32 *src, unsigned int src_pitch,
                unsigned __int32 *dst, unsigned int dst_pitch)
 {
@@ -3136,12 +3327,12 @@
   //HWND v3; // ebx@1
   //void *v4; // eax@2
   //RenderD3D *v5; // eax@3
-  unsigned int v6; // edx@5
+  //unsigned int v6; // edx@5
   RenderD3D__DevInfo *v7; // ecx@5
   bool v8; // eax@6
-  RenderD3D *v9; // ecx@13
+  //RenderD3D *v9; // ecx@13
   unsigned int v10; // eax@13
-  RenderD3D *v11; // eax@25
+  //RenderD3D *v11; // eax@25
 //  HRESULT v12; // eax@25
   int v13; // ecx@25
   int v14; // eax@27
@@ -3157,7 +3348,7 @@
   DDSURFACEDESC2 pDesc; // [sp+108h] [bp-204h]@40
   D3DDEVICEDESC halCaps; // [sp+184h] [bp-188h]@25
 //  DDSURFACEDESC2 ddsd2; // [sp+280h] [bp-8Ch]@38
-  void *v28; // [sp+2FCh] [bp-10h]@2
+  //void *v28; // [sp+2FCh] [bp-10h]@2
   int v29; // [sp+308h] [bp-4h]@2
 
   __debugbreak(); // Nomad
@@ -3185,20 +3376,16 @@
   else
   {*/
     pRenderD3D = new RenderD3D;
-    v28 = pRenderD3D;
-    v6 = uDesiredDirect3DDevice;
+    //v28 = pRenderD3D;
+    //v6 = uDesiredDirect3DDevice;
     v29 = -1;
     v7 = pRenderD3D->pAvailableDevices;
-    if ( v7[v6].bIsDeviceCompatible )
-    {
-      v8 = pRenderD3D->CreateDevice(v6, /*0*/true, window);
-    }
+    if ( pRenderD3D->pAvailableDevices[uDesiredDirect3DDevice].bIsDeviceCompatible )
+      v8 = pRenderD3D->CreateDevice(uDesiredDirect3DDevice, /*0*/true, window);
     else
     {
       if ( v7[1].bIsDeviceCompatible )
-      {
         v8 = pRenderD3D->CreateDevice(1, /*0*/true, window);
-      }
       else
       {
         if ( !v7->bIsDeviceCompatible )
@@ -3210,10 +3397,10 @@
     if ( !v8 )
       Error("D3Drend->Init failed.");
 
-    v9 = pRenderD3D;
-    pBackBuffer4 = v9->pBackBuffer;
-    pFrontBuffer4 = v9->pFrontBuffer;
-    pDirectDraw4 = v9->pHost;
+    //v9 = pRenderD3D;
+    pBackBuffer4 = pRenderD3D->pBackBuffer;
+    pFrontBuffer4 = pRenderD3D->pFrontBuffer;
+    pDirectDraw4 = pRenderD3D->pHost;
     v10 = pRenderD3D->GetDeviceCaps();
     if ( v10 & 1 )
     {
@@ -3260,9 +3447,9 @@
     memset(&halCaps, 0, 0xFCu);
     halCaps.dwSize = 252;
     memset(&refCaps, 0, 0xFCu);
-    v11 = pRenderD3D;
+    //v11 = pRenderD3D;
     refCaps.dwSize = 252;
-    ErrD3D(v11->pDevice->GetCaps(&halCaps, &refCaps));
+    ErrD3D(pRenderD3D->pDevice->GetCaps(&halCaps, &refCaps));
     v13 = halCaps.dwMinTextureWidth;
     if ( (unsigned int)halCaps.dwMinTextureWidth >= halCaps.dwMinTextureHeight )
       v13 = halCaps.dwMinTextureHeight;
@@ -3342,7 +3529,7 @@
     using_software_screen_buffer = v15;
   //}
   bWindowMode = 0;
-  pParty->uFlags |= 2u;
+  pParty->uFlags |= 2;
   pViewport->SetFOV(flt_6BE3A0 * 65536.0f);
   return v15 != 0;
 }
@@ -3995,7 +4182,7 @@
 //----- (004A121C) --------------------------------------------------------
 void Render::CreateFrontBuffer()
 {
-  Render *v1; // esi@1
+  //Render *v1; // esi@1
   IDirectDraw *pDD; // eax@3
   IDirectDrawSurface **pOutSurf; // esi@3
   struct _DDSURFACEDESC *v4; // edx@3
@@ -4004,18 +4191,18 @@
   unsigned int v7; // [sp-4h] [bp-88h]@3
   DDSURFACEDESC2 a2; // [sp+4h] [bp-80h]@3
 
-  v1 = this;
+  //v1 = this;
   //if (pVersion->pVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT ||
       //pVersion->pVersionInfo.dwMajorVersion != 4 )
   {
     memset(&a2, 0, 0x7Cu);
-    pDD = (IDirectDraw *)v1->pDirectDraw4;
+    pDD = (IDirectDraw *)this->pDirectDraw4;
     a2.dwSize = 124;
     a2.dwFlags = 1;
     v7 = 0;
     a2.ddsCaps.dwCaps = 512;
     v6 = 2357;
-    pOutSurf = (IDirectDrawSurface **)&v1->pFrontBuffer4;
+    pOutSurf = (IDirectDrawSurface **)&this->pFrontBuffer4;
     v4 = (struct _DDSURFACEDESC *)&a2;
   }
   /*else
@@ -4036,7 +4223,7 @@
 //----- (004A12CD) --------------------------------------------------------
 void Render::CreateBackBuffer()
 {
-  Render *v1; // esi@1
+  //Render *v1; // esi@1
   IDirectDraw *v2; // eax@3
   IDirectDrawSurface **ppBackBuffer; // esi@3
   struct _DDSURFACEDESC *v4; // edx@3
@@ -4045,12 +4232,12 @@
   unsigned int v7; // [sp-4h] [bp-88h]@3
   DDSURFACEDESC2 a2; // [sp+4h] [bp-80h]@3
 
-  v1 = this;
+  //v1 = this;
   //if (pVersion->pVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT ||
     //  pVersion->pVersionInfo.dwMajorVersion != 4 )
   {
     memset(&a2, 0, 0x7Cu);
-    v2 = (IDirectDraw *)v1->pDirectDraw4;
+    v2 = (IDirectDraw *)this->pDirectDraw4;
     a2.dwSize = 124;
     a2.dwFlags = 7;
     v7 = 0;
@@ -4058,7 +4245,7 @@
     a2.dwWidth = window->GetWidth();
     a2.dwHeight = window->GetHeight();
     v6 = 2387;
-    ppBackBuffer = (IDirectDrawSurface **)&v1->pBackBuffer4;
+    ppBackBuffer = (IDirectDrawSurface **)&this->pBackBuffer4;
     v4 = (struct _DDSURFACEDESC *)&a2;
   }
   /*else
@@ -4081,7 +4268,7 @@
 //----- (004A139A) --------------------------------------------------------
 void Render::CreateDirectDrawPrimarySurface()
 {
-  Render *v1; // esi@1
+  //Render *v1; // esi@1
   //int v2; // ebx@3
 //  IDirectDraw2 *v3; // eax@3
 //  HRESULT v4; // eax@3
@@ -4100,24 +4287,21 @@
   DDSCAPS2 v17; // [sp+88h] [bp-18h]@4
 //  int a4; // [sp+98h] [bp-8h]@3
 
-  v1 = this;
+  //v1 = this;
   //if (pVersion->pVersionInfo.dwPlatformId != VER_PLATFORM_WIN32_NT ||
       //pVersion->pVersionInfo.dwMajorVersion != 4 )
   {
     //v2 = 0;
     //this->field_4004C = 1;
     memset(&ddsd2, 0, 0x7Cu);
-    v7 = v1->pDirectDraw4;
+    v7 = this->pDirectDraw4;
     ddsd2.dwBackBufferCount = 1;
     ddsd2.dwSize = 0x7Cu;
     ddsd2.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
     ddsd2.ddsCaps.dwCaps = DDSCAPS_COMPLEX | DDSCAPS_FLIP | DDSCAPS_3DDEVICE | DDSCAPS_PRIMARYSURFACE;
-    ErrD3D(v7->CreateSurface(
-           &ddsd2,
-           &pFrontBuffer4,
-           0));
-    pFrontBuffer = (IDirectDrawSurface *)v1->pFrontBuffer4;
-    ppBackBuffer = (IDirectDrawSurface **)&v1->pBackBuffer4;
+    ErrD3D(v7->CreateSurface(&ddsd2, &pFrontBuffer4, 0));
+    pFrontBuffer = (IDirectDrawSurface *)this->pFrontBuffer4;
+    ppBackBuffer = (IDirectDrawSurface **)&this->pBackBuffer4;
   }
   /*else
   {