comparison Render.cpp @ 67:476145dc3441

Слияние
author Ritor1
date Fri, 26 Oct 2012 23:22:41 +0600
parents 5159d2e6f559
children fdacbc653945
comparison
equal deleted inserted replaced
66:5ec98919c8fd 67:476145dc3441
1632 } 1632 }
1633 if ( !byte_4D864C || !(pGame->uFlags & 0x80) ) 1633 if ( !byte_4D864C || !(pGame->uFlags & 0x80) )
1634 { 1634 {
1635 a1->ViewTransform(&ptr_801A08[_ESI], 1u); 1635 a1->ViewTransform(&ptr_801A08[_ESI], 1u);
1636 a1->ViewTransform(&ptr_801A04[_ESI], 1u); 1636 a1->ViewTransform(&ptr_801A04[_ESI], 1u);
1637 a1->_436BB7_project_and_stuff(&ptr_801A08[_ESI], 1u, 0); 1637 a1->Project(&ptr_801A08[_ESI], 1u, 0);
1638 a1->_436BB7_project_and_stuff(&ptr_801A04[_ESI], 1u, 0); 1638 a1->Project(&ptr_801A04[_ESI], 1u, 0);
1639 } 1639 }
1640 v79 += 512; 1640 v79 += 512;
1641 ++_ESI; 1641 ++_ESI;
1642 ++v116; 1642 ++v116;
1643 v105 = v79; 1643 v105 = v79;
1721 } 1721 }
1722 if ( !byte_4D864C || !(pGame->uFlags & 0x80) ) 1722 if ( !byte_4D864C || !(pGame->uFlags & 0x80) )
1723 { 1723 {
1724 a1->ViewTransform(&ptr_801A08[_ESI], 1u); 1724 a1->ViewTransform(&ptr_801A08[_ESI], 1u);
1725 a1->ViewTransform(&ptr_801A04[_ESI], 1u); 1725 a1->ViewTransform(&ptr_801A04[_ESI], 1u);
1726 a1->_436BB7_project_and_stuff(&ptr_801A08[_ESI], 1u, 0); 1726 a1->Project(&ptr_801A08[_ESI], 1u, 0);
1727 a1->_436BB7_project_and_stuff(&ptr_801A04[_ESI], 1u, 0); 1727 a1->Project(&ptr_801A04[_ESI], 1u, 0);
1728 } 1728 }
1729 v92 -= 512; 1729 v92 -= 512;
1730 ++_ESI; 1730 ++_ESI;
1731 ++v116; 1731 ++v116;
1732 v105 = v92; 1732 v105 = v92;
1986 { 1986 {
1987 thisa = pGame->pIndoorCameraD3D; 1987 thisa = pGame->pIndoorCameraD3D;
1988 if ( pGame->pIndoorCameraD3D->_4371C3(array_50AC10, &a5, 0) == 1 && !a5 ) 1988 if ( pGame->pIndoorCameraD3D->_4371C3(array_50AC10, &a5, 0) == 1 && !a5 )
1989 goto LABEL_162; 1989 goto LABEL_162;
1990 thisa->ViewTransform(array_50AC10, a5); 1990 thisa->ViewTransform(array_50AC10, a5);
1991 thisa->_436BB7_project_and_stuff(array_50AC10, a5, 0); 1991 thisa->Project(array_50AC10, a5, 0);
1992 } 1992 }
1993 this_3 = a2->vWorldViewPosition.x < 8.0 1993 this_3 = a2->vWorldViewPosition.x < 8.0
1994 || a8->vWorldViewPosition.x < 8.0 1994 || a8->vWorldViewPosition.x < 8.0
1995 || _ECX->vWorldViewPosition.x < 8.0 1995 || _ECX->vWorldViewPosition.x < 8.0
1996 || pVertices->vWorldViewPosition.x < 8.0; 1996 || pVertices->vWorldViewPosition.x < 8.0;
1999 || v32 < a8->vWorldViewPosition.x 1999 || v32 < a8->vWorldViewPosition.x
2000 || v32 < _ECX->vWorldViewPosition.x 2000 || v32 < _ECX->vWorldViewPosition.x
2001 || v32 < pVertices->vWorldViewPosition.x; 2001 || v32 < pVertices->vWorldViewPosition.x;
2002 LOBYTE(v33) = 0; 2002 LOBYTE(v33) = 0;
2003 pGame->pLightmapBuilder->std__vector_000004_size = 0; 2003 pGame->pLightmapBuilder->std__vector_000004_size = 0;
2004 if ( stru_F8AD28.field_AC > 0 || pDecalBuilder->uNumDecals > 0 ) 2004 if ( stru_F8AD28.uNumLightsApplied > 0 || pDecalBuilder->uNumDecals > 0 )
2005 { 2005 {
2006 if ( this_3 ) 2006 if ( this_3 )
2007 LOBYTE(v33) = 3; 2007 LOBYTE(v33) = 3;
2008 else 2008 else
2009 v33 = v108 != 0 ? 5 : 0; 2009 v33 = v108 != 0 ? 5 : 0;
2017 array_50AC10, 2017 array_50AC10,
2018 0, 2018 0,
2019 v33, 2019 v33,
2020 -1); 2020 -1);
2021 } 2021 }
2022 if ( stru_F8AD28.field_AC > 0 ) 2022 if ( stru_F8AD28.uNumLightsApplied > 0 )
2023 pGame->pLightmapBuilder->ApplyLights(&stru_F8AD28, &static_sub_0048034E_stru_154, a5, array_50AC10, 0, v33); 2023 pGame->pLightmapBuilder->ApplyLights(&stru_F8AD28, &static_sub_0048034E_stru_154, a5, array_50AC10, 0, v33);
2024 v34 = a5; 2024 v34 = a5;
2025 v35 = byte_4D864C == 0; 2025 v35 = byte_4D864C == 0;
2026 v16->uNumVertices = a5; 2026 v16->uNumVertices = a5;
2027 if ( v35 || !(pGame->uFlags & 0x80) ) 2027 if ( v35 || !(pGame->uFlags & 0x80) )
2140 LABEL_77: 2140 LABEL_77:
2141 --pOutdoorCamera->numStru148s; 2141 --pOutdoorCamera->numStru148s;
2142 goto LABEL_112; 2142 goto LABEL_112;
2143 } 2143 }
2144 thisb->ViewTransform(array_50AC10, uNumVertices); 2144 thisb->ViewTransform(array_50AC10, uNumVertices);
2145 thisb->_436BB7_project_and_stuff(array_50AC10, uNumVertices, 0); 2145 thisb->Project(array_50AC10, uNumVertices, 0);
2146 } 2146 }
2147 this_3a = a2->vWorldViewPosition.x < 8.0 || a8->vWorldViewPosition.x < 8.0 || pVertices->vWorldViewPosition.x < 8.0; 2147 this_3a = a2->vWorldViewPosition.x < 8.0 || a8->vWorldViewPosition.x < 8.0 || pVertices->vWorldViewPosition.x < 8.0;
2148 v54 = (double)pOutdoorCamera->shading_dist_mist; 2148 v54 = (double)pOutdoorCamera->shading_dist_mist;
2149 v108 = v54 < a2->vWorldViewPosition.x || v54 < a8->vWorldViewPosition.x || v54 < pVertices->vWorldViewPosition.x; 2149 v108 = v54 < a2->vWorldViewPosition.x || v54 < a8->vWorldViewPosition.x || v54 < pVertices->vWorldViewPosition.x;
2150 a8 = 0; 2150 a8 = 0;
2151 v96->std__vector_000004_size = 0; 2151 v96->std__vector_000004_size = 0;
2152 if ( stru_F8AD28.field_AC > 0 || pDecalBuilder->uNumDecals > 0 ) 2152 if ( stru_F8AD28.uNumLightsApplied > 0 || pDecalBuilder->uNumDecals > 0 )
2153 { 2153 {
2154 a8 = (RenderVertexSoft *)(this_3a ? 3 : v108 != 0 ? 5 : 0); 2154 a8 = (RenderVertexSoft *)(this_3a ? 3 : v108 != 0 ? 5 : 0);
2155 static_sub_0048034E_stru_76D590._49B0C9(v99, *(float *)&a4); 2155 static_sub_0048034E_stru_76D590._49B0C9(v99, *(float *)&a4);
2156 if ( pDecalBuilder->uNumDecals > 0 ) 2156 if ( pDecalBuilder->uNumDecals > 0 )
2157 pDecalBuilder->ApplyDecals( 2157 pDecalBuilder->ApplyDecals(
2162 array_50AC10, 2162 array_50AC10,
2163 0, 2163 0,
2164 (char)a8, 2164 (char)a8,
2165 -1); 2165 -1);
2166 } 2166 }
2167 if ( stru_F8AD28.field_AC > 0 ) 2167 if ( stru_F8AD28.uNumLightsApplied > 0 )
2168 v96->ApplyLights( 2168 v96->ApplyLights(
2169 &stru_F8AD28, 2169 &stru_F8AD28,
2170 &static_sub_0048034E_stru_76D590, 2170 &static_sub_0048034E_stru_76D590,
2171 uNumVertices, 2171 uNumVertices,
2172 array_50AC10, 2172 array_50AC10,
2277 { 2277 {
2278 thisc = pGame->pIndoorCameraD3D; 2278 thisc = pGame->pIndoorCameraD3D;
2279 if ( pGame->pIndoorCameraD3D->_4371C3(array_50AC10, (unsigned int *)&v100, 0) == 1 && !v100 ) 2279 if ( pGame->pIndoorCameraD3D->_4371C3(array_50AC10, (unsigned int *)&v100, 0) == 1 && !v100 )
2280 goto LABEL_126; 2280 goto LABEL_126;
2281 thisc->ViewTransform(array_50AC10, v100); 2281 thisc->ViewTransform(array_50AC10, v100);
2282 thisc->_436BB7_project_and_stuff(array_50AC10, v100, 0); 2282 thisc->Project(array_50AC10, v100, 0);
2283 } 2283 }
2284 this_3b = a2->vWorldViewPosition.x < 8.0 2284 this_3b = a2->vWorldViewPosition.x < 8.0
2285 || pVertices->vWorldViewPosition.x < 8.0 2285 || pVertices->vWorldViewPosition.x < 8.0
2286 || _ECX->vWorldViewPosition.x < 8.0; 2286 || _ECX->vWorldViewPosition.x < 8.0;
2287 v69 = (double)pOutdoorCamera->shading_dist_mist; 2287 v69 = (double)pOutdoorCamera->shading_dist_mist;
2288 v108 = v69 < a2->vWorldViewPosition.x || v69 < pVertices->vWorldViewPosition.x || v69 < _ECX->vWorldViewPosition.x; 2288 v108 = v69 < a2->vWorldViewPosition.x || v69 < pVertices->vWorldViewPosition.x || v69 < _ECX->vWorldViewPosition.x;
2289 LOBYTE(v70) = 0; 2289 LOBYTE(v70) = 0;
2290 v96->std__vector_000004_size = 0; 2290 v96->std__vector_000004_size = 0;
2291 if ( stru_F8AD28.field_AC > 0 || pDecalBuilder->uNumDecals > 0 ) 2291 if ( stru_F8AD28.uNumLightsApplied > 0 || pDecalBuilder->uNumDecals > 0 )
2292 { 2292 {
2293 if ( this_3b ) 2293 if ( this_3b )
2294 LOBYTE(v70) = 3; 2294 LOBYTE(v70) = 3;
2295 else 2295 else
2296 v70 = v108 != 0 ? 5 : 0; 2296 v70 = v108 != 0 ? 5 : 0;
2304 array_50AC10, 2304 array_50AC10,
2305 0, 2305 0,
2306 v70, 2306 v70,
2307 -1); 2307 -1);
2308 } 2308 }
2309 if ( stru_F8AD28.field_AC > 0 ) 2309 if ( stru_F8AD28.uNumLightsApplied > 0 )
2310 v96->ApplyLights(&stru_F8AD28, &static_sub_0048034E_stru_76D578, v100, array_50AC10, 0, v70); 2310 v96->ApplyLights(&stru_F8AD28, &static_sub_0048034E_stru_76D578, v100, array_50AC10, 0, v70);
2311 v71 = a8; 2311 v71 = a8;
2312 v72 = v100; 2312 v72 = v100;
2313 v35 = byte_4D864C == 0; 2313 v35 = byte_4D864C == 0;
2314 LODWORD(a8->vWorldViewPosition.z) = v100; 2314 LODWORD(a8->vWorldViewPosition.z) = v100;
2582 memcpy(&array_50AC10[3], v102, sizeof(array_50AC10[3])); 2582 memcpy(&array_50AC10[3], v102, sizeof(array_50AC10[3]));
2583 array_50AC10[3].flt_20 = 1.0 / v29; 2583 array_50AC10[3].flt_20 = 1.0 / v29;
2584 array_50AC10[3].u = 1.0; 2584 array_50AC10[3].u = 1.0;
2585 array_50AC10[3].v = 0.0; 2585 array_50AC10[3].v = 0.0;
2586 pGame->pLightmapBuilder->StackLights_TerrainFace(pNormal, &a3a, array_50AC10, 4u, 1); 2586 pGame->pLightmapBuilder->StackLights_TerrainFace(pNormal, &a3a, array_50AC10, 4u, 1);
2587 if ( stru_F8AD28.field_AC <= 0 ) 2587 if ( stru_F8AD28.uNumLightsApplied <= 0 )
2588 { 2588 {
2589 v17->field_108 = 0; 2589 v17->field_108 = 0;
2590 } 2590 }
2591 else 2591 else
2592 { 2592 {
2698 memcpy(&array_50AC10[2], v103, sizeof(array_50AC10[2])); 2698 memcpy(&array_50AC10[2], v103, sizeof(array_50AC10[2]));
2699 array_50AC10[2].flt_20 = 1.0 / v50; 2699 array_50AC10[2].flt_20 = 1.0 / v50;
2700 array_50AC10[2].u = 1.0; 2700 array_50AC10[2].u = 1.0;
2701 array_50AC10[2].v = 1.0; 2701 array_50AC10[2].v = 1.0;
2702 pGame->pLightmapBuilder->StackLights_TerrainFace(pNormala, &v78, array_50AC10, 3u, 0); 2702 pGame->pLightmapBuilder->StackLights_TerrainFace(pNormala, &v78, array_50AC10, 3u, 0);
2703 if ( stru_F8AD28.field_AC <= 0 ) 2703 if ( stru_F8AD28.uNumLightsApplied <= 0 )
2704 { 2704 {
2705 v38->field_108 = 0; 2705 v38->field_108 = 0;
2706 } 2706 }
2707 else 2707 else
2708 { 2708 {
2792 memcpy(&array_50AC10[2], v102, sizeof(array_50AC10[2])); 2792 memcpy(&array_50AC10[2], v102, sizeof(array_50AC10[2]));
2793 array_50AC10[2].flt_20 = 1.0 / v64; 2793 array_50AC10[2].flt_20 = 1.0 / v64;
2794 array_50AC10[2].u = 1.0; 2794 array_50AC10[2].u = 1.0;
2795 array_50AC10[2].v = 0.0; 2795 array_50AC10[2].v = 0.0;
2796 pGame->pLightmapBuilder->StackLights_TerrainFace(pNormalb, &v70, array_50AC10, 3u, 1); 2796 pGame->pLightmapBuilder->StackLights_TerrainFace(pNormalb, &v70, array_50AC10, 3u, 1);
2797 if ( stru_F8AD28.field_AC <= 0 ) 2797 if ( stru_F8AD28.uNumLightsApplied <= 0 )
2798 { 2798 {
2799 v17->field_108 = 0; 2799 v17->field_108 = 0;
2800 } 2800 }
2801 else 2801 else
2802 { 2802 {
3061 if ( v8 & 0x20000 ) 3061 if ( v8 & 0x20000 )
3062 LOBYTE(v46) = v46 | 0x80; 3062 LOBYTE(v46) = v46 | 0x80;
3063 if ( a6 ) 3063 if ( a6 )
3064 { 3064 {
3065 LOBYTE(v11) = byte_4E94D3; 3065 LOBYTE(v11) = byte_4E94D3;
3066 pMobileLightsStack->AddLight(x, y, z, a5, a6, 0xFFu, 0xFFu, 0xFFu, v11); 3066 pMobileLightsStack->AddLight(x, y, z, a5, a6, 0xFFu, 0xFFu, 0xFFu, byte_4E94D3);
3067 } 3067 }
3068 v12 = (x - pIndoorCamera->pos.x) << 16; 3068 v12 = (x - pIndoorCamera->pos.x) << 16;
3069 if ( pIndoorCamera->sRotationX ) 3069 if ( pIndoorCamera->sRotationX )
3070 { 3070 {
3071 v13 = (y - pIndoorCamera->pos.y) << 16; 3071 v13 = (y - pIndoorCamera->pos.y) << 16;