diff LightmapBuilder.cpp @ 45:bcc051713d20

BLV render & seffects
author Nomad
date Mon, 22 Oct 2012 20:45:14 +0200
parents e62134245ab0
children fde5c5acb66e
line wrap: on
line diff
--- a/LightmapBuilder.cpp	Sun Oct 21 23:26:23 2012 +0600
+++ b/LightmapBuilder.cpp	Mon Oct 22 20:45:14 2012 +0200
@@ -2,6 +2,7 @@
 #include "Game.h"
 #include "stru314.h"
 #include "Outdoor.h"
+#include "Log.h"
 
 #include "mm7_data.h"
 
@@ -203,7 +204,7 @@
 }
 
 //----- (0045BE86) --------------------------------------------------------
-char LightmapBuilder::_45BE86_build_light_polygon(int arg0, float a4, int arg8, float a5, int uLightType, stru314 *a7, signed int a2, RenderVertexSoft *a9, char uClipFlag)
+char LightmapBuilder::_45BE86_build_light_polygon(int arg0, float a4, unsigned int uColorMask, float a5, int uLightType, stru314 *a7, signed int a2, RenderVertexSoft *a9, char uClipFlag)
 {
   LightmapBuilder *v10; // esi@1
   Lightmap *v11; // edi@3
@@ -279,13 +280,13 @@
   v10->flt_3C8C28 = v13;
   v14 = a7;
   v66 = 1.0 / a4;
-  v10->flt_3C8C2C = 1.0 - (a4 - v13) * v66;
+  v10->flt_3C8C2C_lightmaps_brightness = 1.0 - (a4 - v13) * v66;
   v11->field_C08 = (signed __int64)((double)*(signed int *)arg0 - a5 * v14->field_4.x);
   v11->field_C0A = (signed __int64)((double)*(signed int *)(arg0 + 4) - a5 * v14->field_4.y);
   v15 = a4;
   v11->field_C0C = (signed __int64)((double)*(signed int *)(arg0 + 8) - a5 * v14->field_4.z);
   pLightmapVertices = v11->pVertices;
-  v17 = v15 * v10->flt_3C8C2C;
+  v17 = v15 * v10->flt_3C8C2C_lightmaps_brightness;
   pLightmapVertices_ = (int)v11->pVertices;
   v10->flt_3C8C30 = v17;
   v10->flt_3C8C0C = v17 * v14->field_10.x;
@@ -337,7 +338,7 @@
     *((float *)v19 - 11) = *((float *)v19 - 11) - v24 * v14->field_4.z;
   }
   while ( v22 );
-  v11->field_C10 = arg8;
+  v11->uColorMask = uColorMask;
   v11->uNumVertices = 4;
   if ( pGame->uFlags2 & 4 )
   {
@@ -347,16 +348,16 @@
     LODWORD(a5) = v11->field_C0A;
     v27 = v11->field_C08;
     a5 = (double)SLODWORD(a5);
-    arg8 = v27;
+    uColorMask = v27;
     v28 = (double)v27;
     v61 = a5;
     v60 = v28;
     v62 = v26;
-    *(float *)&arg8 = (double)*(signed int *)(arg0 + 8);
+    *(float *)&uColorMask = (double)*(signed int *)(arg0 + 8);
     arg0b = (double)*(signed int *)(arg0 + 4);
     v29 = (double)*(signed int *)v25 - v28;
     v30 = arg0b - a5;
-    a5 = *(float *)&arg8 - v26;
+    a5 = *(float *)&uColorMask - v26;
     a1.x = v29;
     a1.z = a5;
     a1.y = v30;
@@ -369,10 +370,10 @@
     arg0c = floorf(v61 + 0.5f);
     //v64 = v60 + 6.7553994e15;
     //arg8 = LODWORD(v64);
-    arg8 = floorf(v60 + 0.5f);
+    uColorMask = floorf(v60 + 0.5f);
     auto v64 /*HIDWORD(v64)*/ = abs(*(int *)(v25 + 8) - (signed)LODWORD(a5));
     arg0a = abs(*(int *)(v25 + 4) - arg0c);
-    v31 = abs(*(int *)v25 - arg8);
+    v31 = abs(*(int *)v25 - (int)uColorMask);
     LODWORD(a5) = v31;
     v32 = arg0a;
     v33 = v64;//HIDWORD(v64);
@@ -422,11 +423,11 @@
     }
     v14 = a7;
     pLightmapVertices = (RenderVertexSoft *)pLightmapVertices_;
