comparison Render.cpp @ 61:6c2cefdaea3e

Слияние
author Ritor1
date Tue, 22 Jan 2013 18:41:17 +0600
parents b9d70af644f3 63cfe63ac4c5
children 80484cf3a683
comparison
equal deleted inserted replaced
60:b9d70af644f3 61:6c2cefdaea3e
1591 v79 = (v73 - 66) << 9; 1591 v79 = (v73 - 66) << 9;
1592 v116 = v77; 1592 v116 = v77;
1593 v105 = v79; 1593 v105 = v79;
1594 v111 = v75 - v77; 1594 v111 = v75 - v77;
1595 do 1595 do
1596 { 1596 {//
1597 *(float *)&v106 = (double)v105; 1597 *(float *)&v106 = (double)v105;
1598 *(float *)((char *)&ptr_801A08->vWorldPosition.x + v127) = *(float *)&v106; 1598 *(float *)((char *)&ptr_801A08->vWorldPosition.x + v127) = *(float *)&v106;//x
1599 v105 = (64 - *(int *)((char *)terrain_76D9C8 + v70)) << 9; 1599 v105 = (64 - *(int *)((char *)terrain_76D9C8 + v70)) << 9;
1600 *(float *)((char *)&ptr_801A08->vWorldPosition.y + v127) = (double)v105; 1600 *(float *)((char *)&ptr_801A08->vWorldPosition.y + v127) = (double)v105;//y
1601 v105 = pOutdoor->GetHeightOnTerrain(v112, *(int *)((char *)terrain_76D9C8 + v70)); 1601 v105 = pOutdoor->GetHeightOnTerrain(v112, *(int *)((char *)terrain_76D9C8 + v70));
1602 *(float *)((char *)&ptr_801A08->vWorldPosition.z + v127) = (double)v105; 1602 *(float *)((char *)&ptr_801A08->vWorldPosition.z + v127) = (double)v105;//z
1603 *(float *)((char *)&ptr_801A04->vWorldPosition.x + v127) = *(float *)&v106; 1603 *(float *)((char *)&ptr_801A04->vWorldPosition.x + v127) = *(float *)&v106;//x
1604 v105 = (63 - *(int *)((char *)terrain_76D9C8 + v70)) << 9; 1604 v105 = (63 - *(int *)((char *)terrain_76D9C8 + v70)) << 9;
1605 *(float *)((char *)&ptr_801A04->vWorldPosition.y + v127) = (double)v105; 1605 *(float *)((char *)&ptr_801A04->vWorldPosition.y + v127) = (double)v105;//y
1606 v105 = pOutdoor->GetHeightOnTerrain(v112, *(int *)((char *)terrain_76D9C8 + v70) + 1); 1606 v105 = pOutdoor->GetHeightOnTerrain(v112, *(int *)((char *)terrain_76D9C8 + v70) + 1);
1607 *(float *)((char *)&ptr_801A04->vWorldPosition.z + v127) = (double)v105; 1607 *(float *)((char *)&ptr_801A04->vWorldPosition.z + v127) = (double)v105;//z
1608 if ( !byte_4D864C || !(pGame->uFlags & 0x80) ) 1608 if ( !byte_4D864C || !(pGame->uFlags & 0x80) )
1609 { 1609 {
1610 a1->ViewTransform((RenderVertexSoft *)(char *)ptr_801A08 + v127, 1); 1610 a1->ViewTransform((RenderVertexSoft *)(char *)ptr_801A08 + v127, 1);
1611 a1->ViewTransform((RenderVertexSoft *)(char *)ptr_801A04 + v127, 1); 1611 a1->ViewTransform((RenderVertexSoft *)(char *)ptr_801A04 + v127, 1);
1612 a1->Project((RenderVertexSoft *)(char *)ptr_801A08 + v127, 1, 0); 1612 a1->Project((RenderVertexSoft *)(char *)ptr_801A08 + v127, 1, 0);
2876 v8 = *((short *)v1 + 1); 2876 v8 = *((short *)v1 + 1);
2877 if ( pRenderer->pRenderD3D ) 2877 if ( pRenderer->pRenderD3D )
2878 { 2878 {
2879 billboard.sZValue = v7; 2879 billboard.sZValue = v7;
2880 billboard.uFlags = v2; 2880 billboard.uFlags = v2;
2881 pRenderer->TransformBillboard( 2881 pRenderer->TransformBillboard(&billboard, &pSprites_LOD->pHardwareSprites[v6], v8, (RenderBillboard *)(v1 - 40));
2882 &billboard,
2883 &pSprites_LOD->pHardwareSprites[v6],
2884 v8,
2885 (RenderBillboard *)(v1 - 40));
2886 } 2882 }
2887 else 2883 else
2888 { 2884 {
2889 if ( *(v1 - 10) & 2 ) 2885 if ( *(v1 - 10) & 2 )
2890 v9 = PaletteManager::Get_Dark_or_Red_LUT(*((short *)v1 - 7), 0, 1); 2886 v9 = PaletteManager::Get_Dark_or_Red_LUT(*((short *)v1 - 7), 0, 1);
8226 auto a1 = this; 8222 auto a1 = this;
8227 a3 = a1; 8223 a3 = a1;
8228 if ( a1->uNumD3DSceneBegins ) 8224 if ( a1->uNumD3DSceneBegins )
8229 { 8225 {
8230 v5 = a2; 8226 v5 = a2;
8231 v6 = (double)a2->sZValue; //Ritor1:begin pBillboardRenderListD3D 8227 v6 = (double)a2->sZValue;
8232 v31 = v6; 8228 v31 = v6;
8233 v7 = v6; 8229 v7 = v6;
8234 v8 = Billboard_ProbablyAddToListAndSortByZOrder(v7); 8230 v8 = Billboard_ProbablyAddToListAndSortByZOrder(v7);
8235 if ( v5->uTintColor ) 8231 if ( BYTE3(v5->uTintColor) )
8236 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_3; 8232 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Opaque_3;
8237 else 8233 else
8238 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Transparent; 8234 pBillboardRenderListD3D[v8].uOpacity = RenderBillboardD3D::Transparent;
8239 v9 = pSprite; 8235 v9 = pSprite;
8240 pBillboardRenderListD3D[v8].field_90 = v5->field_44; 8236 pBillboardRenderListD3D[v8].field_90 = v5->field_44;
11081 11077
11082 11078
11083 //----- (004A1C1E) -------------------------------------------------------- 11079 //----- (004A1C1E) --------------------------------------------------------
11084 void DoRenderBillboards_D3D() 11080 void DoRenderBillboards_D3D()
11085 { 11081 {
11086 ErrD3D(pRenderer->pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, 3)); 11082 ErrD3D(pRenderer->pRenderD3D->pDevice->SetTextureStageState(0, D3DTSS_ADDRESS, 3u));
11087 ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1)); 11083 ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ALPHABLENDENABLE, 1u));
11088 ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 0)); 11084 ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_ZWRITEENABLE, 0));
11089 ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, 1)); 11085 ErrD3D(pRenderer->pRenderD3D->pDevice->SetRenderState(D3DRENDERSTATE_CULLMODE, 1u));
11090 11086
11091 for (uint i = pRenderer->uNumBillboardsToDraw - 1; i != (uint)-1; --i) 11087 for (uint i = pRenderer->uNumBillboardsToDraw - 1; i != (uint)-1; --i)
11092 { 11088 {
11093 auto p = pRenderer->pBillboardRenderListD3D + i; 11089 auto p = pRenderer->pBillboardRenderListD3D + i;
11094 11090