diff Render.cpp @ 75:6ef241d53522

28.01.13
author Ritor1
date Mon, 28 Jan 2013 14:52:05 +0600
parents 3b4f8bd48e3b
children 7ad8eaa172c5
line wrap: on
line diff
--- a/Render.cpp	Fri Jan 25 16:48:21 2013 +0600
+++ b/Render.cpp	Mon Jan 28 14:52:05 2013 +0600
@@ -7131,7 +7131,7 @@
 void Render::DrawTerrainPolygon(unsigned int uNumVertices, stru148 *a4, IDirect3DTexture2 *a5, int a6, int a7)
 {
   RenderVertexSoft *pVertices; // esi@0
-  Render *v7; // edi@1
+  int v7; // edi@1
   unsigned int v8; // ebx@1
   LightmapBuilder *v9; // esi@3
   unsigned int v10; // edx@3
@@ -7193,42 +7193,47 @@
   unsigned int v66; // [sp+88h] [bp-4h]@40
   unsigned int a6a; // [sp+A0h] [bp+14h]@11
 
-  v7 = this;
+  v7 = (int)this;
   v8 = 0;
-  if ( this->uNumD3DSceneBegins && (signed int)uNumVertices >= 3 )
-  {
-    v61 = pVertices;
-    v9 = pGame->pLightmapBuilder;
+  if ( !this->uNumD3DSceneBegins )
+     return;
+  if ( uNumVertices < 3)
+     return;
+
+  v61 = pVertices;
+  /*  v9 = pGame->pLightmapBuilder;
     v65 = v9;
-    v10 = v9->std__vector_000004_size;
+    v10 = v9->std__vector_000004_size;*/
     if ( byte_4D864C && pGame->uFlags & 1 )
     {
       v11 = GetActorTintColor(a4->field_58, 0, array_50AC10[0].vWorldViewPosition.x, 0, 0);
-      v9->_45D74F_MessWithLight(v11, 0);
+      pGame->pLightmapBuilder->_45D74F_MessWithLight(v11, 0);
     }
     else
     {
-      if ( a6 || !v10 || byte_4D864C && pGame->uFlags & 2 )
-      {
-        if ( (char)a7 )
+      if ( a6 || !pGame->pLightmapBuilder->std__vector_000004_size || 
+          byte_4D864C && pGame->uFlags & 2 )
+      {
+        if ( (_BYTE)a7 )
           v60 = 3;
         else
           v60 = 1;
-        ErrD3D(pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, v60));
-        if ( a6 || v7->bUsingSpecular )
-        {
-          ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1u));
-          //v49 = v7->pRenderD3D->pDevice;
+        this->pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, v60);
+        if ( a6 || this->bUsingSpecular )
+        {
+          this->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1);
+          v49 = this->pRenderD3D->pDevice;
           //v50 = v49->lpVtbl;
           if ( a6 )
           {
-            ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 5));
-            ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 6));
+            this->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 5);
+            //this->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 6);
           }
           else
           {
-            ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 2));
-            ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 1));
+            this->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 2);
+            //this->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 1);
+            __debugbreak;//it's error
           }
 
         }
@@ -7250,7 +7255,7 @@
             v56 = a7;
             v57 = *(float *)v52;
             *(int *)(a7 + 12) = v55;
-            if ( v7->bUsingSpecular )
+            if ( this->bUsingSpecular )
             {
               v58 = v57;
               v59 = sub_47C3D7_get_fog_related_stuff(0, 0, v58);
@@ -7305,7 +7310,7 @@
             v17 = a7;
             v18 = *(float *)v13;
             *(int *)(a7 + 12) = v16;
-            if ( v7->bUsingSpecular )
+            if ( this->bUsingSpecular )
             {
               v19 = v18;
               v20 = sub_47C3D7_get_fog_related_stuff(0, 0, v19);
@@ -7387,7 +7392,7 @@
             }
             while ( v37 );
           }
-          ErrD3D(pRenderD3D->pDevice->SetTexture(0, 0));
+          ErrD3D(pRenderD3D->pDevice->SetTexture(0, 0));//problem
           ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_SRCBLEND, 6u));
           ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_DESTBLEND, 5u));
           ErrD3D(pRenderD3D->pDevice->DrawPrimitive(
@@ -7411,7 +7416,7 @@
     if ( pIndoorCamera->field_4C & 2 || pBLVRenderParams->uFlags & 2 )
       pGame->pIndoorCameraD3D->debug_outline_d3d(arary_77E5C8, uNumVertices, 0xFFFFFFu, 0.0);
   }
-}
+
 // 4A26BC: could not find valid save-restore pair for esi
 // 4D864C: using guessed type char byte_4D864C;