-    v11->flt_C14 = v40 - a4 * v40;
+    v11->fBrightness = v40 - a4 * v40;
   }
   else
   {
-    v11->flt_C14 = v10->flt_3C8C2C;
+    v11->fBrightness = v10->flt_3C8C2C_lightmaps_brightness;
   }
   v41 = v14->field_4.z;
   v42 = pGame->pStru9Instance;
@@ -1783,7 +1784,7 @@
   char v3; // zf@1
   IDirect3DDevice3 *v4; // eax@2
   HRESULT v5; // eax@2
-  char *v6; // eax@2
+  //char *v6; // eax@2
   struct IDirect3DTexture2 *v7; // edi@4
   HRESULT v8; // eax@8
   HRESULT v9; // eax@8
@@ -1800,13 +1801,13 @@
   HRESULT v20; // eax@21
   IDirect3DDevice3 *v21; // eax@21
   HRESULT v22; // eax@21
-  IDirect3DDevice3 *v23; // eax@23
+  //IDirect3DDevice3 *v23; // eax@23
   std::string v25; // [sp+44h] [bp-44h]@12
   signed int v26; // [sp+48h] [bp-40h]@21
   signed int v27; // [sp+4Ch] [bp-3Ch]@21
   Lightmap *v28; // [sp+50h] [bp-38h]@2
   int v29; // [sp+54h] [bp-34h]@2
-  float v30; // [sp+58h] [bp-30h]@2
+  //float v30; // [sp+58h] [bp-30h]@2
   int arg4; // [sp+68h] [bp-20h]@8
   float v32; // [sp+6Ch] [bp-1Ch]@8
   float v33; // [sp+70h] [bp-18h]@8
@@ -1820,13 +1821,13 @@
   LODWORD(v38) = (int)this;
   if ( !v3 )
   {
-    v30 = 0.0;
+    //v30 = 0.0;
     //v4 = pRenderer->pRenderD3D->pDevice;
     ErrD3D(v4->SetTextureStageState(0, D3DTSS_ADDRESS, 3u));
-    v6 = (char *)stru_69BD44.c_str();
-    if ( !stru_69BD44.c_str() )
-      v6 = (char *)&dword_4D86F0;
-    v7 = pGame->pIndoorCameraD3D->LoadTextureAndGetHardwarePtr(v6);
+    //v6 = (char *)stru_69BD44.c_str();
+    //if ( !stru_69BD44.c_str() )
+    //  v6 = (char *)&dword_4D86F0;
+    v7 = pGame->pIndoorCameraD3D->LoadTextureAndGetHardwarePtr("effpar03");
     if ( pRenderer->bUsingSpecular )
       pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 0);
     if ( !byte_4D864C || !(pGame->uFlags & 1) )
@@ -1892,253 +1893,134 @@
       //LODWORD(v30) = 1;
       //v29 = 28;
       //v28 = (Lightmap *)pRenderer->pRenderD3D->pDevice;
-      pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 1);
-      v30 = pRenderer->uFogColor;
-      v23 = pRenderer->pRenderD3D->pDevice;
+      ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 1));
+      //v30 = pRenderer->uFogColor;
+      //v23 = pRenderer->pRenderD3D->pDevice;
       //v29 = 34;
       //v28 = (Lightmap *)v23;
-      v23->SetRenderState(D3DRENDERSTATE_FOGCOLOR, LODWORD(pRenderer->uFogColor));
+      ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGCOLOR, pRenderer->uFogColor));
       //v28 = (Lightmap *)pRenderer->pRenderD3D->pDevice;
-      pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGTABLEMODE, false);
+      ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGTABLEMODE, false));
     }
   }
   return 1;
 }
-// 4D864C: using guessed type char byte_4D864C;
-// 4D86F0: using guessed type int dword_4D86F0;
+
 
 //----- (0045DA56) --------------------------------------------------------
