Mercurial > mm7
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(