diff Render.cpp @ 1072:48168499f52e

pointer cleaning
author zipi
date Sat, 25 May 2013 11:24:10 +0100
parents 39f42990698f
children d4a1a46192ba
line wrap: on
line diff
--- a/Render.cpp	Fri May 24 20:57:11 2013 +0100
+++ b/Render.cpp	Sat May 25 11:24:10 2013 +0100
@@ -7659,11 +7659,11 @@
   signed int v4; // edi@2
   int v5; // eax@3
   int v6; // edx@5
-  char *v7; // eax@6
-  char *v8; // ecx@6
-  double v9; // st6@7
-  int v10; // ebx@7
-  int v11; // ebx@7
+  RenderVertexD3D3 *v7; // eax@6
+  RenderVertexSoft *v8; // ecx@6
+  //double v9; // st6@7
+  //int v10; // ebx@7
+  //int v11; // ebx@7
 
   if ( this->uNumD3DSceneBegins )
   {
@@ -7675,29 +7675,18 @@
       if ( v5 < pOutdoor->max_terrain_dimming_level )
         v5 = pOutdoor->max_terrain_dimming_level;
       v6 = 8 * v5 | ((8 * v5 | (v5 << 11)) << 8);
-      if ( a2 > 0 )
-      {
-        v7 = (char *)&d3d_vertex_buffer[0].pos.y;
-        v8 = (char *)&array_507D30[0].vWorldViewProjY;
-        do
-        {
-          v9 = *((float *)v8 - 4) * 0.061758894;
-          v10 = *((int *)v8 - 1);
-          *((int *)v7 + 4) = 0;
-          *((int *)v7 - 1) = v10;
-          *(int *)v7 = *(int *)v8;
-          *((int *)v7 + 2) = *((int *)v8 + 1);
-          *((int *)v7 + 5) = *((int *)v8 + 2);
-          v11 = *((int *)v8 + 3);
-          *((int *)v7 + 3) = v6;
-          *((int *)v7 + 6) = v11;
-          v8 += 48;
-          v7 += 32;
-          --v4;
-          *((float *)v7 - 7) = 1.0 - 1.0 / v9;
-        }
-        while ( v4 );
-      }
+	  for (uint i = 0; i < a2; ++i)
+	  {
+		d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX;
+		d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY;
+		d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / array_507D30[i].vWorldViewPosition.y;
+		d3d_vertex_buffer[i].rhw = array_507D30[i]._rhw;
+		d3d_vertex_buffer[i].diffuse = v6;
+		d3d_vertex_buffer[i].specular = 0;
+		d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u;
+		d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v;
+	  }
+
       ErrD3D(pRenderD3D->pDevice->SetTexture(0, pHwTex));
       ErrD3D(pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,
         D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1,
@@ -7713,8 +7702,8 @@
 {
   //Render *v8; // edi@1
   //unsigned int v9; // esi@3
-  char *v12; // ecx@9
-  char *v13; // eax@9
+  RenderVertexSoft *v12; // ecx@9
+  RenderVertexD3D3 *v13; // eax@9
   double v14; // st6@10
   int v15; // edx@10
   Texture *v16; // edx@10
@@ -7772,35 +7761,18 @@
       __debugbreak();
       ErrD3D(pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, false));
       ErrD3D(pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, D3DTADDRESS_WRAP));
-      if ( (signed int)uNumVertices > 0 )
-      {
-        v12 = (char *)&array_507D30[0].vWorldViewPosition;
-        v13 = (char *)&d3d_vertex_buffer[0].pos.y;
-        auto a7 = uNumVertices;
-        uint v18;
-        do
-        {
-          v14 = *(float *)v12 * 0.061758894;
-          v15 = *((int *)v12 + 3);
-          *((int *)v13 + 4) = 0;
-          *((int *)v13 - 1) = v15;
-          *(int *)v13 = *((int *)v12 + 4);
-          *((int *)v13 + 3) = uCorrectedColor;
-          v16 = pTex;
-          v13 += 32;
-          *((float *)v13 - 7) = 1.0 - 1.0 / v14;
-          v17 = 1.0 / *(float *)v12;
-          v12 += 48;
-          v18 = a7-- == 1;
-          *((float *)v13 - 6) = v17;
-          pHwTex = (IDirect3DTexture2 *)v16->uTextureWidth;
-          v19 = pTex;
-          *((float *)v13 - 3) = *((float *)v12 - 6) / (double)(signed int)pHwTex;
-          pHwTex = (IDirect3DTexture2 *)v19->uTextureHeight;
-          *((float *)v13 - 2) = *((float *)v12 - 5) / (double)(signed int)pHwTex;
-        }
-        while ( !v18 );
-      }
+	  for (uint i = 0; i < uNumVertices; ++i)
+	  {
+		d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX;
+		d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY;
+		d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / (array_507D30[i].vWorldViewPosition.x * 0.061758894);
+		d3d_vertex_buffer[i].rhw = 1.0 / array_507D30[i].vWorldViewPosition.x;
+		d3d_vertex_buffer[i].diffuse = uCorrectedColor;
+		d3d_vertex_buffer[i].specular = 0;
+		d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u / (double)pTex->uTextureWidth;
+		d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v / (double)pTex->uTextureHeight;
+	  }
+
       ErrD3D(pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, D3DTADDRESS_WRAP));
       ErrD3D(pRenderD3D->pDevice->SetTexture(0, nullptr));
       ErrD3D(pRenderD3D->pDevice->DrawPrimitive(