comparison Render.cpp @ 1438:bc99e1a48bea

m
author Ritor1
date Mon, 22 Jul 2013 18:00:34 +0600
parents 883fea17dd9a
children 468f434a8d8a
comparison
equal deleted inserted replaced
1437:47975067d6a8 1438:bc99e1a48bea
1670 // 4D864C: using guessed type char byte_4D864C; 1670 // 4D864C: using guessed type char byte_4D864C;
1671 1671
1672 1672
1673 void Render::RenderTerrainD3D() // New function 1673 void Render::RenderTerrainD3D() // New function
1674 { 1674 {
1675 char result; // al@3 1675 int pTextureID; // ecx@8
1676 int v6; // ecx@8 1676 struct stru148 *pTile; // ebx@8
1677 struct stru148 *pTile; // ebx@8
1678 struct stru148 *v16;
1679 unsigned int v18; // edi@22
1680 int v35; // edi@63
1681 int v37; // eax@73
1682 int v39; // eax@80
1683 char v40; // [sp-18h] [bp-70h]@2
1684 int v41; // [sp-14h] [bp-6Ch]@2
1685 int v42; // [sp-10h] [bp-68h]@2
1686 int v43; // [sp-Ch] [bp-64h]@2
1687 const char *v44; // [sp-8h] [bp-60h]@2
1688 int v45; // [sp-4h] [bp-5Ch]@2
1689 int v56;
1690 int v57; // [sp+38h] [bp-20h]@36
1691 int v64; // [sp+57h] [bp-1h]@2
1692 int v62;
1693 1677
1694 //warning: the game uses CW culling by default, ccw is incosistent 1678 //warning: the game uses CW culling by default, ccw is incosistent
1695 pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, D3DCULL_CCW); 1679 pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, D3DCULL_CCW);
1696 1680
1697 static RenderVertexSoft pTerrainVertices[128 * 128];//vertexCountX and vertexCountZ 1681 static RenderVertexSoft pTerrainVertices[128 * 128];//vertexCountX and vertexCountZ
1785 pTile->dimming_level = 20.0 - floorf(20.0 * _f + 0.5f); 1769 pTile->dimming_level = 20.0 - floorf(20.0 * _f + 0.5f);
1786 //----------------------------------------------------------------------------------------------- 1770 //-----------------------------------------------------------------------------------------------
1787 1771
1788 ++pOutdoorCamera->numStru148s; 1772 ++pOutdoorCamera->numStru148s;
1789 ++pOutdoorCamera->field_44; 1773 ++pOutdoorCamera->field_44;
1790 assert(pOutdoorCamera->numStru148s < 20000); 1774 assert(pOutdoorCamera->numStru148s < 20000);// numStru148s - это количество фейсов(numFaces)
1791 1775
1792 pTile->uBModelID = 0; 1776 pTile->uBModelID = 0;
1793 pTile->uBModelFaceID = 0; 1777 pTile->uBModelFaceID = 0;
1794 pTile->field_50 = (8 * (0 | (0 << 6))) | 6; 1778 pTile->field_50 = (8 * (0 | (0 << 6))) | 6;
1795 for (unsigned int k = 0; k < pTile->uNumVertices; ++k) 1779 for (unsigned int k = 0; k < pTile->uNumVertices; ++k)
1803 if ( !( pTile->flags & 1 ) ) // не поддерживается TextureFrameTable 1787 if ( !( pTile->flags & 1 ) ) // не поддерживается TextureFrameTable
1804 { 1788 {
1805 if ( pTile->flags & 2 && pTile->uTileBitmapID == pRenderer->hd_water_tile_id) 1789 if ( pTile->flags & 2 && pTile->uTileBitmapID == pRenderer->hd_water_tile_id)
1806 { 1790 {
1807 //transparent = false; 1791 //transparent = false;
1808 v6 = pRenderer->pHDWaterBitmapIDs[pRenderer->hd_water_current_frame]; 1792 pTextureID = pRenderer->pHDWaterBitmapIDs[pRenderer->hd_water_current_frame];
1809 } 1793 }
1810 else 1794 else
1811 { 1795 {
1812 v6 = pTile->uTileBitmapID; 1796 pTextureID = pTile->uTileBitmapID;
1813 if ( !_strnicmp(pBitmaps_LOD->pTextures[pTile->uTileBitmapID].pName, "wtrdr", 5) ) 1797 if ( !_strnicmp(pBitmaps_LOD->pTextures[pTile->uTileBitmapID].pName, "wtrdr", 5) )
1814 transparent = true; 1798 transparent = true;
1815 } 1799 }
1816 1800
1817 assert(v6 < 1000); // many random crashes here 1801 assert(pTextureID < 1000); // many random crashes here
1818 1802
1819 // for all shore tiles - draw a tile water under them since they're half-empty 1803 // for all shore tiles - draw a tile water under them since they're half-empty
1820 if (!_strnicmp(pBitmaps_LOD->pTextures[pTile->uTileBitmapID].pName, "wtrdr", 5)) // all shore tile filenames are wtrdrXXX 1804 if (!_strnicmp(pBitmaps_LOD->pTextures[pTile->uTileBitmapID].pName, "wtrdr", 5)) // all shore tile filenames are wtrdrXXX
1821 pTile->DrawBorderTiles(); 1805 pTile->DrawBorderTiles();
1822 1806
1823 pRenderer->DrawTerrainPolygon(pTile->uNumVertices, pTile, pBitmaps_LOD->pHardwareTextures[v6], transparent, true); 1807 pRenderer->DrawTerrainPolygon(pTile->uNumVertices, pTile, pBitmaps_LOD->pHardwareTextures[pTextureID], transparent, true);
1824 } 1808 }
1825 //else //здесь уже пограничные тайлы воды 1809 //else //здесь уже пограничные тайлы воды
1826 //pTile->DrawBorderTiles(); 1810 //pTile->DrawBorderTiles();
1827 //-------------------------------------------------------------------------------------------------------------------------------- 1811 //--------------------------------------------------------------------------------------------------------------------------------
1828 1812