comparison Render.cpp @ 1923:f92e0bab7c78

rename DrawIndoorPolygonSky
author Ritor1
date Wed, 23 Oct 2013 17:30:14 +0600
parents e60d9df73428
children f4d5082b4a39
comparison
equal deleted inserted replaced
1922:e60d9df73428 1923:f92e0bab7c78
4923 } 4923 }
4924 // 4A26BC: could not find valid save-restore pair for esi 4924 // 4A26BC: could not find valid save-restore pair for esi
4925 // 4D864C: using guessed type char byte_4D864C; 4925 // 4D864C: using guessed type char byte_4D864C;
4926 4926
4927 //----- (004A2DA3) -------------------------------------------------------- 4927 //----- (004A2DA3) --------------------------------------------------------
4928 void Render::DrawSkyPolygon(unsigned int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture) 4928 void Render::DrawOutdoorSkyPolygon(unsigned int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture)
4929 { 4929 {
4930 int v7; // eax@7 4930 int v7; // eax@7
4931 4931
4932 if ( !this->uNumD3DSceneBegins ) 4932 if ( !this->uNumD3DSceneBegins )
4933 return; 4933 return;
4960 pVertices, uNumVertices, D3DDP_DONOTUPDATEEXTENTS | D3DDP_DONOTLIGHT); 4960 pVertices, uNumVertices, D3DDP_DONOTUPDATEEXTENTS | D3DDP_DONOTLIGHT);
4961 } 4961 }
4962 } 4962 }
4963 4963
4964 //----- (004A2ED5) -------------------------------------------------------- 4964 //----- (004A2ED5) --------------------------------------------------------
4965 void Render::_4A2ED5(signed int a2, struct Polygon *a3, IDirect3DTexture2 *pHwTex) 4965 void Render::DrawIndoorSkyPolygon(signed int uNumVertices, struct Polygon *pSkyPolygon, IDirect3DTexture2 *pTexture)
4966 { 4966 {
4967 signed int v4; // edi@2 4967 signed int v4; // edi@2
4968 int v5; // eax@3 4968 int v5; // eax@3
4969 int v6; // edx@5 4969 int v6; // edx@5
4970 RenderVertexD3D3 *v7; // eax@6 4970 RenderVertexD3D3 *v7; // eax@6
4973 //int v10; // ebx@7 4973 //int v10; // ebx@7
4974 //int v11; // ebx@7 4974 //int v11; // ebx@7
4975 4975
4976 if ( this->uNumD3DSceneBegins ) 4976 if ( this->uNumD3DSceneBegins )
4977 { 4977 {
4978 v4 = a2; 4978 v4 = uNumVertices;
4979 if ( a2 >= 3 ) 4979 if ( uNumVertices >= 3 )
4980 { 4980 {
4981 ErrD3D(pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, D3DTADDRESS_WRAP)); 4981 ErrD3D(pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, D3DTADDRESS_WRAP));
4982 v5 = 31 - (a3->dimming_level & 0x1F); 4982 v5 = 31 - (pSkyPolygon->dimming_level & 0x1F);
4983 if ( v5 < pOutdoor->max_terrain_dimming_level ) 4983 if ( v5 < pOutdoor->max_terrain_dimming_level )
4984 v5 = pOutdoor->max_terrain_dimming_level; 4984 v5 = pOutdoor->max_terrain_dimming_level;
4985 v6 = 8 * v5 | ((8 * v5 | (v5 << 11)) << 8); 4985 v6 = 8 * v5 | ((8 * v5 | (v5 << 11)) << 8);
4986 for (uint i = 0; i < a2; ++i) 4986 for (uint i = 0; i < uNumVertices; ++i)
4987 { 4987 {
4988 d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX; 4988 d3d_vertex_buffer[i].pos.x = array_507D30[i].vWorldViewProjX;
4989 d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY; 4989 d3d_vertex_buffer[i].pos.y = array_507D30[i].vWorldViewProjY;
4990 d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / array_507D30[i].vWorldViewPosition.y; 4990 d3d_vertex_buffer[i].pos.z = 1.0 - 1.0 / array_507D30[i].vWorldViewPosition.y;
4991 d3d_vertex_buffer[i].rhw = array_507D30[i]._rhw; 4991 d3d_vertex_buffer[i].rhw = array_507D30[i]._rhw;
4993 d3d_vertex_buffer[i].specular = 0; 4993 d3d_vertex_buffer[i].specular = 0;
4994 d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u; 4994 d3d_vertex_buffer[i].texcoord.x = array_507D30[i].u;
4995 d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v; 4995 d3d_vertex_buffer[i].texcoord.y = array_507D30[i].v;
4996 } 4996 }
4997 4997
4998 ErrD3D(pRenderD3D->pDevice->SetTexture(0, pHwTex)); 4998 ErrD3D(pRenderD3D->pDevice->SetTexture(0, pTexture));
4999 ErrD3D(pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 4999 ErrD3D(pRenderD3D->pDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,
5000 D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1, 5000 D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_SPECULAR | D3DFVF_TEX1,
5001 d3d_vertex_buffer, 5001 d3d_vertex_buffer,
5002 a2, 5002 uNumVertices,
5003 28)); 5003 28));
5004 } 5004 }
5005 } 5005 }
5006 } 5006 }
5007 5007
5008
5009 //----- (00479A53) -------------------------------------------------------- 5008 //----- (00479A53) --------------------------------------------------------
5010 void Render::DrawIndoorPolygonSky(unsigned int uNumVertices, unsigned int uFaceID) 5009 void Render::DrawIndoorSky(unsigned int uNumVertices, unsigned int uFaceID)
5011 { 5010 {
5012 BLVFace *pFace; // esi@1 5011 BLVFace *pFace; // esi@1
5013 //unsigned int v3; // edi@1 5012 //unsigned int v3; // edi@1
5014 //PolygonType v4; // al@1 5013 //PolygonType v4; // al@1
5015 double v5; // st7@3 5014 double v5; // st7@3
5369 --HIDWORD(v69); 5368 --HIDWORD(v69);
5370 } 5369 }
5371 while ( HIDWORD(v69) ); 5370 while ( HIDWORD(v69) );
5372 } 5371 }
5373 pSkyPoligon.uNumVertices = v47; 5372 pSkyPoligon.uNumVertices = v47;
5374 pRenderer->_4A2ED5(v47, &pSkyPoligon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPoligon.uTileBitmapID]); 5373 pRenderer->DrawIndoorSkyPolygon(v47, &pSkyPoligon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPoligon.uTileBitmapID]);
5375 *(float *)&v74 = 0.0; 5374 *(float *)&v74 = 0.0;
5376 if ( SLODWORD(v73) > 0 ) 5375 if ( SLODWORD(v73) > 0 )
5377 { 5376 {
5378 v51 = (double)SLODWORD(v80); 5377 v51 = (double)SLODWORD(v80);
5379 v75 = array_507D30; 5378 v75 = array_507D30;
5397 v61 = pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPoligon.uTileBitmapID]; 5396 v61 = pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPoligon.uTileBitmapID];
5398 v60 = &pSkyPoligon; 5397 v60 = &pSkyPoligon;
5399 v59 = v74; 5398 v59 = v74;
5400 //v27 = pRenderer; 5399 //v27 = pRenderer;
5401 LABEL_18: 5400 LABEL_18:
5402 pRenderer->_4A2ED5(v59, v60, v61); 5401 pRenderer->DrawIndoorSkyPolygon(v59, v60, v61);
5403 } 5402 }
5404 5403
5405 5404
5406 //----- (004A2FC0) -------------------------------------------------------- 5405 //----- (004A2FC0) --------------------------------------------------------
5407 void Render::DrawIndoorPolygon(unsigned int uNumVertices, BLVFace *pFace, IDirect3DTexture2 *pHwTex, Texture *pTex, int uPackedID, unsigned int uColor, int a8) 5406 void Render::DrawIndoorPolygon(unsigned int uNumVertices, BLVFace *pFace, IDirect3DTexture2 *pHwTex, Texture *pTex, int uPackedID, unsigned int uColor, int a8)
9044 } 9043 }
9045 } 9044 }
9046 return; 9045 return;
9047 } 9046 }
9048 //----- (00479543) -------------------------------------------------------- 9047 //----- (00479543) --------------------------------------------------------
9049 void Render::DrawSkyD3D() 9048 void Render::DrawOutdoorSkyD3D()
9050 { 9049 {
9051 int v9; // eax@4 9050 int v9; // eax@4
9052 int v10; // ebx@4 9051 int v10; // ebx@4
9053 int v13; // edi@6 9052 int v13; // edi@6
9054 int v14; // ecx@6 9053 int v14; // ecx@6
9187 array_50AC10[i].v = (double)v35 / ((double)pSkyPolygon.pTexture->uTextureHeight * 65536.0); 9186 array_50AC10[i].v = (double)v35 / ((double)pSkyPolygon.pTexture->uTextureHeight * 65536.0);
9188 9187
9189 array_50AC10[i].vWorldViewPosition.x = (double)0x2000;//pODMRenderParams->shading_dist_mist 9188 array_50AC10[i].vWorldViewPosition.x = (double)0x2000;//pODMRenderParams->shading_dist_mist
9190 array_50AC10[i]._rhw = 1.0 / (double)(v18 >> 16); 9189 array_50AC10[i]._rhw = 1.0 / (double)(v18 >> 16);
9191 } 9190 }
9192 pRenderer->DrawSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]); 9191 pRenderer->DrawOutdoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
9193 array_50AC10[0].vWorldViewProjY = (double)v38; 9192 array_50AC10[0].vWorldViewProjY = (double)v38;
9194 array_50AC10[1].vWorldViewProjY = array_50AC10[1].vWorldViewProjY + 30.0; 9193 array_50AC10[1].vWorldViewProjY = array_50AC10[1].vWorldViewProjY + 30.0;
9195 array_50AC10[2].vWorldViewProjY = array_50AC10[2].vWorldViewProjY + 30.0; 9194 array_50AC10[2].vWorldViewProjY = array_50AC10[2].vWorldViewProjY + 30.0;
9196 array_50AC10[3].vWorldViewProjY = (double)v38; 9195 array_50AC10[3].vWorldViewProjY = (double)v38;
9197 pRenderer->DrawSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]); 9196 pRenderer->DrawOutdoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
9198 return; 9197 return;
9199 } 9198 }
9200 } 9199 }
9201 //----- (004226C2) -------------------------------------------------------- 9200 //----- (004226C2) --------------------------------------------------------
9202 bool PauseGameDrawing() 9201 bool PauseGameDrawing()