-bool LightmapBuilder::DrawLightmaps2(float a2)
+bool LightmapBuilder::DrawLightmaps2(float z_bias)
 {
-  LightmapBuilder *v2; // esi@1
-  bool result; // eax@1
-  signed int v4; // edi@2
-  std::string v5; // [sp-14h] [bp-3Ch]@5
-  const char *v6; // [sp-4h] [bp-2Ch]@5
-  int v7; // [sp+0h] [bp-28h]@5
   Vec3_float_ v; // [sp+Ch] [bp-1Ch]@2
-  std::string *v9; // [sp+18h] [bp-10h]@5
-  unsigned int v10; // [sp+1Ch] [bp-Ch]@5
-  Lightmap *a1; // [sp+20h] [bp-8h]@3
-  int a3; // [sp+27h] [bp-1h]@5
+  v.z = 1.0;
+  v.y = 1.0;
+  v.x = 1.0;
+  
+  for (uint i = 0; i < std__vector_183808_size; ++i)
+    if (!DrawLightmap(std__vector_183808 + i, &v, z_bias))
+      MessageBoxW(nullptr, L"Invalid lightmap detected!", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Light.cpp:1288", 0);
 
-  v2 = this;
-  result = this->std__vector_183808_size;
-  if ( result )
-  {
-    v4 = 0;
-    v.z = 1.0;
-    v.y = 1.0;
-    v.x = 1.0;
-    if ( result > 0 )
-    {
-      a1 = this->std__vector_183808;
-      do
-      {
-        result = DrawLightmap(a1, &v, a2);
-        if ( !result )
-        {
-          MessageBoxW(nullptr, L"Invalid lightmap detected!", L"E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Light.cpp:1288", 0);
-          v10 = 0x4D86ECu;
-        }
-        ++a1;
-        ++v4;
-      }
-      while ( v4 < (signed int)v2->std__vector_183808_size);
-    }
-  }
-  LOBYTE(result) = 1;
-  return result;
+  return true;
 }
 
 //----- (0045DAE8) --------------------------------------------------------
-bool LightmapBuilder::DrawLightmap(Lightmap *a1, Vec3_float_ *arg4, float thisa)
+bool LightmapBuilder::DrawLightmap(Lightmap *pLightmap, Vec3_float_ *pColorMult, float z_bias)
 {
-  Lightmap *v4; // edx@1
-  bool result; // eax@2
-  double v6; // st7@3
-  Vec3_float_ *v7; // ecx@3
-  LEVEL_TYPE v8; // edi@3
-  int v9; // esi@3
   double v10; // st7@4
-  unsigned int v11; // ebx@6
-  char *v12; // ecx@7
-  int v13; // edx@7
   double v14; // st7@7
   __int16 v15; // fps@8
-  unsigned __int8 v16; // c2@8
-  unsigned __int8 v17; // c3@8
   double v18; // st3@8
-  int v19; // eax@11
-  double v20; // st3@11
-  int v21; // eax@11
-  char v22; // zf@11
-  HRESULT v23; // eax@15
   signed int v24; // [sp-1Ch] [bp-670h]@13
   const char *v25; // [sp-18h] [bp-66Ch]@13
   int v26; // [sp-14h] [bp-668h]@13
-  HRESULT a2; // [sp+0h] [bp-654h]@15
-  char v28; // [sp+4h] [bp-650h]@7
-  double v29; // [sp+640h] [bp-14h]@3
-  __int64 v30; // [sp+648h] [bp-Ch]@3
-  float v31; // [sp+650h] [bp-4h]@3
-  signed int a1b; // [sp+65Ch] [bp+8h]@3
-  float a1c; // [sp+65Ch] [bp+8h]@3
-  float a1d; // [sp+65Ch] [bp+8h]@3
-  float a1e; // [sp+65Ch] [bp+8h]@3
-  unsigned int a1a; // [sp+65Ch] [bp+8h]@7
-  int arg4a; // [sp+660h] [bp+Ch]@3
+  RenderVertexD3D3 a2[32]; // [sp+0h] [bp-654h]@7
 
-  v4 = a1;
-  if ( (signed int)a1->uNumVertices >= 3 )
+
+  if (pLightmap->uNumVertices < 3)
   {
-    v6 = (double)BYTE1(a1->field_C10) * a1->flt_C14;
-    v30 = a1->field_C10 & 0xFFi64;
-    a1b = BYTE2(a1->field_C10);
-    v7 = arg4;
-    //v31 = v6;
-    *((float *)&v30 + 1) = (double)v30 * v4->flt_C14;
-    a1c = (double)a1b * v4->flt_C14 * arg4->x;
-    //v29 = a1c + 6.7553994e15;
-    //arg4a = LODWORD(v29);
-    arg4a = floorf(a1c + 0.5f);
+    Log::Warning(L"Lightmap uNumVertices < 3");
+    return false;
+  }
 
-    a1d = v6 * v7->y;
-    v29 = a1d + 6.7553994e15;
-    LODWORD(v31) = LODWORD(v29);
-
-    a1e = *((float *)&v30 + 1) * v7->z;
-
-    v29 = a1e + 6.7553994e15;
-    HIDWORD(v30) = LODWORD(v29);
+  uint uLightmapColorMaskR = (pLightmap->uColorMask >> 16) & 0xFF;
+  uint uLightmapColorR = floorf(uLightmapColorMaskR * pLightmap->fBrightness * pColorMult->x + 0.5f);
+  
+  uint uLightmapColorMaskG = (pLightmap->uColorMask >> 8) & 0xFF;
+  uint uLightmapColorG = floorf(uLightmapColorMaskG * pLightmap->fBrightness * pColorMult->y + 0.5f);
+ 
+  uint uLightmapColorMaskB = pLightmap->uColorMask & 0xFF;
+  uint uLightmapColorB = floorf(uLightmapColorMaskB * pLightmap->fBrightness * pColorMult->z + 0.5f);
+ 
+  uint uLightmapColor = uLightmapColorB | (uLightmapColorMaskG << 8) | (uLightmapColorMaskR << 16);
 
-    v8 = uCurrentlyLoadedLevelType;
-    v9 = LODWORD(v29) | ((LODWORD(v31) | (arg4a << 8)) << 8);
-    if ( uCurrentlyLoadedLevelType == LEVEL_Outdoor)
-      v10 = (double)pOutdoorCamera->shading_dist_mist;
-    else
-      v10 = 16192.0;
-    v11 = v4->uNumVertices;
-    if ( (signed int)v11 > 0 )
+  if (uCurrentlyLoadedLevelType == LEVEL_Outdoor)
+    v10 = (double)pOutdoorCamera->shading_dist_mist;
+  else
+    v10 = 16192.0;
+  v14 = 1.0 / v10;
+
+  for (uint i = 0; i < pLightmap->uNumVertices; ++i)
+  {
+    v18 = 1.0 - 1.0 / (v14 * pLightmap->pVertices[i].vWorldViewPosition.x * 1000.0);
+    if (fabsf(z_bias) < 1e-5f)
     {
-      v12 = &v28;
-      v13 = (int)&v4->pVertices[0].vWorldViewPosition;
-      v14 = 1.0 / v10;
-      a1a = v11;
-      do
-      {
-        //UNDEF(v15);
-        v18 = 1.0 - 1.0 / (v14 * *(float *)v13 * 1000.0);
-        if ( !(v17 | v16) )
-        {
-          v18 = v18 - thisa;
-          if ( v18 < 0.000099999997 )
-            v18 = 0.000099999997;
-        }
-        *((float *)v12 + 1) = v18;
-        v19 = *(unsigned int *)(v13 + 12);
-        *((unsigned int *)v12 + 4) = 0;
-        v20 = 1.0 / *(float *)v13;
-        *((unsigned int *)v12 - 1) = v19;
-        *(unsigned int *)v12 = *(unsigned int *)(v13 + 16);
-        *((unsigned int *)v12 + 5) = *(unsigned int *)(v13 + 24);
-        v21 = *(unsigned int *)(v13 + 28);
-        *((unsigned int *)v12 + 3) = v9;
-        *((unsigned int *)v12 + 6) = v21;
-        v13 += 48;
-        v12 += 32;
-        v22 = a1a-- == 1;
-        *((float *)v12 - 6) = v20;
-      }
-      while ( !v22 );
+      v18 = v18 - z_bias;
+      if (v18 < 0.000099999997)
+        v18 = 0.000099999997;
     }
-    if ( v8 == 1 )
-    {
-      v26 = 1346;
-      v25 = "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Light.cpp";
-      v24 = 28;
-    }
-    else
-    {
-      v26 = 1354;
-      v25 = "E:\\WORK\\MSDEV\\MM7\\MM7\\Code\\Light.cpp";
-      v24 = 16;
-    }
-    v23 = pRenderer->pRenderD3D->pDevice->DrawPrimitive(
-            D3DPT_TRIANGLEFAN,
-            452,
-            &a2,
-            v11,
-            v24);
-    //CheckHRESULT((CheckHRESULT_stru0 *)&thisa, v23, v25, v26, 0);
-    LOBYTE(result) = 1;
+
+    a2[i].pos.x = pLightmap->pVertices[i].vWorldViewProjX;
+    a2[i].pos.z = v18;
+    a2[i].pos.y = pLightmap->pVertices[i].vWorldViewProjY;
+    a2[i].rhw = 1.0 / pLightmap->pVertices[i].vWorldViewPosition.x;
+    a2[i].diffuse = uLightmapColor;
+    a2[i].specular = 0;
+    a2[i].texcoord.x = pLightmap->pVertices[i].u;
+    a2[i].texcoord.y = pLightmap->pVertices[i].v;
   }
-  else
-  {
-    LOBYTE(result) = 0;
-  }
-  return result;
+
+  if (uCurrentlyLoadedLevelType == LEVEL_Indoor)
+    v24 = D3DDP_DONOTLIGHT | D3DDP_DONOTCLIP | D3DDP_DONOTUPDATEEXTENTS;
+   else
+    v24 = D3DDP_DONOTLIGHT;
+
+  ErrD3D(pRenderer->pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,
+            D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1,
+            a2,
+            pLightmap->uNumVertices,
+            v24));
+
+  return true;
 }
 
 //----- (0045DCA9) --------------------------------------------------------
 void LightmapBuilder::DoDrawLightmaps()
 {
-  const char *v1; // ebx@0
-  int v2; // ebp@0
-  int v3; // edi@0
-  int v4; // esi@0
-  HRESULT v5; // eax@4
-  HRESULT v6; // eax@4
-  HRESULT v7; // eax@4
-  char *v8; // eax@4
-  //IDirect3DDevice3Vtbl *v9; // ebp@6
-  struct IDirect3DTexture2 *v10; // ST90_4@6
-  //IDirect3DDevice3 *v11; // ST88_4@6
-  HRESULT v12; // eax@6
-  HRESULT v13; // eax@6
-  HRESULT v14; // eax@6
-  HRESULT v15; // eax@6
-  HRESULT v16; // eax@6
-  HRESULT v17; // eax@6
-  HRESULT v18; // eax@6
-  HRESULT v19; // eax@6
-  LightmapBuilder *v20; // [sp+98h] [bp-8h]@1
-  LightmapBuilder *v21; // [sp+9Ch] [bp-4h]@1
-  LightmapBuilder *thisa; // [sp+A4h] [bp+4h]@0
-  //CheckHRESULT_stru0 a8; // [sp+A8h] [bp+8h]@0
-  //CheckHRESULT_stru0 thisaa; // [sp+B4h] [bp+14h]@0
+  if (!std__vector_183808_size)
+    return;
+
+  if (pRenderer->bUsingSpecular)
+    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 0));
+ 
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, 1));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 0));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1u));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DITHERENABLE, 0));
+
+  auto pTex = pGame->pIndoorCameraD3D->LoadTextureAndGetHardwarePtr("effpar03");
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetTexture(0, pTex));
 
-  v21 = this;
-  v20 = this;
-  if ( this->std__vector_183808_size )
-  {
-    if ( pRenderer->bUsingSpecular )
-      ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 0));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 2u));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 2u));
 
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, 1));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 0));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1u));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DITHERENABLE, 0));
+  DrawLightmaps2(0.00050000002);
 
-    v8 = (char *)stru_69BD44.c_str();
-    if ( !stru_69BD44.size() )
-      v8 = (char *)&dword_4D86F0;
-    //v9 = pRenderer->pRenderD3D->pDevice->lpVtbl;
-    v10 = pGame->pIndoorCameraD3D->LoadTextureAndGetHardwarePtr(v8);
-    //v11 = pRenderer->pRenderD3D->pDevice;
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetTexture(0, v10));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 2u));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 2u));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 2u));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 1u));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DITHERENABLE, 1u));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 1u));
+  ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, 2));
 
-    DrawLightmaps2(0.00050000002);
-
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 2u));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 1u));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 0));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DITHERENABLE, 1u));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 1u));
-    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, 2));
-    if ( pRenderer->bUsingSpecular )
-      ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 1u));
-  }
+  if (pRenderer->bUsingSpecular)
+    ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_FOGENABLE, 1u));
 }
\ No newline at end of file