comparison Render.cpp @ 1997:157fd2831567

DrawIndoorSky() continue
author Ritor1
date Sun, 03 Nov 2013 22:42:25 +0600
parents ef4dcee1b4a1
children 079f2abf54e4
comparison
equal deleted inserted replaced
1989:33787c8938a5 1997:157fd2831567
5058 void *v79; // [sp+168h] [bp-Ch]@9 5058 void *v79; // [sp+168h] [bp-Ch]@9
5059 float v80; // [sp+16Ch] [bp-8h]@3 5059 float v80; // [sp+16Ch] [bp-8h]@3
5060 const void *v81; // [sp+170h] [bp-4h]@7 5060 const void *v81; // [sp+170h] [bp-4h]@7
5061 5061
5062 pFace = &pIndoor->pFaces[uFaceID]; 5062 pFace = &pIndoor->pFaces[uFaceID];
5063 //for floor and wall------------------- 5063 //for floor and wall(for example Selesta)-------------------
5064 if (pFace->uPolygonType == POLYGON_InBetweenFloorAndWall || pFace->uPolygonType == POLYGON_Floor) 5064 if (pFace->uPolygonType == POLYGON_InBetweenFloorAndWall || pFace->uPolygonType == POLYGON_Floor)
5065 { 5065 {
5066 int v69 = (GetTickCount() / 32) - pGame->pIndoorCameraD3D->vPartyPos.x; 5066 int v69 = (GetTickCount() / 32) - pGame->pIndoorCameraD3D->vPartyPos.x;
5067 int v55 = (GetTickCount() / 32) + pGame->pIndoorCameraD3D->vPartyPos.y; 5067 int v55 = (GetTickCount() / 32) + pGame->pIndoorCameraD3D->vPartyPos.y;
5068 for (uint i = 0; i < uNumVertices; ++i) 5068 for (uint i = 0; i < uNumVertices; ++i)
5114 v66 = 224 * pMiscTimer->uTotalGameTimeElapsed & v12; 5114 v66 = 224 * pMiscTimer->uTotalGameTimeElapsed & v12;
5115 v78 = 0; 5115 v78 = 0;
5116 v81 = 0; 5116 v81 = 0;
5117 float v68 = 1.0 / (double)pSkyPolygon.pTexture->uTextureHeight; 5117 float v68 = 1.0 / (double)pSkyPolygon.pTexture->uTextureHeight;
5118 if ( (signed int)pSkyPolygon.uNumVertices <= 0 ) 5118 if ( (signed int)pSkyPolygon.uNumVertices <= 0 )
5119 {
5120 pRenderer->DrawIndoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon,
5121 pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
5122 return; 5119 return;
5123 }
5124 5120
5125 //v14 = (char *)&array_507D30[0].vWorldViewProjY; 5121 //v14 = (char *)&array_507D30[0].vWorldViewProjY;
5126 int _507D30_idx = 0; 5122 int _507D30_idx = 0;
5127 while ( 2 ) 5123 while ( 2 )
5128 { 5124 {
5131 v74 = v77 + pSkyPolygon.ptr_38->angle_from_north; 5127 v74 = v77 + pSkyPolygon.ptr_38->angle_from_north;
5132 5128
5133 v77 = (unsigned __int64)(pSkyPolygon.ptr_38->viewing_angle_from_north_south * (signed __int64)(v72 * (v70 - array_507D30[_507D30_idx].vWorldViewProjY))) >> 16; 5129 v77 = (unsigned __int64)(pSkyPolygon.ptr_38->viewing_angle_from_north_south * (signed __int64)(v72 * (v70 - array_507D30[_507D30_idx].vWorldViewProjY))) >> 16;
5134 v75 = (RenderVertexSoft *)(v77 + pSkyPolygon.ptr_38->angle_from_east); 5130 v75 = (RenderVertexSoft *)(v77 + pSkyPolygon.ptr_38->angle_from_east);
5135 5131
5136 v79 = (void *)(((unsigned __int64)(pSkyPolygon.v_18.z * (signed __int64)v72 * (v70 - array_507D30[_507D30_idx].vWorldViewProjY))) >> 16); 5132 v79 = (void *)(((unsigned __int64)(pSkyPolygon.v_18.z * (signed __int64)v72 * (v70 - (int)array_507D30[_507D30_idx].vWorldViewProjY))) >> 16);
5137 v17 = v72 * (pBLVRenderParams->uViewportCenterX - (int)array_507D30[_507D30_idx].vWorldViewProjX); 5133 v17 = v72 * (pBLVRenderParams->uViewportCenterX - (int)array_507D30[_507D30_idx].vWorldViewProjX);
5138 v18 = array_507D30[_507D30_idx].vWorldViewProjY - 1.0; 5134 v18 = array_507D30[_507D30_idx].vWorldViewProjY - 1.0;
5139 v19 = -pSkyPolygon.field_24; 5135 v19 = -pSkyPolygon.field_24;
5140 v77 = -pSkyPolygon.field_24; 5136 v77 = -pSkyPolygon.field_24;
5141 X = (int)((char *)v79 + pSkyPolygon.v_18.x); 5137 X = (int)((char *)v79 + pSkyPolygon.v_18.x);
5163 } 5159 }
5164 if ( !v78 ) 5160 if ( !v78 )
5165 { 5161 {
5166 LODWORD(v23) = v77 << 16; 5162 LODWORD(v23) = v77 << 16;
5167 HIDWORD(v23) = v77 >> 16;//v23 = 0xfffffe0000000000 5163 HIDWORD(v23) = v77 >> 16;//v23 = 0xfffffe0000000000
5168 int i = HIDWORD(v23) / X; 5164 v79 = (void *)(v23 / X);//X = FFFF9014(-28652)
5169 v79 = (void *)(v23 / X);//X = FFFF96A3(FFFF9014)
5170 v77 = v17; 5165 v77 = v17;
5171 v77 = v17;
5172
5173 LODWORD(v76) = v74 + ((unsigned __int64)(pSkyPolygon.ptr_38->angle_from_west * (signed __int64)v17) >> 16); 5166 LODWORD(v76) = v74 + ((unsigned __int64)(pSkyPolygon.ptr_38->angle_from_west * (signed __int64)v17) >> 16);
5174 LODWORD(v80) = v66 + ((signed int)((unsigned __int64)(SLODWORD(v76) * v23 / X) >> 16) >> 4); 5167 LODWORD(v80) = v66 + ((signed int)((unsigned __int64)(SLODWORD(v76) * v23 / X) >> 16) >> 4);
5175 //v24 = (double)SLODWORD(v80) * 0.000015259022; 5168 //v24 = (double)SLODWORD(v80) * 0.000015259022;
5176 array_507D30[_507D30_idx].u = ((double)SLODWORD(v80) * 0.000015259022) * (1.0 / (double)pSkyPolygon.pTexture->uTextureWidth); 5169 array_507D30[_507D30_idx].u = ((double)SLODWORD(v80) * 0.000015259022) * (1.0 / (double)pSkyPolygon.pTexture->uTextureWidth);
5177 5170
5184 //v14 += 48; 5177 //v14 += 48;
5185 v81 = (char *)v81 + 1; 5178 v81 = (char *)v81 + 1;
5186 //v26 = __OFSUB__((int)v81, pSkyPolygon.uNumVertices); 5179 //v26 = __OFSUB__((int)v81, pSkyPolygon.uNumVertices);
5187 //v25 = (signed int)((char *)v81 - pSkyPolygon.uNumVertices) < 0; 5180 //v25 = (signed int)((char *)v81 - pSkyPolygon.uNumVertices) < 0;
5188 array_507D30[_507D30_idx]._rhw = 65536.0 / (double)(signed int)v79; 5181 array_507D30[_507D30_idx]._rhw = 65536.0 / (double)(signed int)v79;
5189 /*
5190 v18 = v17 / v38;
5191 if ( v18 < 0 )
5192 v18 = pODMRenderParams->shading_dist_mist;
5193
5194 v37 = v35 + ((unsigned __int64)(pSkyPolygon.ptr_38->angle_from_west * (signed __int64)v13) >> 16);
5195 v35 = 224 * pMiscTimer->uTotalGameTimeElapsed + ((signed int)((unsigned __int64)(v37 * (signed __int64)v18) >> 16) >> 3);
5196 array_50AC10[i].u = (double)v35 / ((double)pSkyPolygon.pTexture->uTextureWidth * 65536.0);
5197
5198 v36 = v36 + ((unsigned __int64)(pSkyPolygon.ptr_38->angle_from_south * (signed __int64)v13) >> 16);
5199 v35 = 224 * pMiscTimer->uTotalGameTimeElapsed + ((signed int)((unsigned __int64)(v36 * (signed __int64)v18) >> 16) >> 3);
5200 array_50AC10[i].v = (double)v35 / ((double)pSkyPolygon.pTexture->uTextureHeight * 65536.0);
5201
5202 array_50AC10[i].vWorldViewPosition.x = (double)0x2000;//pODMRenderParams->shading_dist_mist
5203 array_50AC10[i]._rhw = 1.0 / (double)(v18 >> 16);
5204 */
5205 _507D30_idx++; 5182 _507D30_idx++;
5206 if ( (int)v81 >= pSkyPolygon.uNumVertices ) 5183 if ( (int)v81 >= pSkyPolygon.uNumVertices )
5207 { 5184 {
5208 pRenderer->DrawIndoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, 5185 pRenderer->DrawIndoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon,
5209 pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]); 5186 pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
5211 } 5188 }
5212 continue; 5189 continue;
5213 } 5190 }
5214 break; 5191 break;
5215 } 5192 }
5193
5216 LODWORD(v73) = 0; 5194 LODWORD(v73) = 0;
5217 v80 = v76; 5195 v80 = v76;
5218 if ( (signed int)pSkyPolygon.uNumVertices > 0 ) 5196 if ( (signed int)pSkyPolygon.uNumVertices > 0 )
5219 { 5197 {
5220 v28 = (double)SLODWORD(v76); 5198 v28 = (double)SLODWORD(v76);
5221 LODWORD(v76) = (int)(char *)array_50AC10 + 28; 5199 LODWORD(v76) = (int)(char *)array_50AC10 + 28;
5222 v29 = (char *)&array_50AC10[0].vWorldViewProjX; 5200 uint i = 0;
5223 v30 = (char *)&array_507D30[1].vWorldViewProjY; 5201 for ( v78 = pSkyPolygon.uNumVertices; v78; --v78 )
5224 v79 = array_50AC10; 5202 {
5225 v81 = array_507D30;
5226 v78 = pSkyPolygon.uNumVertices;
5227 do
5228 {
5229 v31 = v28 < *((float *)v30 - 12);
5230 v32 = v28 == *((float *)v30 - 12);
5231 ++LODWORD(v73); 5203 ++LODWORD(v73);
5232 memcpy(v79, v81, 0x30u); 5204 memcpy(&array_50AC10[i], &array_507D30[i], 0x30u);
5233 v79 = (char *)v79 + 48;
5234 LODWORD(v76) += 48; 5205 LODWORD(v76) += 48;
5235 v29 += 48; 5206 if ( v28 < array_507D30[i].vWorldViewProjY | v28 == array_507D30[i].vWorldViewProjY
5236 if ( v31 | v32 || v28 >= *(float *)v30 ) 5207 || v28 >= array_507D30[i + 1].vWorldViewProjY )
5237 { 5208 {
5238 if ( v28 >= *((float *)v30 - 12) || v28 <= *(float *)v30 ) 5209 if ( v28 >= array_507D30[i].vWorldViewProjY || v28 <= array_507D30[i + 1].vWorldViewProjY )
5239 goto LABEL_28; 5210 {
5240 v33 = (*((float *)v30 - 1) - *((float *)v30 - 13)) * v28 / (*(float *)v30 - *((float *)v30 - 12)) 5211 i++;
5241 + *((float *)v30 - 1); 5212 continue;
5213 }
5214 v33 = (array_507D30[i + 1].vWorldViewProjX - array_507D30[i].vWorldViewProjX) * v28 / (array_507D30[i + 1].vWorldViewProjY - array_507D30[i].vWorldViewProjY)
5215 + array_507D30[i + 1].vWorldViewProjX;
5242 } 5216 }
5243 else 5217 else
5244 { 5218 {
5245 v33 = (*((float *)v30 - 13) - *((float *)v30 - 1)) * v28 / (*((float *)v30 - 12) - *(float *)v30) 5219 v33 = (array_507D30[i].vWorldViewProjX - array_507D30[i + 1].vWorldViewProjX) * v28 / (array_507D30[i].vWorldViewProjY - array_507D30[i + 1].vWorldViewProjY)
5246 + *((float *)v30 - 13); 5220 + array_507D30[i].vWorldViewProjX;
5247 } 5221 }
5248 *(float *)v29 = v33; 5222 array_50AC10[i + 1].vWorldViewProjX = v33;
5249 v79 = (char *)v79 + 48;
5250 v29 += 48;
5251 ++LODWORD(v73); 5223 ++LODWORD(v73);
5252 *(unsigned int *)LODWORD(v76) = v28; 5224 *(unsigned int *)LODWORD(v76) = v28;
5253 LODWORD(v76) += 48; 5225 LODWORD(v76) += 48;
5254 LABEL_28: 5226 i++;
5255 v81 = (char *)v81 + 48; 5227 }
5256 v30 += 48;
5257 --v78;
5258 }
5259 while ( v78 );
5260 } 5228 }
5261 if ( SLODWORD(v73) <= 0 ) 5229 if ( SLODWORD(v73) <= 0 )
5262 goto LABEL_40; 5230 goto LABEL_40;
5263 v34 = (char *)&array_50AC10[0].vWorldViewProjY; 5231 //v34 = (char *)&array_50AC10[0].vWorldViewProjY;
5232 uint j = 0;
5264 v65 = v77 >> 14; 5233 v65 = v77 >> 14;
5265 HIDWORD(v69) = LODWORD(v73); 5234 //HIDWORD(v69) = LODWORD(v73);
5266 do 5235 for ( int t = (int)LODWORD(v73); t > 1; t-- )
5267 { 5236 {
5268 v35 = (const void *)(v72 * (v70 - (unsigned __int64)(signed __int64)*(float *)v34)); 5237 v35 = (const void *)(v72 * (v70 - (unsigned __int64)(signed __int64)array_50AC10[j].vWorldViewProjY));
5269 v78 = pSkyPolygon.ptr_38->viewing_angle_from_west_east; 5238
5270 v81 = (const void *)((unsigned __int64)(v78 * (signed __int64)(signed int)v35) >> 16); 5239 //v78 = pSkyPolygon.ptr_38->viewing_angle_from_west_east;
5240 v81 = (const void *)((unsigned __int64)(pSkyPolygon.ptr_38->viewing_angle_from_west_east * (signed __int64)(signed int)v35) >> 16);
5271 v36 = (int)((char *)v81 + pSkyPolygon.ptr_38->angle_from_north); 5241 v36 = (int)((char *)v81 + pSkyPolygon.ptr_38->angle_from_north);
5242
5272 v81 = v35; 5243 v81 = v35;
5273 v74 = v36; 5244 v74 = v36;
5274 v78 = pSkyPolygon.ptr_38->viewing_angle_from_north_south; 5245 //v78 = pSkyPolygon.ptr_38->viewing_angle_from_north_south;
5275 v81 = (const void *)((unsigned __int64)(v78 * (signed __int64)(signed int)v35) >> 16); 5246 v81 = (const void *)((unsigned __int64)(pSkyPolygon.ptr_38->viewing_angle_from_north_south * (signed __int64)(signed int)v35) >> 16);
5276 v78 = (int)v35; 5247 v78 = (int)v35;
5277 v75 = (RenderVertexSoft *)((char *)v81 + pSkyPolygon.ptr_38->angle_from_east); 5248 v75 = (RenderVertexSoft *)((char *)v81 + pSkyPolygon.ptr_38->angle_from_east);
5278 v81 = (const void *)pSkyPolygon.v_18.z; 5249 v81 = (const void *)pSkyPolygon.v_18.z;
5279 v78 = (unsigned __int64)(pSkyPolygon.v_18.z * (signed __int64)(signed int)v35) >> 16; 5250 v78 = (unsigned __int64)(pSkyPolygon.v_18.z * (signed __int64)(signed int)v35) >> 16;
5280 v37 = (const void *)(v72 5251 v37 = (const void *)(v72
5281 * (pBLVRenderParams->uViewportCenterX - (unsigned __int64)(signed __int64)*((float *)v34 - 1))); 5252 * (pBLVRenderParams->uViewportCenterX - (unsigned __int64)(signed __int64)array_50AC10[j].vWorldViewProjX));
5282 v38 = (signed __int64)(*(float *)v34 - 1.0); 5253 v38 = (signed __int64)(array_50AC10[j].vWorldViewProjY - 1.0);
5283 v81 = 0; 5254 v81 = 0;
5284 LODWORD(v76) = v38; 5255 LODWORD(v76) = v38;
5285 v39 = v72 * (v70 - v38); 5256 v39 = v72 * (v70 - v38);
5286 while ( 1 ) 5257 while ( 1 )
5287 { 5258 {
5307 v79 = (void *)pSkyPolygon.v_18.z; 5278 v79 = (void *)pSkyPolygon.v_18.z;
5308 v78 = 2 * LODWORD(v76); 5279 v78 = 2 * LODWORD(v76);
5309 v81 = (const void *)((unsigned __int64)(pSkyPolygon.v_18.z 5280 v81 = (const void *)((unsigned __int64)(pSkyPolygon.v_18.z
5310 * (signed __int64)(signed int)(signed __int64)(((double)v70 5281 * (signed __int64)(signed int)(signed __int64)(((double)v70
5311 - ((double)(2 * LODWORD(v76)) 5282 - ((double)(2 * LODWORD(v76))
5312 - *(float *)v34)) 5283 - array_50AC10[j].vWorldViewProjY))
5313 * (double)v72)) >> 16); 5284 * (double)v72)) >> 16);
5314 X = (int)((char *)v81 + pSkyPolygon.v_18.x); 5285 X = (int)((char *)v81 + pSkyPolygon.v_18.x);
5315 } 5286 }
5316 LODWORD(v42) = v77 << 16; 5287 LODWORD(v42) = v77 << 16;
5317 HIDWORD(v42) = v77 >> 16; 5288 HIDWORD(v42) = v77 >> 16;
5318 v79 = (void *)(v42 / X); 5289 v79 = (void *)(v42 / X);
5319 v81 = v37; 5290 v81 = v37;
5320 v78 = pSkyPolygon.ptr_38->angle_from_west; 5291
5321 v81 = (const void *)((unsigned __int64)(v78 * (signed __int64)(signed int)v37) >> 16); 5292 //v78 = pSkyPolygon.ptr_38->angle_from_west;
5322 v43 = v74 + ((unsigned __int64)(v78 * (signed __int64)(signed int)v37) >> 16); 5293 v81 = (const void *)((unsigned __int64)(pSkyPolygon.ptr_38->angle_from_west * (signed __int64)(signed int)v37) >> 16);
5294 v43 = v74 + ((unsigned __int64)(pSkyPolygon.ptr_38->angle_from_west * (signed __int64)(signed int)v37) >> 16);
5323 v74 = (unsigned int)v37; 5295 v74 = (unsigned int)v37;
5324 LODWORD(v76) = v43; 5296 LODWORD(v76) = v43;
5325 v78 = pSkyPolygon.ptr_38->angle_from_south; 5297
5326 v75 = (RenderVertexSoft *)((char *)v75 + ((unsigned __int64)(v78 * (signed __int64)(signed int)v37) >> 16)); 5298 //v78 = pSkyPolygon.ptr_38->angle_from_south;
5299 v75 = (RenderVertexSoft *)((char *)v75 + ((unsigned __int64)(pSkyPolygon.ptr_38->angle_from_south * (signed __int64)(signed int)v37) >> 16));
5327 v74 = (unsigned __int64)(v43 * v42 / X) >> 16; 5300 v74 = (unsigned __int64)(v43 * v42 / X) >> 16;
5328 v81 = (const void *)((unsigned __int64)((signed int)v75 * v42 / X) >> 16); 5301 v81 = (const void *)((unsigned __int64)((signed int)v75 * v42 / X) >> 16);
5329 v34 += 48; 5302
5303 //v34 += 48;
5330 v78 = v66 + ((signed int)v74 >> 4); 5304 v78 = v66 + ((signed int)v74 >> 4);
5331 v44 = HIDWORD(v69)-- == 1; 5305 //v44 = HIDWORD(v69)-- == 1;
5332 v45 = (double)v78 * 0.000015259022; 5306 v45 = (double)v78 * 0.000015259022;
5333 v78 = v63 + ((signed int)((unsigned __int64)((signed int)v75 * v42 / X) >> 16) >> 4); 5307 v78 = v63 + ((signed int)((unsigned __int64)((signed int)v75 * v42 / X) >> 16) >> 4);
5334 *((float *)v34 - 10) = v45 * (1.0 / (double)pSkyPolygon.pTexture->uTextureWidth); 5308 array_50AC10[j].u = v45 * (1.0 / (double)pSkyPolygon.pTexture->uTextureWidth);
5335 *((float *)v34 - 9) = (double)v78 * 0.000015259022 * v68; 5309 array_50AC10[j].v = (double)v78 * 0.000015259022 * v68;
5336 v46 = (double)(signed int)v79; 5310 //v46 = (double)(signed int)v79;
5337 *((float *)v34 - 16) = 0.000015258789 * v46; 5311 array_50AC10[j].vWorldViewPosition.x = 0.000015258789 * (double)(signed int)v79;
5338 *((float *)v34 - 11) = 65536.0 / v46; 5312 array_50AC10[j]._rhw = 65536.0 / (double)(signed int)v79;
5339 } 5313 ++j;
5340 while ( !v44 ); 5314 }
5315 //while ( !v44 );
5341 LABEL_40: 5316 LABEL_40:
5342 v47 = 0; 5317 uint i = 0;
5343 if ( SLODWORD(v73) > 0 ) 5318 if ( SLODWORD(v73) > 0 )
5344 { 5319 {
5345 v48 = (double)SLODWORD(v80); 5320 v48 = (double)SLODWORD(v80);
5346 v75 = array_507D30; 5321 for ( HIDWORD(v69) = LODWORD(v73); HIDWORD(v69); --HIDWORD(v69) )
5347 v49 = array_50AC10; 5322 {
5348 HIDWORD(v69) = LODWORD(v73); 5323 if ( v48 >= array_50AC10[i].vWorldViewProjY )
5349 do 5324 {
5350 { 5325 ++i;
5351 if ( v48 >= v49->vWorldViewProjY ) 5326 memcpy(&array_507D30[i], &array_50AC10[i], 0x30u);
5352 { 5327 }
5353 v50 = v75; 5328 }
5354 ++v47; 5329 }
5355 ++v75; 5330 pSkyPolygon.uNumVertices = i;
5356 memcpy(v50, v49, 0x30u); 5331 pRenderer->DrawIndoorSkyPolygon(pSkyPolygon.uNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
5357 } 5332 int pNumVertices = 0;
5358 ++v49;
5359 --HIDWORD(v69);
5360 }
5361 while ( HIDWORD(v69) );
5362 }
5363 pSkyPolygon.uNumVertices = v47;
5364 pRenderer->DrawIndoorSkyPolygon(v47, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
5365 *(float *)&v74 = 0.0;
5366 if ( SLODWORD(v73) > 0 ) 5333 if ( SLODWORD(v73) > 0 )
5367 { 5334 {
5368 v51 = (double)SLODWORD(v80); 5335 v51 = (double)SLODWORD(v80);
5369 v75 = array_507D30; 5336 for ( v80 = v73; v80 != 0.0; --LODWORD(v80) )
5370 v52 = array_50AC10; 5337 {
5371 for ( v80 = v73; v80; --v80 ) 5338 if ( v51 <= array_50AC10[pNumVertices].vWorldViewProjY )
5372 { 5339 {
5373 if ( v51 <= v52->vWorldViewProjY ) 5340 ++pNumVertices;
5374 { 5341 memcpy(&array_507D30[pNumVertices], &array_50AC10[pNumVertices], 0x30u);
5375 v53 = v75; 5342 }
5376 ++v74; 5343 }
5377 ++v75; 5344 }
5378 memcpy(v53, v52, 0x30u); 5345 pRenderer->DrawIndoorSkyPolygon(pNumVertices, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
5379 }
5380 ++v52;
5381 //--LODWORD(v80);
5382 }
5383 //while ( v80 != 0.0 );
5384 }
5385 pRenderer->DrawIndoorSkyPolygon(v74, &pSkyPolygon, pBitmaps_LOD->pHardwareTextures[(signed __int16)pSkyPolygon.uTileBitmapID]);
5386 } 5346 }
5387 5347
5388 5348
5389 //----- (004A2FC0) -------------------------------------------------------- 5349 //----- (004A2FC0) --------------------------------------------------------
5390 void Render::DrawIndoorPolygon(unsigned int uNumVertices, BLVFace *pFace, IDirect3DTexture2 *pHwTex, Texture *pTex, int uPackedID, unsigned int uColor, int a8) 5350 void Render::DrawIndoorPolygon(unsigned int uNumVertices, BLVFace *pFace, IDirect3DTexture2 *pHwTex, Texture *pTex, int uPackedID, unsigned int uColor, int a8)