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